From 9f7d56218282fc871d205f0a2fc36446aa2771a1 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 10:09:01 -0700 Subject: [PATCH 001/208] Sample per-genotype latents at library size under autoguides Why: several components sampled per-genotype latents in plates sized data.batch_size. Every numpyro autoguide -- including the AutoDelta behind MAP, pre-MAP and tfs-prefit-calibration -- then held one parameter per batch position instead of per genotype. The full-batch index is binding-first and reshuffled each step, so bulk genotypes' latents were scrambled even without mini-batching. The component SVI guide was unaffected. What: - activity/{hierarchical,horseshoe}_geno, dk_geno/hierarchical_geno, ln_cfu0/{hierarchical,hierarchical_factored}, theta/categorical_geno and noise/logit_normal sample in a library-sized {name}_genotype_plate and slice with data.batch_idx; latent priors and guides are no longer wrapped in scale_vector. - Theta-noise components take an optional data argument, passed by generative/model.py. noise/beta's {name}_dist stays batch-shaped (a documented exception). - New inference/batch_safety.py detects batch-dependent latents by tracing at two batch sizes (under jax.eval_shape), and orchestrator_latent_dimension sizes an AutoContinuous latent vector. - run_optimization runs the check before fitting with any AutoGuide and refuses an unsafe model; for AutoMultivariateNormal it reports the dense-covariance size and warns above 4 GB. - get_map_posteriors/get_laplace_posteriors refuse MAP checkpoints with batch-sized genotype latents instead of clipping indices. - draw_prior no longer returns plate sites as latents. - CLAUDE.md: component-authoring step 6; CHANGELOG entry. Effects: MAP/pre-MAP/prefit fits change numerically for bulk genotypes; checkpoints written before this fix must be refit. An autoguide fit of a batch-dependent model (e.g. MAP with beta theta noise) now fails fast instead of silently scrambling. Verification: test_batch_safety covers all registry axes (plus epistasis); an ad hoc sweep including thermo PnnC/PddG found only the beta exception. New tests cover the run_optimization guard and the latent-dimension count. pytest tests/tfscreen: 4527 passed, 6 skipped; tfmodel/inference + generative + scripts --runslow: 2356 passed. Co-authored-by: Suryansh Singh Thakur Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 41 ++- CLAUDE.md | 1 + .../tfmodel/analysis/prior_predictive.py | 7 +- .../components/activity/hierarchical_geno.py | 26 +- .../components/activity/horseshoe_geno.py | 56 ++-- .../components/dk_geno/hierarchical_geno.py | 27 +- .../components/ln_cfu0/hierarchical.py | 27 +- .../ln_cfu0/hierarchical_factored.py | 26 +- .../generative/components/noise/beta.py | 22 +- .../components/noise/logit_normal.py | 64 ++-- .../generative/components/noise/zero.py | 17 +- .../components/theta/categorical_geno.py | 46 ++- src/tfscreen/tfmodel/generative/model.py | 9 +- .../tfmodel/inference/batch_safety.py | 152 ++++++++++ .../tfmodel/inference/run_inference.py | 97 +++++- .../components/noise/test_logit_normal.py | 48 +++ .../tfscreen/tfmodel/generative/test_model.py | 4 +- .../tfmodel/inference/test_batch_safety.py | 284 ++++++++++++++++++ .../tfmodel/inference/test_run_inference.py | 95 ++++++ 19 files changed, 879 insertions(+), 170 deletions(-) create mode 100644 src/tfscreen/tfmodel/inference/batch_safety.py create mode 100644 tests/tfscreen/tfmodel/inference/test_batch_safety.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 396fa180..400674c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,7 +29,46 @@ fall into two kinds: ## [Unreleased] -Nothing yet. +### Fixed + +- **Per-genotype latents scrambled across genotypes under autoguides.** + Several components sampled their per-genotype latents in a plate sized + `data.batch_size`, so every numpyro autoguide -- including the `AutoDelta` + behind MAP, pre-MAP and `tfs-prefit-calibration` -- held one parameter per + batch *position* rather than per genotype. The full-batch index is + binding-first and reshuffled every step, so this happened even without + mini-batching: binding genotypes kept their positions, but every bulk + genotype's latents were overwritten by whichever genotype landed in that + position. The component SVI guide was not affected, since it holds + library-sized parameters and slices them itself. + - `activity/hierarchical_geno`, `activity/horseshoe_geno`, + `dk_geno/hierarchical_geno`, `ln_cfu0/hierarchical`, + `ln_cfu0/hierarchical_factored`, `theta/categorical_geno` and + `noise/logit_normal` now sample these latents in a library-sized + `{name}_genotype_plate` and slice them to the batch with + `data.batch_idx`. The latent priors and guides that were wrapped in + `scale_vector` no longer are; only the likelihood is scaled. + - The theta-noise components (`zero`, `beta`, `logit_normal`) take an + optional `data` argument, which `generative/model.py` now passes. + - `noise/beta` is a documented exception: its `{name}_dist` latent is the + noisy theta itself and remains batch-shaped. + - `RunInference.get_map_posteriors` and `get_laplace_posteriors` now raise + on a MAP checkpoint whose genotype-indexed latents are not library-sized, + instead of clipping the indices and reusing one genotype's value for + another. **MAP checkpoints written before this fix must be refit.** + - `draw_prior` no longer returns plate sites as if they were latents. +- **New `tfmodel/inference/batch_safety.py`** detects batch-dependent latents + by tracing a model at two batch sizes (abstractly, under `jax.eval_shape`). + `tests/tfscreen/tfmodel/inference/test_batch_safety.py` runs it across the + component registry. `orchestrator_latent_dimension` gives the size of the + flattened latent vector an `AutoContinuous` guide works in. +- **`RunInference.run_optimization` refuses unsafe autoguide fits.** When the + guide is any numpyro `AutoGuide` (including the `AutoDelta` behind MAP, + pre-MAP and `tfs-prefit-calibration`), it first runs the batch-safety check + and raises a `ValueError` naming the offending sites -- for example, a MAP + fit with `theta_growth_noise=beta`. The component guide is not checked. For + an `AutoMultivariateNormal` guide it also reports the latent dimension and + the memory the dense covariance needs, and warns above 4 GB. ## [0.4.4] - 2026-09-22 diff --git a/CLAUDE.md b/CLAUDE.md index 29637e29..8031bd01 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -141,6 +141,7 @@ The hierarchical Bayesian inference engine. Key files: 3. Register it in `tfmodel/generative/registry.py` under the appropriate category key 4. Add a test in `tests/tfscreen/tfmodel/components//` 5. For a new `condition_growth` component: make its per-condition prior loc/scale fields accept scalar-or-array (broadcast-then-index by the condition plate) and implement `get_scale_bounds()` so the pre-fit can pin its per-condition baselines — see **Per-condition growth priors** above. +6. Per-genotype latents must be **mini-batch safe**: sample them in a library-sized plate (`pyro.plate(f"{name}_genotype_plate", data.num_genotype)`), then slice with `[..., data.batch_idx]` whenever the value is library-sized (a smaller value is an already-sliced substitution from the posterior forward pass). Never size a latent's plate with `data.batch_size`, and do not wrap latent priors/guides in `scale_vector` (only the likelihood is scaled). A batch-sized latent silently aliases genotypes onto batch positions under every numpyro autoguide, including `AutoDelta` (MAP, pre-MAP, `tfs-prefit-calibration`) — even at full batch, because the full-batch index is binding-first and reshuffled each step. `inference/batch_safety.py` detects such sites by tracing at two batch sizes; `RunInference.run_optimization` runs that check before fitting with any autoguide and refuses an unsafe model, and `tests/tfscreen/tfmodel/inference/test_batch_safety.py` enforces it registry-wide. Known exception: `noise/beta`'s `{name}_dist` (its latent is the noisy θ itself). (This applies to `components/` categories. `generative/observe/` is not a `/` registry entry — see above.) diff --git a/src/tfscreen/tfmodel/analysis/prior_predictive.py b/src/tfscreen/tfmodel/analysis/prior_predictive.py index 2e46c66f..b2ea0f14 100644 --- a/src/tfscreen/tfmodel/analysis/prior_predictive.py +++ b/src/tfscreen/tfmodel/analysis/prior_predictive.py @@ -53,7 +53,12 @@ def draw_prior(orchestrator, rng_key=0, num_draws=1): if site["type"] == "deterministic" } - return_sites = sorted(set(tr.keys()) - observed) + # Plate sites also appear in the trace (their value is the index array); + # they are neither latents nor predictions. + return_sites = sorted( + name for name, site in tr.items() + if site["type"] in ("sample", "deterministic") and name not in observed + ) predictive = Predictive( orchestrator.jax_model, diff --git a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py index 25c5e402..5698d2b7 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py +++ b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py @@ -97,13 +97,12 @@ def define_model(name: str, ) # Sample non-centered offsets for mutant genotypes only - with pyro.plate("shared_genotype_plate", size=data.batch_size,dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - activity_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + activity_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if activity_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if activity_offset.shape[-1] == data.num_genotype: activity_offset = activity_offset[..., data.batch_idx] # Calculate in log-space, then exponentiate @@ -167,17 +166,12 @@ def guide(name: str, constraint=dist.constraints.positive) # Sample non-centered offsets for mutant genotypes only - with pyro.plate("shared_genotype_plate", size=data.batch_size,dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + activity_offset = pyro.sample(f"{name}_offset", dist.Normal(offset_locs, offset_scales)) - batch_locs = offset_locs[data.batch_idx] - batch_scales = offset_scales[data.batch_idx] - - activity_offset = pyro.sample(f"{name}_offset", dist.Normal(batch_locs, batch_scales)) - - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if activity_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if activity_offset.shape[-1] == data.num_genotype: activity_offset = activity_offset[..., data.batch_idx] # Calculate in log-space, then exponentiate diff --git a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py index b6c8b2d3..c5c16eef 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py +++ b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py @@ -63,21 +63,20 @@ def define_model(name: str, dist.HalfNormal(priors.global_scale_tau_scale)) # Sample local scales and offsets - with pyro.plate("shared_genotype_plate", size=data.batch_size,dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - - # Local scale `lambda`. HalfNormal(1) is the standard Horseshoe. - local_scale_lambda = pyro.sample(f"{name}_local_scale", - dist.HalfNormal(1.0)) - - # Non-centered offset `z` (always Normal(0,1)) - activity_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) - - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if local_scale_lambda.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + + # Local scale `lambda`. HalfNormal(1) is the standard Horseshoe. + local_scale_lambda = pyro.sample(f"{name}_local_scale", + dist.HalfNormal(1.0)) + + # Non-centered offset `z` (always Normal(0,1)) + activity_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) + + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if local_scale_lambda.shape[-1] == data.num_genotype: local_scale_lambda = local_scale_lambda[..., data.batch_idx] - if activity_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + if activity_offset.shape[-1] == data.num_genotype: activity_offset = activity_offset[..., data.batch_idx] # Combine scales: `beta = z * (tau * lambda)` @@ -132,27 +131,22 @@ def guide(name: str, constraint=dist.constraints.positive) # Sample local scales and offsets - with pyro.plate("shared_genotype_plate", size=data.batch_size,dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - - lambda_batch_locs = lambda_locs[data.batch_idx] - lambda_batch_scales = lambda_scales[data.batch_idx] - - activity_batch_locs = activity_offset_locs[data.batch_idx] - activity_batch_scales = activity_offset_scales[data.batch_idx] + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): - # Local scale `lambda`. HalfNormal(1) is the standard Horseshoe. - local_scale_lambda = pyro.sample(f"{name}_local_scale", - dist.LogNormal(lambda_batch_locs, lambda_batch_scales)) + # Local scale `lambda`. HalfNormal(1) is the standard Horseshoe. + local_scale_lambda = pyro.sample(f"{name}_local_scale", + dist.LogNormal(lambda_locs, lambda_scales)) - # Non-centered offset `z` (always Normal(0,1)) - activity_offset = pyro.sample(f"{name}_offset", dist.Normal(activity_batch_locs, activity_batch_scales)) + # Non-centered offset `z` (always Normal(0,1)) + activity_offset = pyro.sample(f"{name}_offset", + dist.Normal(activity_offset_locs, + activity_offset_scales)) - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if local_scale_lambda.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if local_scale_lambda.shape[-1] == data.num_genotype: local_scale_lambda = local_scale_lambda[..., data.batch_idx] - if activity_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + if activity_offset.shape[-1] == data.num_genotype: activity_offset = activity_offset[..., data.batch_idx] # Combine scales: `beta = z * (tau * lambda)` diff --git a/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py b/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py index 1c1801c7..11dcebb3 100644 --- a/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py +++ b/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py @@ -93,13 +93,12 @@ def define_model(name: str, pinned, ) - with pyro.plate("shared_genotype_plate", size=data.batch_size,dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - dk_geno_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + dk_geno_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if dk_geno_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if dk_geno_offset.shape[-1] == data.num_genotype: dk_geno_offset = dk_geno_offset[..., data.batch_idx] dk_geno_lognormal_values = jnp.clip(jnp.exp(dk_geno_hyper_loc + dk_geno_offset * dk_geno_hyper_scale),max=1e30) @@ -171,18 +170,12 @@ def guide(name: str, offset_scales = pyro.param(f"{name}_offset_scales", jnp.ones(data.num_genotype,dtype=float), constraint=dist.constraints.positive) - # --- Batching --- - with pyro.plate("shared_genotype_plate", size=data.batch_size,dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - - batch_locs = offset_locs[...,data.batch_idx] - batch_scales = offset_scales[...,data.batch_idx] + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + dk_geno_offset = pyro.sample(f"{name}_offset", dist.Normal(offset_locs, offset_scales)) - dk_geno_offset = pyro.sample(f"{name}_offset", dist.Normal(batch_locs, batch_scales)) - - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if dk_geno_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if dk_geno_offset.shape[-1] == data.num_genotype: dk_geno_offset = dk_geno_offset[..., data.batch_idx] # --- Deterministic Calculation --- diff --git a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py index eeb6e663..26431b02 100644 --- a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py +++ b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py @@ -247,13 +247,12 @@ def define_model(name: str, # Sample non-centered offsets for each ln_cfu0 group with pyro.plate(f"{name}_replicate", data.num_replicate, dim=-3): with pyro.plate(f"{name}_condition_pre", data.num_condition_pre, dim=-2): - with pyro.plate("shared_genotype_plate", size=data.batch_size, dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - ln_cfu0_offsets = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + ln_cfu0_offsets = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if ln_cfu0_offsets.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if ln_cfu0_offsets.shape[-1] == data.num_genotype: ln_cfu0_offsets = ln_cfu0_offsets[..., data.batch_idx] per_geno_loc, per_geno_scale = _per_geno_loc_scale( @@ -364,17 +363,13 @@ def guide(name: str, # Sample non-centered offsets for each ln_cfu0 group with pyro.plate(f"{name}_replicate", data.num_replicate, dim=-3): with pyro.plate(f"{name}_condition_pre", data.num_condition_pre, dim=-2): - with pyro.plate("shared_genotype_plate", size=data.batch_size, dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + ln_cfu0_offsets = pyro.sample(f"{name}_offset", + dist.Normal(offset_locs, offset_scales)) - batch_locs = offset_locs[..., data.batch_idx] - batch_scales = offset_scales[..., data.batch_idx] - ln_cfu0_offsets = pyro.sample(f"{name}_offset", - dist.Normal(batch_locs, batch_scales)) - - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if ln_cfu0_offsets.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if ln_cfu0_offsets.shape[-1] == data.num_genotype: ln_cfu0_offsets = ln_cfu0_offsets[..., data.batch_idx] per_geno_loc, per_geno_scale = _per_geno_loc_scale( diff --git a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py index 932a378b..b40dfd03 100644 --- a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py +++ b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py @@ -151,12 +151,12 @@ def define_model(name: str, # Per-(replicate, genotype) non-centred offsets — shape (R, batch) with pyro.plate(f"{name}_geno_replicate", data.num_replicate, dim=-2): - with pyro.plate("shared_genotype_plate", size=data.batch_size, dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - offset_geno = pyro.sample(f"{name}_offset_geno", dist.Normal(0.0, 1.0)) + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + offset_geno = pyro.sample(f"{name}_offset_geno", dist.Normal(0.0, 1.0)) - # Guard against full-sized array substitution during initialisation - if offset_geno.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if offset_geno.shape[-1] == data.num_genotype: offset_geno = offset_geno[..., data.batch_idx] # Per-(replicate, condition_pre) tube offsets — shape (R, C) @@ -270,15 +270,13 @@ def guide(name: str, constraint=dist.constraints.positive) with pyro.plate(f"{name}_geno_replicate", data.num_replicate, dim=-2): - with pyro.plate("shared_genotype_plate", size=data.batch_size, dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - batch_geno_locs = offset_geno_locs[..., data.batch_idx] - batch_geno_scales = offset_geno_scales[..., data.batch_idx] - offset_geno = pyro.sample(f"{name}_offset_geno", - dist.Normal(batch_geno_locs, batch_geno_scales)) - - # Guard against full-sized substitution - if offset_geno.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + offset_geno = pyro.sample(f"{name}_offset_geno", + dist.Normal(offset_geno_locs, offset_geno_scales)) + + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if offset_geno.shape[-1] == data.num_genotype: offset_geno = offset_geno[..., data.batch_idx] # Per-(replicate, condition_pre) tube offset variational params — shape (R, C) diff --git a/src/tfscreen/tfmodel/generative/components/noise/beta.py b/src/tfscreen/tfmodel/generative/components/noise/beta.py index 1f8a8977..b5ea1bef 100644 --- a/src/tfscreen/tfmodel/generative/components/noise/beta.py +++ b/src/tfscreen/tfmodel/generative/components/noise/beta.py @@ -24,9 +24,10 @@ class ModelPriors: beta_kappa_scale: float -def define_model(name: str, - fx_calc: jnp.ndarray, - priors: ModelPriors) -> jnp.ndarray: +def define_model(name: str, + fx_calc: jnp.ndarray, + priors: ModelPriors, + data: GrowthData = None) -> jnp.ndarray: """ Applies Beta-distributed noise to a deterministic value. @@ -51,6 +52,14 @@ def define_model(name: str, priors : ModelPriors A Pytree (Flax dataclass) containing the hyperparameters for the `kappa` prior. + data : GrowthData, optional + Batch data, accepted for a uniform noise-component signature and + unused. The ``{name}_dist`` latent is the noisy value itself, drawn + per observation around the batch's ``fx_calc``, so unlike the other + per-genotype latents it cannot be sampled at library size: it is + batch-shaped and therefore not safe to fit with an autoguide + (including AutoDelta/MAP) under genotype mini-batching. See + inference/batch_safety.py. Returns ------- @@ -85,9 +94,10 @@ def define_model(name: str, return fx_noisy -def guide(name: str, - fx_calc: jnp.ndarray, - priors: ModelPriors) -> jnp.ndarray: +def guide(name: str, + fx_calc: jnp.ndarray, + priors: ModelPriors, + data: GrowthData = None) -> jnp.ndarray: """ Guide for the Beta noise model. diff --git a/src/tfscreen/tfmodel/generative/components/noise/logit_normal.py b/src/tfscreen/tfmodel/generative/components/noise/logit_normal.py index e1227c8d..952ee126 100644 --- a/src/tfscreen/tfmodel/generative/components/noise/logit_normal.py +++ b/src/tfscreen/tfmodel/generative/components/noise/logit_normal.py @@ -45,6 +45,38 @@ _LOGIT_EPS = 1e-6 +def _sample_epsilon(name, fx_calc, sigma_logit, data): + """ + Sample the per-(titrant_conc, genotype) epsilon, returned at fx_calc's shape. + + With ``data``, epsilon is sampled at library size (``data.num_genotype``) + and sliced to the batch with ``data.batch_idx``, so it stays attached to + the same genotype under mini-batching (see inference/batch_safety.py). A + value of any other size is an already-sliced substitution (posterior + forward pass). Without ``data`` the genotype plate is sized from + ``fx_calc`` itself, for standalone callers. + """ + num_genotype = fx_calc.shape[-1] if data is None else data.num_genotype + eps_shape = fx_calc.shape[:-1] + (num_genotype,) + + # Plate epsilon on titrant_conc (dim=-2) and genotype (dim=-1) so that + # prediction.py's slicing logic can match these named plates to TensorManager + # dim names and correctly reduce epsilon to the prediction-time shape. + # Without plates, prediction.py passes training-time epsilon unchanged into + # a model expecting prediction-time shapes, causing a broadcast error. + with pyro.plate(f"{name}_titrant_conc", fx_calc.shape[-2], dim=-2): + with pyro.plate(f"{name}_genotype", num_genotype, dim=-1): + epsilon = pyro.sample( + f"{name}_epsilon", + dist.Normal(jnp.zeros(eps_shape), sigma_logit) + ) + + if data is not None and epsilon.shape[-1] == data.num_genotype: + epsilon = epsilon[..., data.batch_idx] + + return epsilon + + @dataclass(frozen=True) class ModelPriors: """ @@ -61,7 +93,8 @@ class ModelPriors: def define_model(name: str, fx_calc: jnp.ndarray, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + data: GrowthData = None) -> jnp.ndarray: """ Apply logit-normal noise to a deterministic occupancy array. @@ -70,9 +103,14 @@ def define_model(name: str, name : str Prefix for all Numpyro sample / deterministic sites. fx_calc : jnp.ndarray - Deterministic theta values in (0, 1). + Deterministic theta values in (0, 1). The last axis is the batch's + genotypes. priors : ModelPriors Pytree containing ``sigma_logit_scale``. + data : GrowthData, optional + When given, epsilon is sampled at library size and sliced with + ``data.batch_idx`` (mini-batch safe). ``None`` sizes it from + ``fx_calc``. Returns ------- @@ -88,17 +126,7 @@ def define_model(name: str, fx_safe = jnp.clip(fx_calc, _LOGIT_EPS, 1.0 - _LOGIT_EPS) logit_calc = jnp.log(fx_safe / (1.0 - fx_safe)) - # Plate epsilon on titrant_conc (dim=-2) and genotype (dim=-1) so that - # prediction.py's slicing logic can match these named plates to TensorManager - # dim names and correctly reduce epsilon to the prediction-time shape. - # Without plates, prediction.py passes training-time epsilon unchanged into - # a model expecting prediction-time shapes, causing a broadcast error. - with pyro.plate(f"{name}_titrant_conc", fx_calc.shape[-2], dim=-2): - with pyro.plate(f"{name}_genotype", fx_calc.shape[-1], dim=-1): - epsilon = pyro.sample( - f"{name}_epsilon", - dist.Normal(jnp.zeros_like(fx_calc), sigma_logit) - ) + epsilon = _sample_epsilon(name, fx_calc, sigma_logit, data) fx_noisy = jax_nn.sigmoid(logit_calc + epsilon) pyro.deterministic(name, fx_noisy) @@ -107,7 +135,8 @@ def define_model(name: str, def guide(name: str, fx_calc: jnp.ndarray, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + data: GrowthData = None) -> jnp.ndarray: """ Variational guide for the logit-normal theta noise model. @@ -141,12 +170,7 @@ def guide(name: str, ) sigma_logit = pyro.sample(f"{name}_sigma_logit", dist.LogNormal(loc, scale)) - with pyro.plate(f"{name}_titrant_conc", fx_calc.shape[-2], dim=-2): - with pyro.plate(f"{name}_genotype", fx_calc.shape[-1], dim=-1): - epsilon = pyro.sample( - f"{name}_epsilon", - dist.Normal(jnp.zeros_like(fx_calc), sigma_logit) - ) + epsilon = _sample_epsilon(name, fx_calc, sigma_logit, data) fx_safe = jnp.clip(fx_calc, _LOGIT_EPS, 1.0 - _LOGIT_EPS) logit_calc = jnp.log(fx_safe / (1.0 - fx_safe)) diff --git a/src/tfscreen/tfmodel/generative/components/noise/zero.py b/src/tfscreen/tfmodel/generative/components/noise/zero.py index ee5b1857..3081d42d 100644 --- a/src/tfscreen/tfmodel/generative/components/noise/zero.py +++ b/src/tfscreen/tfmodel/generative/components/noise/zero.py @@ -15,9 +15,10 @@ class ModelPriors: pass -def define_model(name: str, - fx_calc: jnp.ndarray, - priors: ModelPriors) -> jnp.ndarray: +def define_model(name: str, + fx_calc: jnp.ndarray, + priors: ModelPriors, + data: DataClass = None) -> jnp.ndarray: """ A null model that applies no noise to the input. @@ -34,6 +35,9 @@ def define_model(name: str, occupancy). priors : ModelPriors A Pytree of hyperparameters. (Unused in this model). + data : DataClass, optional + Batch data, accepted for a uniform noise-component signature. + (Unused in this model). Returns ------- @@ -43,9 +47,10 @@ def define_model(name: str, return fx_calc -def guide(name: str, - fx_calc: jnp.ndarray, - priors: ModelPriors) -> jnp.ndarray: +def guide(name: str, + fx_calc: jnp.ndarray, + priors: ModelPriors, + data: DataClass = None) -> jnp.ndarray: """ Guide for the no-noise model. diff --git a/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py b/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py index 9c0a762b..31e30eec 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py +++ b/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py @@ -104,17 +104,16 @@ def define_model(name: str, with pyro.plate(f"{name}_titrant_name_plate", data.num_titrant_name, dim=-3): with pyro.plate(f"{name}_titrant_conc_plate", data.num_titrant_conc, dim=-2): - with pyro.plate("theta_genotype_plate", size=data.batch_size, dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): - logit_theta_offset = pyro.sample( - f"{name}_logit_theta_offset", - dist.Normal(0.0, 1.0) - ) + logit_theta_offset = pyro.sample( + f"{name}_logit_theta_offset", + dist.Normal(0.0, 1.0) + ) - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if logit_theta_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if logit_theta_offset.shape[-1] == data.num_genotype: logit_theta_offset = logit_theta_offset[..., data.batch_idx] # Calculate parameters in logit-space @@ -194,27 +193,20 @@ def guide(name: str, jnp.ones(param_shape, dtype=float), constraint=dist.constraints.positive) - # --- 3. Sampling (Sliced by Genotype) --- + # --- 3. Sampling (full library; sliced to the batch below) --- with pyro.plate(f"{name}_titrant_name_plate", data.num_titrant_name, dim=-3): with pyro.plate(f"{name}_titrant_conc_plate", data.num_titrant_conc, dim=-2): - # Batching on Genotype (dim=-1) - with pyro.plate("theta_genotype_plate", size=data.batch_size, dim=-1): - with pyro.handlers.scale(scale=data.scale_vector): - - # Slice the last dimension (Genotype) using the batch indices - # The ellipsis (...) preserves the TitrantName and TitrantConc dimensions - batch_locs = offset_locs[..., data.batch_idx] - batch_scales = offset_scales[..., data.batch_idx] - - logit_theta_offset = pyro.sample( - f"{name}_logit_theta_offset", - dist.Normal(batch_locs, batch_scales) - ) - - # Guard against full-sized array substitution during initialization or re-runs - # with full-sized initial values - if logit_theta_offset.shape[-1] == data.num_genotype and data.batch_size < data.num_genotype: + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + + logit_theta_offset = pyro.sample( + f"{name}_logit_theta_offset", + dist.Normal(offset_locs, offset_scales) + ) + + # Sampled at library size: slice to this batch's genotypes. A value of + # any other size is an already-sliced substitution (posterior forward pass). + if logit_theta_offset.shape[-1] == data.num_genotype: logit_theta_offset = logit_theta_offset[..., data.batch_idx] # --- 4. Reconstruction (Deterministic) --- diff --git a/src/tfscreen/tfmodel/generative/model.py b/src/tfscreen/tfmodel/generative/model.py index 2585f25d..d47a1b88 100644 --- a/src/tfscreen/tfmodel/generative/model.py +++ b/src/tfscreen/tfmodel/generative/model.py @@ -64,7 +64,8 @@ def jax_model(data: DataClass, pyro.deterministic("theta_binding_pred", theta_binding) binding_pred = theta_binding_noise_model("theta_binding_noise", theta_binding, - priors.binding.theta_binding_noise) + priors.binding.theta_binding_noise, + data=data.binding) if is_guide: binding_observer("binding", data.binding, None) else: @@ -114,7 +115,8 @@ def jax_model(data: DataClass, pyro.deterministic(f"theta_binding_pred",theta_binding) binding_pred = theta_binding_noise_model("theta_binding_noise", theta_binding, - priors.binding.theta_binding_noise) + priors.binding.theta_binding_noise, + data=data.binding) # ------------------------------------------------------------------------- # Make prediction for the growth experiment @@ -195,7 +197,8 @@ def jax_model(data: DataClass, noisy_theta_growth = theta_growth_noise_model("theta_growth_noise", corr_theta_growth, - priors.growth.theta_growth_noise) + priors.growth.theta_growth_noise, + data=data.growth) rescaled_theta = theta_rescale(noisy_theta_growth) diff --git a/src/tfscreen/tfmodel/inference/batch_safety.py b/src/tfscreen/tfmodel/inference/batch_safety.py new file mode 100644 index 00000000..cb6d2c82 --- /dev/null +++ b/src/tfscreen/tfmodel/inference/batch_safety.py @@ -0,0 +1,152 @@ +""" +Detect latent sites whose shape depends on the genotype mini-batch. + +Genotype mini-batching (``tensors/batch.py::get_batch``) slices the growth +tensors down to ``batch_size`` genotypes but leaves ``num_genotype`` at the +full library size. A per-genotype latent is only safe under mini-batching if +it is sampled at the full library size (a ``num_genotype``-sized plate) and +then sliced to the batch with ``batch_idx`` -- the ``hill_geno`` pattern. A +latent sampled in a plate sized ``data.batch_size`` instead has one entry per +batch *position*, not per genotype. Component guides can hide this by +holding full-size variational params and slicing them, but any numpyro +autoguide (``AutoDelta`` for MAP included) sizes its params from a traced +batch, so every step writes whichever genotypes are in that batch onto the +same positions. The result is silently wrong for every non-binding genotype. + +:func:`find_batch_dependent_latents` finds such sites by tracing the model at +two different batch sizes: a correctly written latent has the same shape in +both traces, while a batch-sized one changes shape. +""" + +import math + +import jax +import jax.numpy as jnp +from numpyro.handlers import seed, trace + + +def _latent_shapes(model_fn, priors, data): + """ + Return {site_name: shape} for every unobserved sample site. + + Traces under ``jax.eval_shape`` (abstract evaluation: no FLOPs, no + allocation), so the check is free even on a full-size library, falling + back to a concrete forward pass if a component cannot be traced + abstractly. + """ + + box = {} + + def _traced(d, p): + box["trace"] = trace(seed(model_fn, rng_seed=0)).get_trace(data=d, + priors=p) + return jnp.zeros(()) + + try: + jax.eval_shape(_traced, data, priors) + except Exception: + box.clear() + _traced(data, priors) + + return { + name: tuple(jnp.shape(site["value"])) + for name, site in box["trace"].items() + if site["type"] == "sample" and not site.get("is_observed", False) + } + + +def orchestrator_latent_dimension(orchestrator): + """ + Total number of scalar latents in a ``ModelOrchestrator``'s model. + + This is the dimension of the flattened latent vector an + ``AutoContinuous`` guide (e.g. ``AutoMultivariateNormal``) works in. + """ + + num_genotype = orchestrator.data.num_genotype + data = orchestrator.get_batch(orchestrator.data, jnp.arange(num_genotype)) + shapes = _latent_shapes(orchestrator.jax_model, orchestrator.priors, data) + return sum(math.prod(s) for s in shapes.values()) + + +def find_batch_dependent_latents(model_fn, priors, full_data, get_batch, + idx_a, idx_b): + """ + Find latent sample sites whose shape changes with the batch size. + + Parameters + ---------- + model_fn : callable + Numpyro model taking ``data`` and ``priors`` keyword arguments. + priors : Any + Priors pytree passed through to ``model_fn``. + full_data : Any + Full (un-batched) data pytree. + get_batch : callable + ``get_batch(full_data, idx) -> batch_data``. + idx_a, idx_b : array-like of int + Two genotype index sets of *different* lengths. + + Returns + ------- + dict + Maps each batch-dependent site name to its ``(shape_a, shape_b)`` + pair. Empty when every latent is safe to mini-batch. + + Raises + ------ + ValueError + If ``idx_a`` and ``idx_b`` have the same length (the comparison + would be meaningless). + """ + + idx_a = jnp.asarray(idx_a) + idx_b = jnp.asarray(idx_b) + if idx_a.shape[0] == idx_b.shape[0]: + raise ValueError( + "idx_a and idx_b must have different lengths to expose " + "batch-size-dependent latent shapes." + ) + + shapes_a = _latent_shapes(model_fn, priors, get_batch(full_data, idx_a)) + shapes_b = _latent_shapes(model_fn, priors, get_batch(full_data, idx_b)) + + return { + name: (shapes_a[name], shapes_b[name]) + for name in shapes_a + if name in shapes_b and shapes_a[name] != shapes_b[name] + } + + +def find_orchestrator_batch_dependent_latents(orchestrator): + """ + Run :func:`find_batch_dependent_latents` on a ``ModelOrchestrator``. + + Traces the model at the full library (``arange(num_genotype)``) and at + one fewer genotype. Both index sets are prefixes of the library, so the + check does not depend on the configured ``batch_size``. + + Parameters + ---------- + orchestrator : ModelOrchestrator + Any object exposing ``jax_model``, ``priors``, ``data`` (with + ``num_genotype``) and ``get_batch``. + + Returns + ------- + dict + See :func:`find_batch_dependent_latents`. + """ + + num_genotype = orchestrator.data.num_genotype + if num_genotype < 2: + return {} + + return find_batch_dependent_latents( + orchestrator.jax_model, + orchestrator.priors, + orchestrator.data, + orchestrator.get_batch, + idx_a=jnp.arange(num_genotype), + idx_b=jnp.arange(num_genotype - 1), + ) diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index fc35309b..a70cfe30 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -11,13 +11,22 @@ Trace_ELBO, Predictive, ) +from numpyro.infer import autoguide from numpyro.optim import ClippedAdam import numpy as np import dill from tqdm.auto import tqdm +from tfscreen.tfmodel.inference.batch_safety import ( + find_orchestrator_batch_dependent_latents, + orchestrator_latent_dimension, +) + _HDF5_MAX_CHUNK_BYTES = 1 << 30 # 1 GiB; HDF5 hard-limit is 4 GiB +# Warn when a dense AutoMultivariateNormal covariance exceeds this (GB). +_DENSE_GUIDE_WARN_GB = 4.0 + def _safe_chunks(first_dim, trailing_shape, dtype): """Return a chunk tuple whose total byte size stays under _HDF5_MAX_CHUNK_BYTES.""" trailing = int(np.prod(trailing_shape)) if trailing_shape else 1 @@ -28,6 +37,7 @@ def _safe_chunks(first_dim, trailing_shape, dtype): from collections import deque from functools import partial import os +import warnings import h5py class RunInference: """ @@ -129,6 +139,45 @@ def setup_svi(self, return svi + def _check_autoguide(self, guide): + """ + Refuse an autoguide the model cannot support; report dense-guide size. + + Autoguides size their parameters from a traced batch, so a latent whose + shape follows the genotype batch would get one parameter per batch + position instead of per genotype -- at any batch size, because the + full-batch index is reshuffled every step. The component guide is + exempt: it holds library-sized parameters and slices them itself. + Called when fitting starts, since fitting is what creates the aliasing. + """ + + guide_name = type(guide).__name__ + + found = find_orchestrator_batch_dependent_latents(self.model) + if found: + raise ValueError( + f"{guide_name} cannot fit latent site(s) {sorted(found)}: " + f"their shape follows the genotype mini-batch rather than the " + f"library, so an autoguide would assign one genotype's value " + f"to another. Use guide_type='component', or a component " + f"whose latents are library-sized (e.g. " + f"theta_growth_noise='logit_normal' instead of 'beta'). See " + f"inference/batch_safety.py." + ) + + if isinstance(guide, autoguide.AutoMultivariateNormal): + dim = orchestrator_latent_dimension(self.model) + # scale_tril plus Adam's two moment estimates, float32. + gigabytes = 3 * dim * dim * 4 / 1e9 + msg = (f"{guide_name}: {dim} latent dimensions; the dense " + f"covariance needs ~{gigabytes:.3g} GB (parameters plus " + f"optimizer state).") + if gigabytes > _DENSE_GUIDE_WARN_GB: + warnings.warn(msg + " Consider " + "AutoLowRankMultivariateNormal.") + else: + print(msg, flush=True) + def run_optimization(self, svi, svi_state=None, @@ -198,8 +247,16 @@ def run_optimization(self, If parameters explode to NaN during optimization. FileExistsError If a numbered epoch checkpoint file already exists. + ValueError + If ``svi`` uses a numpyro autoguide (AutoDelta included) and the + model has latents whose shape follows the genotype mini-batch + (see ``inference/batch_safety.py``). """ + # Refuse an autoguide the model cannot support before any fitting. + if isinstance(svi.guide, autoguide.AutoGuide): + self._check_autoguide(svi.guide) + # Set up update function (triggers jit) update_function = jax.jit(svi.update) @@ -1057,6 +1114,28 @@ def _map_params_to_constrained(self, map_params): for k, v in unconstrained.items() } + @staticmethod + def _check_library_sized_latents(latents, dim_map, total_num_genotypes): + """ + Raise if any genotype-indexed MAP latent is not library-sized. + + A batch-sized latent (a MAP checkpoint written before per-genotype + latents were sampled at library size, or a component that cannot be + -- see inference/batch_safety.py) holds values fit per mini-batch + position, aliased across genotypes. Refuse it rather than reuse one + genotype's value for another. ``dim_map`` axes are negative, so + ``latents`` may or may not carry a leading sample axis. + """ + for k, v in latents.items(): + if k in dim_map and v.shape[dim_map[k]] != total_num_genotypes: + raise ValueError( + f"MAP latent '{k}' has {v.shape[dim_map[k]]} entries along " + f"the genotype axis but the library has " + f"{total_num_genotypes} genotypes. Its values were fit per " + f"mini-batch position, not per genotype, so they cannot " + f"be mapped back onto genotypes. Refit the model." + ) + def get_map_posteriors(self, map_params, out_prefix, @@ -1100,6 +1179,9 @@ def get_map_posteriors(self, # Add a leading sample dimension: (*shape) → (1, *shape) latent_samples = {k: jnp.expand_dims(v, 0) for k, v in constrained.items()} + self._check_library_sized_latents(latent_samples, dim_map, + total_num_genotypes) + h5_file = f"{out_prefix}_posterior.h5" batch_collector = {} @@ -1108,17 +1190,8 @@ def get_map_posteriors(self, end_idx = min(start_idx + forward_batch_size, total_num_genotypes) batch_indices = jnp.arange(start_idx, end_idx) - # Clip indices to the valid range for each latent before calling - # jnp.take. On GPU, out-of-bounds jnp.take returns NaN; on CPU it - # usually clips silently. MAP checkpoints trained with - # batch_size < N_geno have latent parameters sized to batch_size, - # so indices beyond that range must be clipped explicitly. - def _safe_take(v, idx, axis): - n = v.shape[axis if axis >= 0 else len(v.shape) + axis] - return jnp.take(v, jnp.clip(idx, 0, n - 1), axis=axis) - batch_latents = { - k: _safe_take(v, batch_indices, dim_map[k]) + k: jnp.take(v, batch_indices, axis=dim_map[k]) if k in dim_map else v for k, v in latent_samples.items() } @@ -1439,6 +1512,10 @@ def get_laplace_posteriors(self, if k.endswith("_auto_loc") } + # Refuse aliased (batch-sized) latents before the costly Hessian. + self._check_library_sized_latents(unconstrained, dim_map, + total_num_genotypes) + # Flatten to a single vector for Hessian computation flat_map, unravel = jax.flatten_util.ravel_pytree(unconstrained) D = flat_map.shape[0] diff --git a/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py b/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py index 37fa233a..2eee3d75 100644 --- a/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py +++ b/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py @@ -1,3 +1,5 @@ +from collections import namedtuple + import pytest import jax import jax.numpy as jnp @@ -216,3 +218,49 @@ def test_guide_sigma_scale_constraint(name, priors, fx_calc): ) scale_val = guide_trace[f"{name}_sigma_logit_scale"]["value"] assert float(scale_val) > 0.0 + + +# --------------------------------------------------------------------------- +# Library-size sampling under genotype mini-batching +# --------------------------------------------------------------------------- + +_BatchData = namedtuple("_BatchData", ["num_genotype", "batch_idx"]) + + +@pytest.fixture +def batch_data(): + # 5-genotype library; fx_calc's 3 columns are genotypes 4, 0 and 2. + return _BatchData(num_genotype=5, batch_idx=jnp.array([4, 0, 2])) + + +@pytest.mark.parametrize("fn", [define_model, guide]) +def test_epsilon_sampled_at_library_size(fn, name, priors, fx_calc, batch_data): + with seed(rng_seed=0): + tr = trace(fn).get_trace(name=name, fx_calc=fx_calc, priors=priors, + data=batch_data) + assert tr[f"{name}_epsilon"]["value"].shape == (2, 5) + + +@pytest.mark.parametrize("fn", [define_model, guide]) +def test_epsilon_sliced_to_batch_order(fn, name, priors, fx_calc, batch_data): + epsilon = jnp.array([[0.0, 1.0, 2.0, 3.0, 4.0], + [-1.0, -2.0, -3.0, -4.0, -5.0]]) + substituted = substitute(fn, data={f"{name}_sigma_logit": jnp.array(1.0), + f"{name}_epsilon": epsilon}) + out = seed(substituted, rng_seed=0)(name=name, fx_calc=fx_calc, + priors=priors, data=batch_data) + logit = jnp.log(fx_calc / (1.0 - fx_calc)) + expected = jax.nn.sigmoid(logit + epsilon[:, batch_data.batch_idx]) + assert jnp.allclose(out, expected, atol=1e-6) + + +def test_presliced_epsilon_used_directly(name, priors, fx_calc, batch_data): + """A batch-sized substitution (posterior forward pass) is not re-sliced.""" + epsilon = jnp.full(fx_calc.shape, 0.5) + substituted = substitute(define_model, + data={f"{name}_sigma_logit": jnp.array(1.0), + f"{name}_epsilon": epsilon}) + out = seed(substituted, rng_seed=0)(name=name, fx_calc=fx_calc, + priors=priors, data=batch_data) + logit = jnp.log(fx_calc / (1.0 - fx_calc)) + assert jnp.allclose(out, jax.nn.sigmoid(logit + 0.5), atol=1e-6) diff --git a/tests/tfscreen/tfmodel/generative/test_model.py b/tests/tfscreen/tfmodel/generative/test_model.py index cd91b463..657d81ea 100644 --- a/tests/tfscreen/tfmodel/generative/test_model.py +++ b/tests/tfscreen/tfmodel/generative/test_model.py @@ -107,8 +107,8 @@ def mock_control(): ) # pass-through # Noise models just pass through or add noise. Let's pass through for simplicity. - theta_binding_noise_model = MagicMock(side_effect=lambda n, x, p: x) - theta_growth_noise_model = MagicMock(side_effect=lambda n, x, p: x) + theta_binding_noise_model = MagicMock(side_effect=lambda n, x, p, data=None: x) + theta_growth_noise_model = MagicMock(side_effect=lambda n, x, p, data=None: x) growth_noise_model = MagicMock(return_value=0.0) # sigma_k = 0 → no extra noise sample_offset_model = MagicMock(return_value=0.0) # delta_sample = 0 → no offset diff --git a/tests/tfscreen/tfmodel/inference/test_batch_safety.py b/tests/tfscreen/tfmodel/inference/test_batch_safety.py new file mode 100644 index 00000000..43cbf118 --- /dev/null +++ b/tests/tfscreen/tfmodel/inference/test_batch_safety.py @@ -0,0 +1,284 @@ +""" +Tests for tfscreen.tfmodel.inference.batch_safety. + +The registry-wide tests guard against per-genotype latents sampled in plates +sized ``data.batch_size``. Those alias every non-binding genotype onto batch +positions under any numpyro autoguide (AutoDelta/MAP included); see the +module docstring of ``batch_safety`` for the mechanism. +""" +import os + +import jax.numpy as jnp +import numpyro +import numpyro.distributions as dist +import pytest +from flax import struct + +from tfscreen.tfmodel.inference.batch_safety import ( + find_batch_dependent_latents, + find_orchestrator_batch_dependent_latents, + orchestrator_latent_dimension, +) +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") + + +# --------------------------------------------------------------------------- +# Toy models +# --------------------------------------------------------------------------- + +@struct.dataclass +class _ToyData: + num_genotype: int = struct.field(pytree_node=False) + batch_size: int = struct.field(pytree_node=False) + batch_idx: jnp.ndarray + + +def _toy_get_batch(data, idx): + return _ToyData(num_genotype=data.num_genotype, + batch_size=int(idx.shape[0]), + batch_idx=idx) + + +def _toy_full_data(num_genotype=5): + return _ToyData(num_genotype=num_genotype, + batch_size=num_genotype, + batch_idx=jnp.arange(num_genotype)) + + +def _batch_sized_model(data, priors): + numpyro.sample("global_p", dist.Normal(0.0, 1.0)) + with numpyro.plate("bad_genotype_plate", data.batch_size): + numpyro.sample("bad_offset", dist.Normal(0.0, 1.0)) + + +def _full_sized_model(data, priors): + numpyro.sample("global_p", dist.Normal(0.0, 1.0)) + with numpyro.plate("good_genotype_plate", data.num_genotype): + offset = numpyro.sample("good_offset", dist.Normal(0.0, 1.0)) + numpyro.deterministic("per_batch", offset[data.batch_idx]) + + +def test_flags_batch_sized_latent(): + full = _toy_full_data() + found = find_batch_dependent_latents(_batch_sized_model, None, full, + _toy_get_batch, + jnp.arange(5), jnp.arange(3)) + assert found == {"bad_offset": ((5,), (3,))} + + +def test_full_sized_latent_is_safe(): + full = _toy_full_data() + found = find_batch_dependent_latents(_full_sized_model, None, full, + _toy_get_batch, + jnp.arange(5), jnp.arange(3)) + assert found == {} + + +def test_library_sized_latent_follows_batch_order(): + """ + Each batch position must read its own genotype's offset. The full-batch + training index is binding-first and reshuffled every step, so a + permutation of the whole library is the case that matters. + """ + from collections import namedtuple + from numpyro.handlers import seed, substitute, trace + from tfscreen.tfmodel.generative.components.dk_geno import ( + hierarchical_geno as dk, + ) + + Data = namedtuple("Data", ["num_genotype", "batch_size", "batch_idx", + "wt_indexes"]) + batch_idx = jnp.array([3, 0, 4, 1, 2]) + data = Data(num_genotype=5, batch_size=5, batch_idx=batch_idx, + wt_indexes=jnp.array([0])) + offsets = jnp.array([0.1, 0.2, 0.3, 0.4, 0.5]) + values = {"dk_geno_offset": offsets, + "dk_geno_hyper_loc": -3.5, + "dk_geno_hyper_scale": 0.5, + "dk_geno_hyper_shift": 0.02} + + model = substitute(seed(dk.define_model, rng_seed=0), data=values) + tr = trace(model).get_trace("dk_geno", data, dk.get_priors()) + + expected = 0.02 - jnp.exp(-3.5 + offsets[batch_idx] * 0.5) + expected = jnp.where(batch_idx == 0, 0.0, expected) # wt pinned to 0 + assert jnp.allclose(tr["dk_geno"]["value"], expected) + + +def test_equal_length_index_sets_rejected(): + full = _toy_full_data() + with pytest.raises(ValueError, match="different lengths"): + find_batch_dependent_latents(_full_sized_model, None, full, + _toy_get_batch, + jnp.arange(3), jnp.array([4, 0, 1])) + + +# --------------------------------------------------------------------------- +# Registry-wide: every per-genotype component must be mini-batch safe +# --------------------------------------------------------------------------- + +# One axis varied at a time from ModelOrchestrator's defaults. dk_geno +# "pinned" is omitted because it needs a pins file; it samples no +# per-genotype latents. The thermo PnnC/PddG theta variants are omitted +# because they need structure/ddG files; they share the PK variants' +# per-mutation latents and differ only in the prior on them. +_SAFE_VARIANTS = [ + ("condition_growth", "linear"), + ("condition_growth", "power"), + ("condition_growth", "saturation"), + ("growth_transition", "instant"), + ("growth_transition", "memory"), + ("growth_transition", "baranyi"), + ("growth_transition", "baranyi_k"), + ("growth_transition", "baranyi_tau"), + ("growth_transition", "two_pop"), + ("activity", "fixed"), + ("activity", "hierarchical_geno"), + ("activity", "horseshoe_geno"), + ("activity", "hierarchical_mut"), + ("activity", "horseshoe_mut"), + ("dk_geno", "fixed"), + ("dk_geno", "hierarchical_geno"), + ("ln_cfu0", "hierarchical"), + ("ln_cfu0", "hierarchical_factored"), + ("theta", "hill_geno"), + ("theta", "hill_mut"), + ("theta", "categorical_geno"), + ("theta", "_simple"), + ("theta", "thermo.O2_C4_K3_U0_a.PK"), + ("theta", "thermo.O2_C4_K3_U1_a.PK"), + ("theta", "thermo.O2_C12_K5_U0_a.PK"), + ("theta", "thermo.O2_C12_K5_U1_a.PK"), + ("theta_rescale", "passthrough"), + ("theta_rescale", "logit"), + ("transformation", "single"), + ("transformation", "empirical"), + ("transformation", "logit_norm"), + ("theta_growth_noise", "zero"), + ("theta_growth_noise", "logit_normal"), + ("theta_binding_noise", "zero"), + ("theta_binding_noise", "beta"), + ("growth_noise", "zero"), + ("growth_noise", "normal_kt"), + ("sample_offset", "zero"), + ("sample_offset", "normal"), +] + +# Extra constructor arguments some variants require. +_VARIANT_KWARGS = { + ("transformation", "empirical"): {"transformation_lambda": (1.0, 0.1)}, + ("transformation", "logit_norm"): {"transformation_lambda": (1.0, 0.1)}, +} + + +def _owned_by(axis, site_name): + """True when site_name belongs to the component registered under axis.""" + if not site_name.startswith(f"{axis}_"): + return False + # theta's sites share a prefix with the theta noise components. + if axis == "theta": + return not site_name.startswith(("theta_growth_noise_", + "theta_binding_noise_")) + return True + + +@pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) +def test_component_latents_are_batch_safe(axis, variant): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=6, + **{axis: variant}, + **_VARIANT_KWARGS.get((axis, variant), {})) + found = find_orchestrator_batch_dependent_latents(orchestrator) + found = {k: v for k, v in found.items() if _owned_by(axis, k)} + assert found == {}, ( + f"{axis}={variant} has latents sampled at batch size " + f"(shape with full library, shape with one fewer genotype): {found}" + ) + + +def test_default_model_is_batch_safe(): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=6) + assert find_orchestrator_batch_dependent_latents(orchestrator) == {} + + +@pytest.mark.parametrize("theta,activity", [ + ("hill_mut", "horseshoe_mut"), + ("thermo.O2_C4_K3_U0_a.PK", "horseshoe_geno"), + ("thermo.O2_C12_K5_U1_a.PK", "horseshoe_geno"), +]) +def test_epistasis_latents_are_batch_safe(theta, activity): + """Pair-indexed epistasis latents must be library-sized too.""" + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=6, + theta=theta, + activity=activity, + epistasis=True) + assert find_orchestrator_batch_dependent_latents(orchestrator) == {} + + +@pytest.mark.parametrize("theta", ["hill_geno", "categorical_geno"]) +def test_binding_only_latents_are_batch_safe(theta): + """Binding-only mode mini-batches the binding genotypes themselves.""" + orchestrator = ModelOrchestrator(None, _BINDING_CSV, + binding_only=True, + batch_size=3, + theta=theta) + assert find_orchestrator_batch_dependent_latents(orchestrator) == {} + + +def test_beta_growth_noise_is_batch_dependent(): + """ + Documented exception: beta noise's latent is the noisy theta itself, + drawn per observation from a Beta centred on the batch's theta, so it + cannot be sampled at library size. The detector must keep flagging it + so autoguides can refuse it under mini-batching. + """ + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=6, + theta_growth_noise="beta") + found = find_orchestrator_batch_dependent_latents(orchestrator) + found = {k for k in found if _owned_by("theta_growth_noise", k)} + assert found == {"theta_growth_noise_dist"} + + +# --------------------------------------------------------------------------- +# orchestrator_latent_dimension +# --------------------------------------------------------------------------- + +def test_latent_dimension_toy(): + """global_p (1) + good_offset (one per library genotype).""" + from types import SimpleNamespace + orch = SimpleNamespace(data=_toy_full_data(5), priors=None, + jax_model=_full_sized_model, + get_batch=_toy_get_batch) + assert orchestrator_latent_dimension(orch) == 6 + + +def test_latent_dimension_matches_autocontinuous(): + """Matches the latent_dim an AutoMultivariateNormal builds itself.""" + from numpyro.infer.autoguide import AutoMultivariateNormal + from numpyro.handlers import seed + + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=6) + num_genotype = orchestrator.data.num_genotype + data = orchestrator.get_batch(orchestrator.data, jnp.arange(num_genotype)) + + guide = AutoMultivariateNormal(orchestrator.jax_model) + seed(guide, rng_seed=0)(data=data, priors=orchestrator.priors) + + assert orchestrator_latent_dimension(orchestrator) == guide.latent_dim diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index cd0c3114..4737adaf 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -651,6 +651,77 @@ def test_setup_svi_invalid_guide_type(): with pytest.raises(ValueError, match="not recognized"): ri.setup_svi(guide_type="bad_guide") + +# ----------------------------------------------------------------------------- +# Autoguide batch-safety guard in run_optimization +# ----------------------------------------------------------------------------- + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "..", "smoke-tests", "test_data", +) + + +def _smoke_orchestrator(**kwargs): + from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + return ModelOrchestrator( + growth_df=os.path.join(_SMOKE_DATA, "growth-smoke.csv"), + binding_df=os.path.join(_SMOKE_DATA, "binding-smoke.csv"), + batch_size=6, + **kwargs, + ) + + +def _svi_with_guide(ri, guide): + from numpyro.infer import SVI, Trace_ELBO + from numpyro.optim import ClippedAdam + return SVI(ri.model.jax_model, guide, ClippedAdam(step_size=1e-3), + loss=Trace_ELBO()) + + +def test_run_optimization_refuses_delta_for_batch_dependent_latent(tmpdir): + """MAP (AutoDelta) is refused before the first step for beta noise.""" + ri = RunInference(_smoke_orchestrator(theta_growth_noise="beta"), seed=0) + svi = ri.setup_svi(guide_type="delta") + with pytest.raises(ValueError, match="theta_growth_noise_dist"): + ri.run_optimization(svi, max_num_epochs=1, + out_prefix=os.path.join(tmpdir, "refused")) + + +def test_run_optimization_refuses_any_autoguide(tmpdir): + """The guard keys off AutoGuide, not a particular guide class.""" + from numpyro.infer.autoguide import AutoNormal + ri = RunInference(_smoke_orchestrator(theta_growth_noise="beta"), seed=0) + svi = _svi_with_guide(ri, AutoNormal(ri.model.jax_model)) + with pytest.raises(ValueError, match="AutoNormal cannot fit"): + ri.run_optimization(svi, max_num_epochs=1, + out_prefix=os.path.join(tmpdir, "refused")) + + +def test_run_optimization_allows_component_guide_for_beta(tmpdir): + """The component guide slices library-sized params itself.""" + ri = RunInference(_smoke_orchestrator(theta_growth_noise="beta"), seed=0) + svi = ri.setup_svi(adam_step_size=1e-3, guide_type="component") + ri.run_optimization(svi, max_num_epochs=1, init_param_jitter=0.0, + out_prefix=os.path.join(tmpdir, "component"), + epoch_checkpoint_interval=None) + + +def test_check_autoguide_reports_dense_guide_size(capsys): + from numpyro.infer.autoguide import AutoMultivariateNormal + ri = RunInference(_smoke_orchestrator(), seed=0) + ri._check_autoguide(AutoMultivariateNormal(ri.model.jax_model)) + assert "latent dimensions" in capsys.readouterr().out + + +def test_check_autoguide_warns_on_large_dense_guide(monkeypatch): + from numpyro.infer.autoguide import AutoMultivariateNormal + from tfscreen.tfmodel.inference import run_inference + monkeypatch.setattr(run_inference, "_DENSE_GUIDE_WARN_GB", 0.0) + ri = RunInference(_smoke_orchestrator(), seed=0) + with pytest.warns(UserWarning, match="AutoLowRankMultivariateNormal"): + ri._check_autoguide(AutoMultivariateNormal(ri.model.jax_model)) + def test_restore_checkpoint_current_step(tmpdir): """_restore_checkpoint restores _current_step when present in checkpoint.""" model = MockModel() @@ -803,6 +874,30 @@ def test_map_params_to_constrained_values_finite(): # get_map_posteriors # ============================================================================= +def _batch_sized_map_params(model, batch_size): + """MAP params whose genotype latent is batch-sized (pre-fix checkpoint).""" + ri, map_params = _laplace_map_params(model) + aliased = dict(map_params) + aliased["geno_p_auto_loc"] = map_params["geno_p_auto_loc"][..., :batch_size] + return ri, aliased + + +def test_get_map_posteriors_rejects_batch_sized_latent(tmpdir): + """A genotype latent shorter than the library is refused, not clipped.""" + ri, aliased = _batch_sized_map_params(LaplaceModel(num_genotype=5), 3) + with pytest.raises(ValueError, match="mini-batch position"): + ri.get_map_posteriors(aliased, out_prefix=str(tmpdir.join("aliased"))) + + +def test_get_laplace_posteriors_rejects_batch_sized_latent(tmpdir): + """The Laplace path refuses it too, before computing the Hessian.""" + ri, aliased = _batch_sized_map_params(LaplaceModel(num_genotype=5), 3) + with pytest.raises(ValueError, match="mini-batch position"): + ri.get_laplace_posteriors(aliased, + out_prefix=str(tmpdir.join("aliased")), + num_posterior_samples=2) + + def test_get_map_posteriors_creates_h5(tmpdir): """get_map_posteriors writes an HDF5 posterior file.""" model = LaplaceModel(num_genotype=4) From 8db2c7698ab7817006b257fb1a2dd176b1e197bd Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 11:02:03 -0700 Subject: [PATCH 002/208] Add SVI guide selection (--guide_type) with numpyro autoguides Why: the component guide was the only variational family available to tfs-fit-model. Comparing it against numpyro's autoguides, and eventually trying a dense or low-rank MVN, needs a way to choose the guide end to end. The previous commit made per-genotype latents safe for autoguides under mini-batching, so they can now be exposed. What: - run_inference: AUTOGUIDES/GUIDE_TYPES registry (delta, auto_normal, auto_diagonal_normal, auto_multivariate_normal, auto_low_rank_multivariate_normal), resolve_guide_type (accepts numpyro class names), check_guide_kwargs. setup_svi takes guide_type, guide_kwargs and init_values (init_to_value). - Checkpoints record guide_type/guide_kwargs; restore_svi_from_checkpoint rebuilds that guide (legacy checkpoints -> component). get_posteriors drops autoguide auxiliary sites. - tfs-fit-model: --guide_type, --guide_rank, --guide_init_scale for analysis_method=svi; an autoguide starts at the pre-MAP point (or the guesses); options are validated before fitting; resuming with a different guide is refused. - tfs-sample-posterior routes by recorded guide_type (delta -> Laplace, others -> guide sampling), since AutoNormal parameters share AutoDelta's _auto_loc names. - The batch-safety guard's messages use guide_type names. - test_model_smoke: fit the beta-noise config with the component guide; the batch-safety guard (previous commit) refuses it under AutoDelta. - CLAUDE.md and CHANGELOG updated. Effects: default behavior is unchanged (component guide for SVI, AutoDelta for MAP/pre-MAP). Checkpoints gain two keys; old checkpoints still load. Verification: new unit tests for the registry, kwargs, checkpoint metadata, restore, fit-model and sample-posterior routing; autoguide round-trip tests and configure -> fit -> sample smoke tests. pytest tests/tfscreen: 4560 passed, 10 skipped; tfmodel/inference + generative + scripts + smoke-tests --runslow: 2432 passed. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 31 +++ CLAUDE.md | 4 +- .../tfmodel/inference/run_inference.py | 183 +++++++++++++++--- src/tfscreen/tfmodel/scripts/fit_model_cli.py | 107 +++++++++- .../tfmodel/scripts/sample_posterior_cli.py | 15 +- tests/smoke-tests/test_configure_run_smoke.py | 62 ++++++ tests/smoke-tests/test_model_smoke.py | 8 +- .../tfmodel/inference/test_guide_selection.py | 84 ++++++++ .../tfmodel/inference/test_run_inference.py | 98 ++++++++-- .../tfmodel/scripts/test_fit_model_cli.py | 89 +++++++++ .../scripts/test_sample_posterior_cli.py | 46 +++++ 11 files changed, 663 insertions(+), 64 deletions(-) create mode 100644 tests/tfscreen/tfmodel/inference/test_guide_selection.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 400674c6..4c7bd581 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,37 @@ fall into two kinds: ## [Unreleased] +### Added + +- **Guide selection for SVI (`tfs-fit-model --guide_type`).** With + `analysis_method=svi`, the variational family can now be any numpyro + autoguide as well as the component guide (still the default): + `delta`, `auto_normal`, `auto_diagonal_normal`, `auto_multivariate_normal` + or `auto_low_rank_multivariate_normal`. Numpyro class names such as + `AutoNormal` are accepted, case-insensitively. `--guide_rank` sets the rank + of `auto_low_rank_multivariate_normal`, and `--guide_init_scale` sets an + autoguide's initial scale. An option the chosen guide does not take is + refused before any fitting starts, as is any guide option with + `analysis_method` `map` or `nuts`. + - `RunInference.setup_svi` takes `guide_type`, `guide_kwargs` and + `init_values` (constrained site values an autoguide's location starts + from, via `init_to_value`). The registry is `AUTOGUIDES`/`GUIDE_TYPES` in + `inference/run_inference.py`, with `resolve_guide_type` and + `check_guide_kwargs`. + - An autoguide starts from the pre-MAP solution when `pre_map_num_epoch > 0`, + and from the configured guesses otherwise. + - Checkpoints record `guide_type` and `guide_kwargs`. + `restore_svi_from_checkpoint` rebuilds that guide; a checkpoint written + before this change is treated as a component-guide checkpoint. + `tfs-fit-model` refuses to resume a checkpoint with a different guide. + - `tfs-sample-posterior` sends `delta` checkpoints to the Laplace + approximation and every other guide to guide sampling. It routes by the + recorded `guide_type`, because `AutoNormal` parameters share AutoDelta's + `{site}_auto_loc` names. Older checkpoints still fall back to that name + check. + - `get_posteriors` drops autoguide auxiliary sites (names starting with + `_`, such as `AutoContinuous`'s `_auto_latent`) before the forward pass. + ### Fixed - **Per-genotype latents scrambled across genotypes under autoguides.** diff --git a/CLAUDE.md b/CLAUDE.md index 8031bd01..1a988cfa 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,7 +45,7 @@ tfs-process-counts # counts → ln_cfu DataFrames tfs-process-presplit # Process pre-split count files tfs-configure-model # Generate YAML config template (+ library composition snapshot) tfs-prefit-calibration # Pre-fit linking function via MAP -tfs-fit-model # Main hierarchical Bayesian inference +tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale) tfs-fit-genotypes # Per-genotype MLE fits of the growth model (+ optional congression de-attenuation; spiked genotypes come from --library_config) tfs-sample-posterior # Draw posterior samples from fitted model tfs-sample-prior # Draw prior predictive samples @@ -113,7 +113,7 @@ The hierarchical Bayesian inference engine. Key files: - **`model_orchestrator.py`** — `ModelOrchestrator`: top-level class orchestrating data loading, inference, and prediction. -- **`inference/run_inference.py`** — `RunInference`: coordinates JAX/Numpyro sampling (SVI or NUTS) and MAP estimation (optax). +- **`inference/run_inference.py`** — `RunInference`: coordinates JAX/Numpyro sampling (SVI or NUTS) and MAP estimation (optax). **Guide selection:** `setup_svi(guide_type=..., guide_kwargs=..., init_values=...)` takes any name in `GUIDE_TYPES` — `component` (the guide assembled from the model components) or a numpyro autoguide from the `AUTOGUIDES` registry (snake_case of the class name, `delta` = `AutoDelta`; CamelCase class names accepted via `resolve_guide_type`). `tfs-fit-model --guide_type` exposes it for `analysis_method=svi`; an autoguide's location starts at the pre-MAP point (`init_to_value`), and `init_params` (component-guide param names) is not passed to it. Checkpoints record `guide_type`/`guide_kwargs`; `restore_svi_from_checkpoint` rebuilds that guide (legacy checkpoints → `component`) and `tfs-sample-posterior` routes `delta` → Laplace, everything else → guide sampling. `run_optimization` refuses any autoguide (AutoDelta included) when `inference/batch_safety.py` finds batch-dependent latents. Because per-genotype latents are library-sized, the `AutoContinuous` guides (incl. `auto_multivariate_normal`) are valid under mini-batching; the dense MVN just costs O(D²) memory (reported, warned above `_DENSE_GUIDE_WARN_GB`). - **`tensors/tensor_manager.py`** — `TensorManager`: maps ragged per-genotype observations into JAX-compatible tensors. diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index a70cfe30..d99f4b65 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -12,6 +12,7 @@ Predictive, ) from numpyro.infer import autoguide +from numpyro.infer.initialization import init_to_value from numpyro.optim import ClippedAdam import numpy as np import dill @@ -22,11 +23,65 @@ orchestrator_latent_dimension, ) -_HDF5_MAX_CHUNK_BYTES = 1 << 30 # 1 GiB; HDF5 hard-limit is 4 GiB - -# Warn when a dense AutoMultivariateNormal covariance exceeds this (GB). +# Autoguides selectable through setup_svi(guide_type=...), keyed by the +# snake_case form of the numpyro class name ('delta' keeps its historical short +# name). 'component' -- the guide assembled from the model components -- is +# handled separately. +AUTOGUIDES = { + "delta": autoguide.AutoDelta, + "auto_normal": autoguide.AutoNormal, + "auto_diagonal_normal": autoguide.AutoDiagonalNormal, + "auto_multivariate_normal": autoguide.AutoMultivariateNormal, + "auto_low_rank_multivariate_normal": autoguide.AutoLowRankMultivariateNormal, +} +GUIDE_TYPES = ("component",) + tuple(AUTOGUIDES) + +# guide_kwargs each guide accepts (init_loc_fn is set through init_values). +_AUTOGUIDE_KWARGS = { + "component": set(), + "delta": set(), + "auto_normal": {"init_scale"}, + "auto_diagonal_normal": {"init_scale"}, + "auto_multivariate_normal": {"init_scale"}, + "auto_low_rank_multivariate_normal": {"init_scale", "rank"}, +} + +# Case-insensitive aliases: numpyro class names, plus 'auto_delta'. +_GUIDE_ALIASES = {cls.__name__.lower(): name for name, cls in AUTOGUIDES.items()} +_GUIDE_ALIASES["auto_delta"] = "delta" + +# Warn when the dense auto_multivariate_normal covariance exceeds this (GB). _DENSE_GUIDE_WARN_GB = 4.0 + +def resolve_guide_type(guide_type): + """Return the canonical ``GUIDE_TYPES`` name for ``guide_type``.""" + + key = str(guide_type).lower() + key = _GUIDE_ALIASES.get(key, key) + if key not in GUIDE_TYPES: + raise ValueError( + f"guide_type '{guide_type}' not recognized. It should be one of " + f"{list(GUIDE_TYPES)} (numpyro class names such as 'AutoNormal' " + f"are also accepted)." + ) + return key + + +def check_guide_kwargs(guide_type, guide_kwargs): + """Raise ValueError if ``guide_kwargs`` has keys ``guide_type`` rejects.""" + + guide_type = resolve_guide_type(guide_type) + accepted = _AUTOGUIDE_KWARGS[guide_type] + unknown = set(guide_kwargs or {}) - accepted + if unknown: + raise ValueError( + f"guide option(s) {sorted(unknown)} not accepted by guide_type " + f"'{guide_type}' (accepted: {sorted(accepted) or 'none'})." + ) + +_HDF5_MAX_CHUNK_BYTES = 1 << 30 # 1 GiB; HDF5 hard-limit is 4 GiB + def _safe_chunks(first_dim, trailing_shape, dtype): """Return a chunk tuple whose total byte size stays under _HDF5_MAX_CHUNK_BYTES.""" trailing = int(np.prod(trailing_shape)) if trailing_shape else 1 @@ -93,41 +148,84 @@ def __init__(self,model,seed): self._patience_counter = 0 + # Set by setup_svi and written into checkpoints. + self._guide_type = None + self._guide_kwargs = {} + def setup_svi(self, adam_step_size=1e-6, adam_clip_norm=1.0, elbo_num_particles=2, - guide_type="delta"): + guide_type="delta", + guide_kwargs=None, + init_values=None): """ - Set up SVI. + Set up SVI. Parameters ---------- adam_step_size : float or callable, optional - Step size for the ClippedAdam optimizer. Can be a fixed float or + Step size for the ClippedAdam optimizer. Can be a fixed float or a callable (e.g., an optax schedule). adam_clip_norm : float, optional Gradient clipping norm for the ClippedAdam optimizer. elbo_num_particles : int, optional Number of particles for ELBO estimation. guide_type : str, optional - Type of guide to use. - - 'component' (default): Use the guide defined in the model components. - - 'delta': Use numpyro.infer.autoguide.AutoDelta. Sets up a MAP estimator. + Variational family (default 'delta'); one of ``GUIDE_TYPES``. + + - 'component': the guide assembled from the model components. + - 'delta': numpyro ``AutoDelta`` (MAP estimation). + - 'auto_normal', 'auto_diagonal_normal', + 'auto_multivariate_normal', 'auto_low_rank_multivariate_normal': + the numpyro autoguide of the same name. + + numpyro class names (e.g. 'AutoNormal') are also accepted, + case-insensitively. + guide_kwargs : dict or None, optional + Extra keyword arguments for an autoguide: ``init_scale`` (every + autoguide except 'delta') and ``rank`` + ('auto_low_rank_multivariate_normal' only). + init_values : dict or None, optional + Constrained values keyed by model site name, used to initialize an + autoguide's location (``init_to_value``). Sites not present fall + back to numpyro's uniform initialization. Autoguides only. Returns ------- numpyro.infer.SVI An SVI object + + Raises + ------ + ValueError + If ``guide_type`` is unknown, or if ``guide_kwargs``/``init_values`` + are given for a guide that does not take them. Whether the model + can be fit with an autoguide at all is checked when fitting starts + (``run_optimization``). """ - if guide_type == "delta": - guide = numpyro.infer.autoguide.AutoDelta(self.model.jax_model) - elif guide_type == "component": + guide_type = resolve_guide_type(guide_type) + guide_kwargs = dict(guide_kwargs or {}) + check_guide_kwargs(guide_type, guide_kwargs) + + if guide_type == "component": + if init_values is not None: + raise ValueError( + "init_values applies only to autoguides, not " + "guide_type='component'." + ) guide = self.model.jax_model_guide else: - raise ValueError(f"guide_type '{guide_type}' not recognized.") + ctor_kwargs = dict(guide_kwargs) + if init_values is not None: + ctor_kwargs["init_loc_fn"] = init_to_value(values=init_values) + guide = AUTOGUIDES[guide_type](self.model.jax_model, **ctor_kwargs) + + # Recorded in checkpoints so the same guide can be rebuilt on restore. + self._guide_type = guide_type + self._guide_kwargs = guide_kwargs optimizer = ClippedAdam(step_size=adam_step_size, clip_norm=adam_clip_norm) @@ -136,7 +234,7 @@ def setup_svi(self, guide, optimizer, loss=Trace_ELBO(num_particles=elbo_num_particles)) - + return svi def _check_autoguide(self, guide): @@ -151,16 +249,16 @@ def _check_autoguide(self, guide): Called when fitting starts, since fitting is what creates the aliasing. """ - guide_name = type(guide).__name__ + guide_type = self._guide_type or type(guide).__name__ found = find_orchestrator_batch_dependent_latents(self.model) if found: raise ValueError( - f"{guide_name} cannot fit latent site(s) {sorted(found)}: " - f"their shape follows the genotype mini-batch rather than the " - f"library, so an autoguide would assign one genotype's value " - f"to another. Use guide_type='component', or a component " - f"whose latents are library-sized (e.g. " + f"guide_type '{guide_type}' cannot fit latent site(s) " + f"{sorted(found)}: their shape follows the genotype mini-batch " + f"rather than the library, so an autoguide would assign one " + f"genotype's value to another. Use guide_type='component', or " + f"a component whose latents are library-sized (e.g. " f"theta_growth_noise='logit_normal' instead of 'beta'). See " f"inference/batch_safety.py." ) @@ -169,12 +267,12 @@ def _check_autoguide(self, guide): dim = orchestrator_latent_dimension(self.model) # scale_tril plus Adam's two moment estimates, float32. gigabytes = 3 * dim * dim * 4 / 1e9 - msg = (f"{guide_name}: {dim} latent dimensions; the dense " - f"covariance needs ~{gigabytes:.3g} GB (parameters plus " - f"optimizer state).") + msg = (f"auto_multivariate_normal: {dim} latent dimensions; the " + f"dense covariance needs ~{gigabytes:.3g} GB (parameters " + f"plus optimizer state).") if gigabytes > _DENSE_GUIDE_WARN_GB: warnings.warn(msg + " Consider " - "AutoLowRankMultivariateNormal.") + "'auto_low_rank_multivariate_normal'.") else: print(msg, flush=True) @@ -689,6 +787,12 @@ def get_posteriors(self, priors=self.model.priors, data=full_data) + # Drop autoguide auxiliary sites (e.g. AutoContinuous's + # flattened "_auto_latent", shape (samples, D)); they are not + # model sites. + latent_samples = {k: v for k, v in latent_samples.items() + if not k.startswith("_")} + # Forward pass: iterate over genotype chunks with the JIT-compiled # chunk_fn. Each chunk is computed, transferred to CPU, and # discarded from GPU before the next chunk runs, keeping GPU @@ -830,7 +934,9 @@ def _write_checkpoint(self,svi_state,out_prefix): "svi_state":host_svi_state, "current_step":self._current_step, "loss_start":self._loss_start, - "loss_best":self._loss_best} + "loss_best":self._loss_best, + "guide_type":self._guide_type, + "guide_kwargs":self._guide_kwargs} tmp_checkpoint_file = f"{out_prefix}_checkpoint.tmp.pkl" @@ -873,7 +979,9 @@ def _write_epoch_checkpoint(self, svi_state, epoch): "svi_state": host_svi_state, "current_step": self._current_step, "loss_start": self._loss_start, - "loss_best": self._loss_best} + "loss_best": self._loss_best, + "guide_type": self._guide_type, + "guide_kwargs": self._guide_kwargs} tmp_file = f"{epoch_file}.tmp" with open(tmp_file, "wb") as f: @@ -882,9 +990,13 @@ def _write_epoch_checkpoint(self, svi_state, epoch): def restore_svi_from_checkpoint(self, checkpoint_file, init_params=None): """ - Rebuild a component SVI object and restore its state from a checkpoint, + Rebuild the SVI object recorded in a checkpoint and restore its state, without running any optimization steps or convergence checks. + The guide is rebuilt from the checkpoint's ``guide_type`` and + ``guide_kwargs``. Checkpoints written before those were recorded are + treated as component-guide checkpoints (the only SVI guide then). + ``svi.init()`` must be called at least once to wire up ``constrain_fn`` on the SVI object before ``svi.get_params()`` can be used. The state produced by ``init()`` is immediately discarded and replaced with the @@ -895,9 +1007,11 @@ def restore_svi_from_checkpoint(self, checkpoint_file, init_params=None): checkpoint_file : str Path to the checkpoint .pkl file produced by tfs-fit-model. init_params : dict or None, optional - Initial parameter values forwarded to ``svi.init()``. The values - are never used in inference (the checkpoint overwrites them), but - they must be structurally valid for the model. + Initial parameter values forwarded to ``svi.init()`` for a + component guide. The values are never used in inference (the + checkpoint overwrites them), but they must be structurally valid + for the model. Ignored for autoguides, whose parameter names + differ from the component guide's. Returns ------- @@ -906,7 +1020,14 @@ def restore_svi_from_checkpoint(self, checkpoint_file, init_params=None): svi_state : numpyro.infer.svi.SVIState Optimizer state restored from the checkpoint. """ - svi = self.setup_svi(guide_type="component") + with open(checkpoint_file, "rb") as f: + checkpoint_data = dill.load(f) + guide_type = checkpoint_data.get("guide_type") or "component" + guide_kwargs = checkpoint_data.get("guide_kwargs") or None + + svi = self.setup_svi(guide_type=guide_type, guide_kwargs=guide_kwargs) + if self._guide_type != "component": + init_params = None # init() is required to populate svi.constrain_fn; the resulting state # is thrown away — the checkpoint state is used instead. diff --git a/src/tfscreen/tfmodel/scripts/fit_model_cli.py b/src/tfscreen/tfmodel/scripts/fit_model_cli.py index 5440ed13..374ffa78 100644 --- a/src/tfscreen/tfmodel/scripts/fit_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/fit_model_cli.py @@ -3,7 +3,11 @@ import optax -from tfscreen.tfmodel.inference.run_inference import RunInference +from tfscreen.tfmodel.inference.run_inference import ( + RunInference, + check_guide_kwargs, + resolve_guide_type, +) from tfscreen.util.cli.generalized_main import generalized_main @@ -142,7 +146,10 @@ def _run_svi(ri, checkpoint_interval=10, max_num_epochs=100000, init_param_jitter=0.1, - epoch_checkpoint_interval=1000): + epoch_checkpoint_interval=1000, + guide_type="component", + guide_kwargs=None, + init_values=None): """ Run stochastic variational inference (SVI) for hierarchical model inference. @@ -188,6 +195,14 @@ def _run_svi(ri, Frequency (in epochs) to write numbered epoch checkpoints to a ``checkpoints/`` subdirectory (default 1000). Set to 0 or None to disable. + guide_type : str, optional + Variational family passed to ``ri.setup_svi`` (default 'component'). + guide_kwargs : dict or None, optional + Autoguide options (``rank``, ``init_scale``) passed to ``ri.setup_svi``. + init_values : dict or None, optional + Constrained site values an autoguide's location starts from. For an + autoguide ``init_params`` is not used: it is substituted by parameter + name, and only the component guide's names match it. Notes ----- @@ -219,10 +234,15 @@ def _run_svi(ri, svi_obj = ri.setup_svi(adam_step_size=schedule, adam_clip_norm=adam_clip_norm, elbo_num_particles=elbo_num_particles, - guide_type="component") + guide_type=guide_type, + guide_kwargs=guide_kwargs, + init_values=init_values) + + # init_params are substituted by parameter name, which only the component + # guide's names can match; an autoguide starts from init_values instead. + if resolve_guide_type(guide_type) != "component": + init_params = None - # Run svi. Note that `init_params` is not used here, but is required by the - # run_optimization method. svi_state, params, converged = ri.run_optimization( svi_obj, init_params=init_params, @@ -305,10 +325,46 @@ def _run_nuts(ri, return mcmc_samples +def _autoguide_init_values(init_params): + """ + Site values an autoguide's location starts from. + + After a pre-MAP run ``init_params`` holds the AutoDelta parameters -- the + MAP point, already in constrained space, keyed ``{site}_auto_loc``. + Otherwise it holds the configured guesses, already keyed by site. + """ + + suffix = "_auto_loc" + if any(k.endswith(suffix) for k in init_params): + return {k[:-len(suffix)]: v for k, v in init_params.items() + if k.endswith(suffix)} + return dict(init_params) + + +def _check_checkpoint_guide(checkpoint_file, guide_type): + """Refuse to resume an SVI checkpoint with a different guide.""" + + # A missing file is reported by run_optimization when it tries to restore. + if not os.path.isfile(checkpoint_file): + return + + with open(checkpoint_file, "rb") as f: + saved = dill.load(f).get("guide_type") or "component" + if saved != guide_type: + raise ValueError( + f"Checkpoint '{checkpoint_file}' was written with guide_type " + f"'{saved}', but guide_type '{guide_type}' was requested. Resume " + f"with guide_type='{saved}'." + ) + + def fit_model(config_file, seed=None, checkpoint_file=None, analysis_method="svi", + guide_type="component", + guide_rank=None, + guide_init_scale=None, out_prefix="tfs_fit_model", adam_step_size=1e-3, adam_final_step_size=1e-6, @@ -347,6 +403,21 @@ def fit_model(config_file, Method for inference. Allowed values are 'svi' (default), 'map', or 'nuts'. Case-insensitive. Posterior sampling is not performed; call ``tfs-sample-posterior`` after fitting. + guide_type : str, optional + Variational family for analysis_method 'svi' (default 'component', + the guide assembled from the model components). Also accepts the + numpyro autoguides 'auto_normal', 'auto_diagonal_normal', + 'auto_multivariate_normal', 'auto_low_rank_multivariate_normal' and + 'delta'; numpyro class names such as 'AutoNormal' work too. An + autoguide's location starts at the pre-MAP solution when + ``pre_map_num_epoch > 0``, otherwise at the configured guesses. + A resumed checkpoint must use the guide it was written with. + guide_rank : int, optional + Covariance rank for 'auto_low_rank_multivariate_normal' (numpyro's + default when omitted). + guide_init_scale : float, optional + Initial scale of an autoguide's variational distribution (numpyro's + default when omitted). Not accepted by 'component' or 'delta'. out_prefix : str, optional Prefix for all output files: checkpoints, parameter files, and the posterior HDF5 (default 'tfs_fit_model'). Files are named @@ -414,6 +485,23 @@ def fit_model(config_file, analysis_method = analysis_method.lower() + # Validate guide options before any (slow) fitting starts. + guide_type = resolve_guide_type(guide_type) + guide_kwargs = {} + if guide_rank is not None: + guide_kwargs["rank"] = guide_rank + if guide_init_scale is not None: + guide_kwargs["init_scale"] = guide_init_scale + if analysis_method != "svi" and (guide_type != "component" or guide_kwargs): + raise ValueError( + "guide_type, guide_rank and guide_init_scale apply only to " + "analysis_method='svi' ('map' always uses 'delta'; 'nuts' uses no " + "guide)." + ) + check_guide_kwargs(guide_type, guide_kwargs) + if analysis_method == "svi" and checkpoint_file is not None: + _check_checkpoint_guide(checkpoint_file, guide_type) + # Check for existing results to avoid overwriting unless resuming if checkpoint_file is None: checkpoint_path = f"{out_prefix}_checkpoint.pkl" @@ -459,9 +547,16 @@ def fit_model(config_file, init_param_jitter=0.0, epoch_checkpoint_interval=None) + init_values = None + if guide_type != "component": + init_values = _autoguide_init_values(init_params) + return _run_svi(ri, init_params=init_params, checkpoint_file=checkpoint_file, + guide_type=guide_type, + guide_kwargs=guide_kwargs, + init_values=init_values, out_prefix=out_prefix, adam_step_size=adam_step_size, adam_final_step_size=adam_final_step_size, @@ -516,6 +611,8 @@ def main(): manual_arg_types={"config_file":str, "seed":int, "checkpoint_file":str, + "guide_rank":int, + "guide_init_scale":float, "pre_map_num_epoch":int, "init_param_jitter":float, "nuts_num_warmup":int, diff --git a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py index 11ef71bf..13fe4eff 100644 --- a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py +++ b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py @@ -79,10 +79,19 @@ def sample_posterior(config_file, out_prefix=ri_prefix, forward_batch_size=forward_batch_size) else: - temp_svi = ri.setup_svi(guide_type="delta") - chk_params = temp_svi.optim.get_params(chk_data["svi_state"].optim_state) + # Checkpoints record the guide that wrote them. Older ones do not; + # there the only autoguide was AutoDelta (MAP), recognizable by its + # "{site}_auto_loc" parameter names. + guide_type = chk_data.get("guide_type") + if guide_type is None or guide_type == "delta": + temp_svi = ri.setup_svi(guide_type="delta") + chk_params = temp_svi.optim.get_params(chk_data["svi_state"].optim_state) + is_map = (guide_type == "delta" + or any("_auto_loc" in k for k in chk_params)) + else: + is_map = False - if any("_auto_loc" in k for k in chk_params): + if is_map: # MAP checkpoint: Hessian-based Laplace approximation. print("Detected MAP checkpoint. Drawing Laplace posterior samples...", flush=True) ri.get_laplace_posteriors( diff --git a/tests/smoke-tests/test_configure_run_smoke.py b/tests/smoke-tests/test_configure_run_smoke.py index 9cc2d76e..083e2597 100644 --- a/tests/smoke-tests/test_configure_run_smoke.py +++ b/tests/smoke-tests/test_configure_run_smoke.py @@ -143,6 +143,68 @@ def test_configure_run_pipeline_smoke(tmpdir, library_smoke_yaml): assert os.path.exists(os.path.join(tmpdir, "test_tfs_out_hill_n.csv")) +@pytest.mark.slow +@pytest.mark.parametrize("guide_type", ["auto_normal", + "auto_low_rank_multivariate_normal"]) +def test_configure_run_autoguide_smoke(tmpdir, guide_type, library_smoke_yaml): + """ + configure -> fit-model --guide_type (warm-started from the + pre-MAP point) -> sample-posterior, restoring the guide from the + checkpoint's recorded guide_type. + """ + import h5py + + growth_df = pd.DataFrame({ + "library": ["lib", "lib"], + "replicate": ["R1", "R1"], + "condition_pre": ["C1-", "C1-"], + "condition_sel": ["C2+", "C2+"], + "genotype": ["M42I", "L45P"], + "t": [0, 10], + "t_sel": [0, 10], + "t_pre": [12, 12], + "ln_cfu": [1.0, 2.0], + "ln_cfu_std": [0.1, 0.1], + "titrant_name": ["T1", "T1"], + "titrant_conc": [0.1, 0.1] + }) + growth_path = os.path.join(tmpdir, "test_growth.csv") + growth_df.to_csv(growth_path, index=False) + + binding_df = pd.DataFrame({ + "genotype": ["M42I", "L45P"], + "titrant_name": ["T1", "T1"], + "titrant_conc": [0.1, 0.1], + "theta_obs": [0.5, 0.6], + "theta_std": [0.05, 0.05] + }) + binding_path = os.path.join(tmpdir, "test_binding.csv") + binding_df.to_csv(binding_path, index=False) + + cfg_prefix = os.path.join(tmpdir, "test_tfs") + configure_model(binding_path, growth_df=growth_path, + library_config=library_smoke_yaml, out_prefix=cfg_prefix) + config_file = f"{cfg_prefix}_config.yaml" + + out_prefix = os.path.join(tmpdir, "test_tfs_auto") + fit_model(config_file=config_file, + seed=42, + max_num_epochs=1, + pre_map_num_epoch=2, + guide_type=guide_type, + out_prefix=out_prefix) + + sample_posterior(config_file=config_file, + checkpoint_file=f"{out_prefix}_checkpoint.pkl", + out_prefix=f"{out_prefix}_posterior", + num_posterior_samples=10, + sampling_batch_size=10) + + with h5py.File(f"{out_prefix}_posterior.h5", "r") as hf: + assert hf.attrs["num_samples"] == 10 + assert not any(k.startswith("_") for k in hf) + + @pytest.mark.slow def test_configure_run_binding_weight_smoke(tmpdir, library_smoke_yaml): """ diff --git a/tests/smoke-tests/test_model_smoke.py b/tests/smoke-tests/test_model_smoke.py index df387401..772324e5 100644 --- a/tests/smoke-tests/test_model_smoke.py +++ b/tests/smoke-tests/test_model_smoke.py @@ -132,8 +132,12 @@ def test_model_svi_smoke(growth_smoke_csv, # Initialize RunInference inference = RunInference(model=model, seed=42) - # Setup SVI - svi = inference.setup_svi(adam_step_size=1e-3) + # Setup SVI. beta theta_growth_noise's per-observation latent is + # batch-shaped, which no autoguide (AutoDelta included) can fit -- see + # inference/batch_safety.py -- so exercise it through the component guide. + guide_type = ("component" if config.get("theta_growth_noise") == "beta" + else "delta") + svi = inference.setup_svi(adam_step_size=1e-3, guide_type=guide_type) # Run a very short optimization # We only run for a few steps to verify it doesn't crash diff --git a/tests/tfscreen/tfmodel/inference/test_guide_selection.py b/tests/tfscreen/tfmodel/inference/test_guide_selection.py new file mode 100644 index 00000000..27c1aca1 --- /dev/null +++ b/tests/tfscreen/tfmodel/inference/test_guide_selection.py @@ -0,0 +1,84 @@ +""" +Guide selection against the real model (smoke data): autoguide refusal for +batch-dependent latents, and fit -> checkpoint -> restore -> posterior +round trips for each autoguide. +""" +import os + +import dill +import h5py +import pytest + +from tfscreen.tfmodel.inference.run_inference import RunInference +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") + + +def _orchestrator(**kwargs): + return ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV, + batch_size=6, **kwargs) + + +@pytest.mark.parametrize("guide_type", ["delta", "auto_normal", + "auto_multivariate_normal"]) +def test_autoguide_refused_for_batch_dependent_latent(tmpdir, guide_type): + """Fitting is refused before the first step; building the guide is not.""" + ri = RunInference(_orchestrator(theta_growth_noise="beta"), seed=0) + svi = ri.setup_svi(guide_type=guide_type) + with pytest.raises(ValueError, match="theta_growth_noise_dist"): + ri.run_optimization(svi, max_num_epochs=1, + out_prefix=os.path.join(tmpdir, "refused")) + + +def test_component_guide_allowed_for_batch_dependent_latent(tmpdir): + """The component guide slices library-sized params itself.""" + ri = RunInference(_orchestrator(theta_growth_noise="beta"), seed=0) + svi = ri.setup_svi(adam_step_size=1e-3, guide_type="component") + ri.run_optimization(svi, max_num_epochs=1, init_param_jitter=0.0, + out_prefix=os.path.join(tmpdir, "component"), + epoch_checkpoint_interval=None) + + +@pytest.mark.slow +@pytest.mark.parametrize("guide_type,guide_kwargs", [ + ("auto_normal", None), + ("auto_diagonal_normal", None), + ("auto_multivariate_normal", None), + ("auto_low_rank_multivariate_normal", {"rank": 2}), +]) +def test_autoguide_round_trip(tmpdir, guide_type, guide_kwargs): + """Fit a few minibatched epochs, restore from the checkpoint, sample.""" + orchestrator = _orchestrator() + num_genotype = orchestrator.data.num_genotype + out_prefix = os.path.join(tmpdir, guide_type) + + ri = RunInference(orchestrator, seed=0) + svi = ri.setup_svi(adam_step_size=1e-3, guide_type=guide_type, + guide_kwargs=guide_kwargs) + _, params, _ = ri.run_optimization(svi, max_num_epochs=2, + out_prefix=out_prefix, + init_param_jitter=0.0, + convergence_tolerance=None, + epoch_checkpoint_interval=None) + + with open(f"{out_prefix}_checkpoint.pkl", "rb") as f: + assert dill.load(f)["guide_type"] == guide_type + + ri2 = RunInference(_orchestrator(), seed=1) + svi2, state2 = ri2.restore_svi_from_checkpoint(f"{out_prefix}_checkpoint.pkl") + assert type(svi2.guide) is type(svi.guide) + restored = svi2.get_params(state2) + assert set(restored) == set(params) + + ri2.get_posteriors(svi2, state2, out_prefix, num_posterior_samples=4, + sampling_batch_size=4, forward_batch_size=4) + with h5py.File(f"{out_prefix}_posterior.h5", "r") as hf: + assert not any(k.startswith("_") for k in hf) + assert hf["dk_geno_offset"].shape == (4, num_genotype) diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index 4737adaf..de447c8d 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -6,7 +6,10 @@ import numpyro import numpyro.distributions as dist import h5py -from tfscreen.tfmodel.inference.run_inference import RunInference +from tfscreen.tfmodel.inference.run_inference import ( + RunInference, + resolve_guide_type, +) import os import dill import optax @@ -679,34 +682,16 @@ def _svi_with_guide(ri, guide): loss=Trace_ELBO()) -def test_run_optimization_refuses_delta_for_batch_dependent_latent(tmpdir): - """MAP (AutoDelta) is refused before the first step for beta noise.""" - ri = RunInference(_smoke_orchestrator(theta_growth_noise="beta"), seed=0) - svi = ri.setup_svi(guide_type="delta") - with pytest.raises(ValueError, match="theta_growth_noise_dist"): - ri.run_optimization(svi, max_num_epochs=1, - out_prefix=os.path.join(tmpdir, "refused")) - - def test_run_optimization_refuses_any_autoguide(tmpdir): """The guard keys off AutoGuide, not a particular guide class.""" from numpyro.infer.autoguide import AutoNormal ri = RunInference(_smoke_orchestrator(theta_growth_noise="beta"), seed=0) svi = _svi_with_guide(ri, AutoNormal(ri.model.jax_model)) - with pytest.raises(ValueError, match="AutoNormal cannot fit"): + with pytest.raises(ValueError, match="'AutoNormal' cannot fit"): ri.run_optimization(svi, max_num_epochs=1, out_prefix=os.path.join(tmpdir, "refused")) -def test_run_optimization_allows_component_guide_for_beta(tmpdir): - """The component guide slices library-sized params itself.""" - ri = RunInference(_smoke_orchestrator(theta_growth_noise="beta"), seed=0) - svi = ri.setup_svi(adam_step_size=1e-3, guide_type="component") - ri.run_optimization(svi, max_num_epochs=1, init_param_jitter=0.0, - out_prefix=os.path.join(tmpdir, "component"), - epoch_checkpoint_interval=None) - - def test_check_autoguide_reports_dense_guide_size(capsys): from numpyro.infer.autoguide import AutoMultivariateNormal ri = RunInference(_smoke_orchestrator(), seed=0) @@ -719,9 +704,80 @@ def test_check_autoguide_warns_on_large_dense_guide(monkeypatch): from tfscreen.tfmodel.inference import run_inference monkeypatch.setattr(run_inference, "_DENSE_GUIDE_WARN_GB", 0.0) ri = RunInference(_smoke_orchestrator(), seed=0) - with pytest.warns(UserWarning, match="AutoLowRankMultivariateNormal"): + with pytest.warns(UserWarning, match="auto_low_rank_multivariate_normal"): ri._check_autoguide(AutoMultivariateNormal(ri.model.jax_model)) + +@pytest.mark.parametrize("guide_type,cls_name", [ + ("delta", "AutoDelta"), + ("auto_normal", "AutoNormal"), + ("auto_diagonal_normal", "AutoDiagonalNormal"), + ("auto_multivariate_normal", "AutoMultivariateNormal"), + ("auto_low_rank_multivariate_normal", "AutoLowRankMultivariateNormal"), +]) +def test_setup_svi_builds_autoguide(guide_type, cls_name): + from numpyro.infer import autoguide + ri = RunInference(MockModel(), seed=42) + svi = ri.setup_svi(guide_type=guide_type) + assert isinstance(svi.guide, getattr(autoguide, cls_name)) + assert ri._guide_type == guide_type + + +@pytest.mark.parametrize("alias,canonical", [ + ("AutoNormal", "auto_normal"), + ("AUTO_NORMAL", "auto_normal"), + ("AutoDelta", "delta"), + ("auto_delta", "delta"), + ("autolowrankmultivariatenormal", "auto_low_rank_multivariate_normal"), + ("Component", "component"), +]) +def test_resolve_guide_type_aliases(alias, canonical): + assert resolve_guide_type(alias) == canonical + + +def test_setup_svi_forwards_guide_kwargs(): + ri = RunInference(MockModel(), seed=42) + svi = ri.setup_svi(guide_type="auto_low_rank_multivariate_normal", + guide_kwargs={"rank": 3, "init_scale": 0.05}) + assert svi.guide.rank == 3 + assert svi.guide._init_scale == 0.05 + assert ri._guide_kwargs == {"rank": 3, "init_scale": 0.05} + + +@pytest.mark.parametrize("guide_type,kwargs", [ + ("auto_normal", {"rank": 3}), + ("delta", {"init_scale": 0.1}), + ("component", {"init_scale": 0.1}), +]) +def test_setup_svi_rejects_unaccepted_kwargs(guide_type, kwargs): + ri = RunInference(MockModel(), seed=42) + with pytest.raises(ValueError, match="not accepted"): + ri.setup_svi(guide_type=guide_type, guide_kwargs=kwargs) + + +def test_setup_svi_component_rejects_init_values(): + ri = RunInference(MockModel(), seed=42) + with pytest.raises(ValueError, match="init_values"): + ri.setup_svi(guide_type="component", init_values={"a": 1.0}) + + +def test_setup_svi_init_values_become_init_loc_fn(): + ri = RunInference(MockModel(), seed=42) + values = {"global_p": 1.0} + svi = ri.setup_svi(guide_type="auto_normal", init_values=values) + assert svi.guide.init_loc_fn.keywords["values"] is values + + +def test_checkpoint_records_guide(tmpdir): + ri = RunInference(MockModel(), seed=42) + ri.setup_svi(guide_type="auto_normal", guide_kwargs={"init_scale": 0.2}) + out_prefix = os.path.join(tmpdir, "guide_meta") + ri._write_checkpoint({"dummy": np.zeros(2)}, out_prefix) + with open(f"{out_prefix}_checkpoint.pkl", "rb") as f: + saved = dill.load(f) + assert saved["guide_type"] == "auto_normal" + assert saved["guide_kwargs"] == {"init_scale": 0.2} + def test_restore_checkpoint_current_step(tmpdir): """_restore_checkpoint restores _current_step when present in checkpoint.""" model = MockModel() diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py index fcb70140..aaeba58b 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py @@ -238,6 +238,95 @@ def test_svi_epoch_checkpoint_interval_default_is_1000(self, tmp_path, mocker): assert kwargs["epoch_checkpoint_interval"] == 1000 +# --------------------------------------------------------------------------- +# guide selection +# --------------------------------------------------------------------------- + +_CLI = "tfscreen.tfmodel.scripts.fit_model_cli" + + +class TestGuideSelection: + + def _patch_run_svi(self, mocker): + return mocker.patch(f"{_CLI}._run_svi", + return_value=(MagicMock(), {}, True)) + + def test_default_is_component_without_init_values(self, mocker): + _patch_common(mocker) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=0) + kwargs = run_svi_mock.call_args.kwargs + assert kwargs["guide_type"] == "component" + assert kwargs["guide_kwargs"] == {} + assert kwargs["init_values"] is None + + def test_guide_options_resolved_and_forwarded(self, mocker): + _patch_common(mocker) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=0, + guide_type="AutoLowRankMultivariateNormal", + guide_rank=4, guide_init_scale=0.05) + kwargs = run_svi_mock.call_args.kwargs + assert kwargs["guide_type"] == "auto_low_rank_multivariate_normal" + assert kwargs["guide_kwargs"] == {"rank": 4, "init_scale": 0.05} + + def test_autoguide_starts_from_premap_solution(self, mocker): + _patch_common(mocker) + map_params = {"dk_geno_offset_auto_loc": jnp.ones(3), + "theta_hyper_auto_loc": jnp.array(2.0)} + mocker.patch(f"{_CLI}._run_map", + return_value=(MagicMock(), map_params, True)) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=5, + guide_type="auto_normal") + init_values = run_svi_mock.call_args.kwargs["init_values"] + assert set(init_values) == {"dk_geno_offset", "theta_hyper"} + assert float(init_values["theta_hyper"]) == 2.0 + + def test_autoguide_without_premap_starts_from_guesses(self, mocker): + _patch_common(mocker) + guesses = {"dk_geno_offset": jnp.zeros(3)} + mocker.patch(f"{_CLI}.read_configuration", + return_value=(MagicMock(), guesses)) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=0, + guide_type="auto_normal") + assert set(run_svi_mock.call_args.kwargs["init_values"]) == {"dk_geno_offset"} + + @pytest.mark.parametrize("method", ["map", "nuts"]) + def test_guide_options_rejected_outside_svi(self, method, mocker): + _patch_common(mocker) + with pytest.raises(ValueError, match="only to analysis_method='svi'"): + fit_model(config_file="dummy.yaml", seed=1, + analysis_method=method, guide_type="auto_normal") + + def test_unaccepted_option_rejected_before_fitting(self, mocker): + _patch_common(mocker) + run_map_mock = mocker.patch(f"{_CLI}._run_map") + with pytest.raises(ValueError, match="not accepted"): + fit_model(config_file="dummy.yaml", seed=1, + guide_type="auto_normal", guide_rank=3) + run_map_mock.assert_not_called() + + def test_resume_with_different_guide_rejected(self, tmp_path, mocker): + ckpt = tmp_path / "ckpt.pkl" + with open(ckpt, "wb") as f: + dill.dump({"guide_type": "component"}, f) + _patch_common(mocker) + with pytest.raises(ValueError, match="written with guide_type 'component'"): + fit_model(config_file="dummy.yaml", checkpoint_file=str(ckpt), + guide_type="auto_normal") + + def test_legacy_checkpoint_resumes_as_component(self, tmp_path, mocker): + ckpt = tmp_path / "ckpt.pkl" + with open(ckpt, "wb") as f: + dill.dump({"svi_state": None}, f) # no guide metadata + _patch_common(mocker) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", checkpoint_file=str(ckpt)) + assert run_svi_mock.call_args.kwargs["guide_type"] == "component" + + # --------------------------------------------------------------------------- # _run_svi — convergence message suppression when max_num_epochs=0 # --------------------------------------------------------------------------- diff --git a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py index fe653793..7d0b03cb 100644 --- a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py @@ -251,6 +251,52 @@ def test_svi_output_renamed(self, tmp_path): assert os.path.isfile(str(tmp_path / "out.h5")) +# --------------------------------------------------------------------------- +# Routing by recorded guide_type (checkpoints written after guide selection) +# --------------------------------------------------------------------------- + +class TestSamplePosteriorGuideMetadata: + + def _run(self, tmp_path, chk_data): + ri = MagicMock() + ri.restore_svi_from_checkpoint.return_value = (MagicMock(), MagicMock()) + # AutoNormal parameters are also named "{site}_auto_loc", so the + # legacy name heuristic alone would misroute them to Laplace. + ri.setup_svi.return_value.optim.get_params.return_value = { + "global_p_auto_loc": np.array(0.5) + } + h5_src = str(tmp_path / "out_tmp_posterior_posterior.h5") + ckpt_path = str(tmp_path / "ckpt.pkl") + open(ckpt_path, "w").close() + ri.get_posteriors.side_effect = lambda **kw: open(h5_src, "w").close() + ri.get_laplace_posteriors.side_effect = lambda **kw: open(h5_src, "w").close() + + with patch("tfscreen.tfmodel.scripts.sample_posterior_cli.read_configuration", + return_value=(MagicMock(), {})), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.RunInference", + return_value=ri), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.dill") as mock_dill: + mock_dill.load.return_value = chk_data + from tfscreen.tfmodel.scripts.sample_posterior_cli import sample_posterior + sample_posterior("cfg.yaml", ckpt_path, out_prefix=str(tmp_path / "out")) + return ri + + @pytest.mark.parametrize("guide_type", ["auto_normal", + "auto_multivariate_normal", + "component"]) + def test_svi_guides_draw_from_guide(self, tmp_path, guide_type): + ri = self._run(tmp_path, {"svi_state": MagicMock(), + "guide_type": guide_type}) + ri.get_posteriors.assert_called_once() + ri.get_laplace_posteriors.assert_not_called() + + def test_delta_checkpoint_goes_to_laplace(self, tmp_path): + ri = self._run(tmp_path, {"svi_state": MagicMock(), + "guide_type": "delta"}) + ri.get_laplace_posteriors.assert_called_once() + ri.get_posteriors.assert_not_called() + + # --------------------------------------------------------------------------- # main() routes to generalized_main # --------------------------------------------------------------------------- From d118c5c9b06ac5e6deb601a25b26ffc20d35e643 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 11:38:17 -0700 Subject: [PATCH 003/208] Keep test-suite output files out of the working directory Several tests called run_optimization, _run_nuts and run_prefit_calibration with their default out_prefix ("tfs", "tfs_prefit") or a bare "myroot", leaving checkpoint, loss and params files (plus a checkpoints/ dir) in whatever directory pytest was launched from. - test_run_inference.py: autouse fixture chdirs each test into tmp_path - test_fit_model_helpers.py: mock_ri_for_nuts chdirs into tmp_path; the explicit "myroot" prefix now lives under tmp_path - test_prefit_calibration_smoke.py: pass out_prefix under tmpdir to both run_prefit_calibration calls Library defaults are unchanged. Verified with a full tests/tfscreen + tests/smoke-tests --runslow run (4506 passed): a per-test cwd watcher saw no new files and git status stays clean. --- tests/smoke-tests/test_prefit_calibration_smoke.py | 2 ++ .../tfscreen/tfmodel/inference/test_run_inference.py | 7 +++++++ .../tfmodel/scripts/test_fit_model_helpers.py | 12 ++++++++---- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/tests/smoke-tests/test_prefit_calibration_smoke.py b/tests/smoke-tests/test_prefit_calibration_smoke.py index 67948529..3d1ed8e1 100644 --- a/tests/smoke-tests/test_prefit_calibration_smoke.py +++ b/tests/smoke-tests/test_prefit_calibration_smoke.py @@ -94,6 +94,7 @@ def test_prefit_writes_per_condition_baseline_prior(tmpdir, library_smoke_yaml, run_prefit_calibration(config_file=config_file, seed=1, + out_prefix=f"{out_prefix}_prefit", max_num_epochs=3, convergence_check_interval=1, patience=1, @@ -134,6 +135,7 @@ def test_configure_prefit_fit_full_loop_with_per_condition_priors(tmpdir, config_file = f"{out_prefix}_config.yaml" run_prefit_calibration(config_file=config_file, seed=1, + out_prefix=f"{out_prefix}_prefit", max_num_epochs=3, convergence_check_interval=1, patience=1, hessian_chunk_size=8) diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index cd0c3114..78c5cdbf 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -16,6 +16,13 @@ from numpyro.infer.svi import SVIState from flax import struct +@pytest.fixture(autouse=True) +def _run_in_tmp_path(tmp_path, monkeypatch): + # Many tests below call run_optimization / _write_checkpoint with the + # default out_prefix ("tfs"), which writes checkpoint/loss files into the + # cwd. Run every test from its own tmp dir so nothing leaks into the repo. + monkeypatch.chdir(tmp_path) + @struct.dataclass class MockData: num_genotype: int = 10 diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py index cb39838b..66740f07 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py @@ -147,8 +147,11 @@ def test_run_map_not_converged(mock_run_inference, capsys): # ============================================================================= @pytest.fixture -def mock_ri_for_nuts(mocker): +def mock_ri_for_nuts(mocker, tmp_path, monkeypatch): """Minimal ri mock for _run_nuts tests.""" + # _run_nuts writes a real {out_prefix}_checkpoint.pkl even with a mocked + # ri; tests using the default out_prefix would drop it in the cwd. + monkeypatch.chdir(tmp_path) ri = MagicMock() mock_mcmc = MagicMock() mock_mcmc.get_samples.return_value = {"param": [1.0, 2.0]} @@ -173,17 +176,18 @@ def test_run_nuts_calls_run_nuts(mock_ri_for_nuts): ) -def test_run_nuts_calls_get_nuts_posteriors(mock_ri_for_nuts): +def test_run_nuts_calls_get_nuts_posteriors(tmp_path, mock_ri_for_nuts): """_run_nuts calls ri.get_nuts_posteriors with the samples and forward_batch_size.""" ri = mock_ri_for_nuts expected_samples = {"param": [1.0, 2.0]} ri.run_nuts.return_value.get_samples.return_value = expected_samples + out_prefix = str(tmp_path / "myroot") - _run_nuts(ri, out_prefix="myroot", forward_batch_size=64) + _run_nuts(ri, out_prefix=out_prefix, forward_batch_size=64) ri.get_nuts_posteriors.assert_called_once_with( expected_samples, - out_prefix="myroot", + out_prefix=out_prefix, forward_batch_size=64, ) From 7893bdfe664642c2f725f46ef19601dc0638b031 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 11:50:19 -0700 Subject: [PATCH 004/208] updated docs and reports --- docs/badges/coverage-badge.svg | 2 +- docs/badges/tests-badge.svg | 2 +- reports/flake.txt | 46475 ++++++++++++++++++++++++++++++- reports/junit/junit.xml | 2 +- 4 files changed, 45540 insertions(+), 941 deletions(-) diff --git a/docs/badges/coverage-badge.svg b/docs/badges/coverage-badge.svg index 7d57d56b..52aedcd0 100644 --- a/docs/badges/coverage-badge.svg +++ b/docs/badges/coverage-badge.svg @@ -1 +1 @@ -coverage: 96.16%coverage96.16% \ No newline at end of file +coverage: 96.31%coverage96.31% \ No newline at end of file diff --git a/docs/badges/tests-badge.svg b/docs/badges/tests-badge.svg index 934192a8..11f5cc77 100644 --- a/docs/badges/tests-badge.svg +++ b/docs/badges/tests-badge.svg @@ -1 +1 @@ -tests: 4420tests4420 \ No newline at end of file +tests: 4570tests4570 \ No newline at end of file diff --git a/reports/flake.txt b/reports/flake.txt index 5d19625b..6c759b20 100644 --- a/reports/flake.txt +++ b/reports/flake.txt @@ -1,3 +1,44623 @@ +./.claude/worktrees/adoring-moore-a3dd7e/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/__init__.py:19:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/__version__.py:5:16: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:31:69: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:208:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:209:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:215:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:259:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:268:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:268:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:272:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:75:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:79:44: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:77:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:78:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:79:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:86:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:76:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:91:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:102:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:255:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:256:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:257:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:258:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:259:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:260:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:283:59: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:284:58: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:285:60: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:286:63: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:287:55: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:288:60: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:289:59: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:290:63: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:291:70: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:292:55: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:293:70: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:295:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (17) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:131:14: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:40:63: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:54:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:65:68: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:70:64: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:70:65: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:77:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:81:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:85:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:100:1: E266 too many leading '#' for block comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:101:53: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:47: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:213:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:221:73: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:30: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:239:53: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:240:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:247:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:249:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:256:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:45: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:48: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:44: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:96:41: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:195:71: E203 whitespace before ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:196:1: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:283:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:296:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:299:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:40: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:55: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:74: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:40: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:55: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:74: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:49: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:41: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:56: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:75: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:34: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:54: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:41: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:56: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:75: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:330:76: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E117 over-indented +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:31: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:41: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:56: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:75: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:30: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:40: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:55: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:74: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:403:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:405:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:408:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:124: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:562:9: F841 local variable 'mock_ri_class' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:44: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:581:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:146:49: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/__init__.py:19:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/__version__.py:5:16: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:31:69: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:208:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:209:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:215:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:259:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:268:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:268:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:272:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:26:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:69:44: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:104:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:113:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:136:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:137:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:138:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:139:70: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:194:15: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:204:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:207:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:216:70: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:219:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:220:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:223:54: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:226:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:233:66: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:247:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:249:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:262:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:263:45: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:267:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:290:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:296:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:297:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:297:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:302:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:303:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:304:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:305:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:306:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:318:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:319:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:324:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:326:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:328:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:328:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:335:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:335:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:336:57: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:338:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:342:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:347:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:348:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:349:9: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:349:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:357:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:357:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:357:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:361:15: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:364:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:365:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:367:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:368:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:371:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:377:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:380:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:381:20: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:403:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:405:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:406:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:410:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:411:43: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:435:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:440:65: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:451:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:458:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:459:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:460:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:464:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:467:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:467:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:471:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:476:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:481:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:482:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:487:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:492:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:492:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:496:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:497:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:506:68: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:512:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:512:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:516:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:67: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:546:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:553:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:554:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:554:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:565:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:567:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:568:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:568:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:571:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:574:22: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:576:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:579:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:580:67: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:581:26: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:584:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:586:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:594:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:595:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:596:26: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:600:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:602:67: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:603:70: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:604:26: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:610:27: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:612:70: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:613:26: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:614:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:618:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:621:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:621:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:623:62: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:624:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:625:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:652:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:653:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:664:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:75:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:79:44: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:26:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:27:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:47:87: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:48:87: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:57:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:67:71: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:83:70: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:70: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:86:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:106:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:174:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:183:43: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:238:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:258:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:259:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:260:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:261:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:10: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:302:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:303:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:308:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:309:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:310:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:311:54: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:325:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:330:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:330:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:67: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:359:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:365:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:368:80: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:372:70: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:405:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:412:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:413:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:414:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:415:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:416:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:417:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:419:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:422:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:426:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:427:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:429:37: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:433:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:434:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:436:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:437:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:77:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:78:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:79:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:86:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:76:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:91:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:102:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:232:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:233:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:234:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:235:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:236:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:237:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:238:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:268:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:270:59: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:271:58: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:272:60: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:273:63: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:274:55: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:275:60: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:276:59: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:277:63: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:278:70: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:279:55: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:280:70: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:282:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (17) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:131:14: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:40:63: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:54:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:65:68: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:70:64: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:70:65: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:77:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:81:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:85:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:100:1: E266 too many leading '#' for block comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:101:53: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:47: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:213:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:221:73: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:30: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:239:53: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:240:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:247:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:249:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:256:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:63:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:73:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:107:1: E265 block comment should start with '# ' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:109:1: E265 block comment should start with '# ' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:111:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:121:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:123:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:137:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:142:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:155:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:170:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:191:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:217:59: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:274:9: E116 unexpected indentation (comment) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:278:67: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:296:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:347:5: F841 local variable 'f3' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:361:5: F841 local variable 'f1_as_rev_read' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:374:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:392:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:396:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:429:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:466:48: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:515:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:583:37: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:584:37: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:621:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:707:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:718:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:728:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:737:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:751:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:754:44: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:755:44: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:771:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:785:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:789:71: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:795:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:805:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:809:69: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:819:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:874:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:878:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:883:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:884:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:908:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:909:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:920:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:930:27: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:940:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:953:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:956:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:975:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:986:52: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1001:29: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1004:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1005:27: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1019:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1040:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1044:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1058:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1061:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1071:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1082:27: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1091:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1099:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1104:45: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:26: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:33: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:40: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:47: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:54: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:61: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:68: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:75: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:82: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:89: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:135:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:151:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:153:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:154:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:177:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:193:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:209:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:215:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:233:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:253:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:257:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:267:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:273:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:284:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:288:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:298:38: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:313:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:349:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:376:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:378:26: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:388:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:78: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:45: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:48: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:44: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:41: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:202:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:214:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:216:71: E203 whitespace before ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:217:1: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:317:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:40: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:55: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:74: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:40: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:55: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:74: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:337:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:337:49: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:14: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:41: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:56: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:75: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:54: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:351:76: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:14: E117 over-indented +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:31: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:41: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:56: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:75: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:30: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:40: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:55: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:74: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:424:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:426:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:429:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:557:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:572:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:124: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:583:9: F841 local variable 'mock_ri_class' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:586:44: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:602:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:146:49: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/__init__.py:19:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/__version__.py:5:16: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_design.py:240:1: C901 'estimate_library_mixture' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:744:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:744:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:752:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:780:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:794:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:795:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:798:72: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:799:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:802:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:810:9: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:811:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:814:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:815:15: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:829:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:842:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:843:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:844:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:845:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:849:64: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:857:37: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:858:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:860:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:863:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:190:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:240:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:242:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:243:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:246:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:249:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:252:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:293:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:302:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:302:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:306:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:76:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:80:44: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:82:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:91:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:70:1: C901 '_update_dataclass' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:254:1: C901 'write_configuration' is too complex (40) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:359:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:362:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:364:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:365:40: E713 test for membership should be 'not in' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:372:31: E713 test for membership should be 'not in' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:378:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:394:33: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:406:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:442:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:442:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:444:1: C901 'read_configuration' is too complex (19) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:444:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:481:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:500:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:501:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:502:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:503:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:504:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:505:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:536:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:541:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:39:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:76:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:80:25: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:80:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:80:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:81:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:85:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:85:88: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:63: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:106:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:120:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:125:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:210:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:213:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:213:73: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:215:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:217:61: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:218:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:221:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:222:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:224:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:227:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:229:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:239:63: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:244:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:244:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:244:68: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:245:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:246:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:247:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:247:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:247:72: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:288:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:297:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:297:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:298:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:301:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:307:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:336:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:369:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:370:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:372:23: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:374:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:457:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:531:66: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:658:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:666:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:667:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:674:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:678:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:774:82: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:779:87: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:782:84: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:935:5: C901 'ModelOrchestrator._initialize_data' is too complex (21) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:935:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:960:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:961:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:964:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:964:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:964:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:965:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:965:66: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:966:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:970:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:971:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:976:67: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:983:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E116 unexpected indentation (comment) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:987:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:990:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1019:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1031:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1039:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1061:38: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1062:41: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1062:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1063:44: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1063:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1064:40: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1064:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1065:46: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1065:71: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1067:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1074:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1094:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1094:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1094:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1101:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1147:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1148:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1149:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1150:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1193:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1194:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1195:60: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1199:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1200:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1201:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1202:38: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1204:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1215:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1215:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1218:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1219:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1224:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1225:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1226:58: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1228:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1233:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1237:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1241:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1244:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1250:86: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1259:77: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1320:57: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1329:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1341:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1342:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1343:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1344:38: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1345:39: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1352:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1353:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1354:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1430:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1431:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1433:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1506:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1526:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1528:67: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1529:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1531:68: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1532:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1533:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1534:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1551:42: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1552:43: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:40: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:64: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1642:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1645:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1666:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1668:9: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1752:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1757:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1771:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1781:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1791:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1805:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1808:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1837:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1849:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1873:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1879:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1880:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1881:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1882:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1883:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1884:22: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1885:32: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1886:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1887:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1888:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1889:36: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1890:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1891:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1892:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1893:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1894:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1895:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1896:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:357:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:358:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:359:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:360:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:361:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:362:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:363:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:364:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:365:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:366:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:367:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:368:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:369:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:370:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:371:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:372:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:373:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:374:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:375:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:376:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:377:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:378:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:402:59: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:403:58: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:404:60: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:405:63: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:406:63: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:407:60: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:408:59: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:409:63: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:410:70: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:411:70: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:413:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:408:1: C901 '_inject_calibration_priors' is too complex (21) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:667:1: C901 '_build_csv_updates' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:736:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:737:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:738:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:914:1: C901 '_apply_priors_updates' is too complex (13) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1000:1: C901 '_apply_guesses_updates' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1152:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1156:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:164:1: C901 'setup_grid' is too complex (17) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:40:63: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:54:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:65:68: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:70:64: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:70:65: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:77:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:81:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:85:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:100:1: E266 too many leading '#' for block comment +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:104:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:178:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prefit_calibration_smoke.py:75:52: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_composition_table.py:9:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:96:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:183:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:89:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:27: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:119:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:122:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:138:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:153:18: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:28: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:165:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:171:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:433:5: E722 do not use bare 'except' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:435:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:438:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:446:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:448:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:450:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:458:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:499:32: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:601:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:604:5: F841 local variable 'mock_seed' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:613:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:618:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:626:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:634:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:637:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:645:1: E303 too many blank lines (3) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:661:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:734:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:1117:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:1117:26: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:1118:26: E201 whitespace after '[' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:107:39: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:108:40: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:109:42: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:122:48: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:123:44: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:124:41: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:222:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:224:71: E203 whitespace before ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:225:1: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:312:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:40: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:55: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:74: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:40: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:55: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:74: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:49: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:34: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:54: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:41: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:56: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:75: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:359:76: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E117 over-indented +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:31: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:41: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:56: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:75: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:30: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:40: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:55: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:74: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:432:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:434:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:437:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:124: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:591:9: F841 local variable 'mock_ri_class' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:594:44: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:100:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:128:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:138:26: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:146:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:147:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:160:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:171:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:172:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:185:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:186:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:187:60: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:215:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:216:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:217:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:218:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:957:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:961:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:969:51: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:77: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:98: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:125: E231 missing whitespace after ':' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:976:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:978:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:980:86: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:992:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:997:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1005:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1013:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1024:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1027:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1034:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1041:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1049:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1054:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1065:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1074:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1078:26: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:30: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1089:25: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:34: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1092:33: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1104:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:43: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:45: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:47: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:49: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:51: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:53: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:55: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:26: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1120:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1123:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1389:9: F401 'inspect' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1786:34: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:2030:18: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:2044:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/__init__.py:19:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/__version__.py:5:16: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:190:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:240:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:242:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:243:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:246:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:249:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:252:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:293:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:302:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:302:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:306:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:76:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:80:44: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:82:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:91:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:255:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:256:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:257:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:258:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:259:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:260:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:283:59: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:284:58: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:285:60: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:286:63: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:287:55: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:288:60: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:289:59: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:290:63: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:291:70: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:292:55: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:293:70: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:295:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:40:63: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:54:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:65:68: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:70:64: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:70:65: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:77:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:81:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:85:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:100:1: E266 too many leading '#' for block comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:45: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:48: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:44: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:96:41: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:195:71: E203 whitespace before ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:196:1: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:283:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:296:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:299:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:40: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:55: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:74: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:40: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:55: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:74: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:49: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:41: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:56: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:75: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:34: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:54: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:41: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:56: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:75: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:330:76: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E117 over-indented +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:31: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:41: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:56: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:75: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:30: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:40: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:55: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:74: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:403:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:405:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:408:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:124: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:562:9: F841 local variable 'mock_ri_class' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:44: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:581:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/__init__.py:19:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/__version__.py:5:16: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_design.py:240:1: C901 'estimate_library_mixture' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:744:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:744:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:752:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:780:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:794:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:795:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:798:72: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:799:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:802:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:810:9: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:811:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:814:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:815:15: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:829:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:842:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:843:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:844:34: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:845:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:849:64: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:857:37: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:858:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:860:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:863:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:190:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:240:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:242:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:243:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:246:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:249:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:252:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:293:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:302:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:302:66: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:306:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:76:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:80:44: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:82:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:91:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prior_predictive.py:109:33: E203 whitespace before ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:70:1: C901 '_update_dataclass' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:254:1: C901 'write_configuration' is too complex (40) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:359:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:362:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:364:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:365:40: E713 test for membership should be 'not in' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:372:31: E713 test for membership should be 'not in' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:378:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:394:33: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:406:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:442:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:442:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:444:1: C901 'read_configuration' is too complex (19) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:444:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:481:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:500:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:501:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:502:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:503:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:504:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:505:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:536:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:541:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:117:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:57: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:163:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:165:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:176:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:57: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:240:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:244:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:263:7: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:70:41: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:95:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:103:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:116:61: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:119:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:64: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:128:66: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:130:67: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:133:38: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:169:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:179:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:213:64: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:214:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:218:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:237:7: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:106: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:107:33: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:112:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:168:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:80: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:83: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:97: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:214:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:260:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:262:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:270:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:280:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:285:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:300:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:302:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:304:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:305:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:306:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:310:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:327:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:328:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:329:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:337:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:338:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:341:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:5: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:294:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:332:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:415:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:416:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:417:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:418:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:419:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:1: C901 '_empirical_group_estimates' is too complex (15) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:457:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:458:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:460:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:485:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:488:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:505:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:514:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:524:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:527:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:530:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:544:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:545:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:548:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:561:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:575:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:619:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:625:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:626:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:641:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:645:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:649:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:652:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:656:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:666:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:673:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:711:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:315:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:316:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:329:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:346:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:347:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:354:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:391:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:396:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:397:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:409:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:413:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:416:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:436:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:448:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:76:6: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:104:70: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:105:65: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:106:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:67: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:112:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:128:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:130:41: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:139:68: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:146:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:168:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:195:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:204:48: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:109:48: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:274:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:277:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:407:41: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:446:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:499:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:537:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:541:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:542:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:544:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:559:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:565:18: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:114:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:115:24: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:115:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:145:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:146:24: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:146:44: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:287:28: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:288:28: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:295:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:83:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:92:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:92:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:93:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:94:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:95:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:96:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:97:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:101:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:107:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:107:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:128:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:144:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:156:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:231:58: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:232:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:279:5: C901 'RunInference.run_optimization' is too complex (19) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:378:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:379:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:393:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:396:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:397:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:406:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:408:53: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:443:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:454:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:459:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:463:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:473:128: E501 line too long (177 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:479:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:480:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:485:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:487:60: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:501:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:502:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:503:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:525:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:551:26: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:864:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:866:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:866:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:866:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:899:31: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:911:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:912:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:919:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:919:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:919:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:933:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:934:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:935:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:936:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:937:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:938:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:939:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:946:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:947:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1044:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1058:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1061:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1062:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1071:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1078:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1078:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1080:61: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1129:5: E303 too many blank lines (4) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1170:26: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1170:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1173:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1185:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1187:32: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1187:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1260:5: C901 'RunInference.get_map_posteriors' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1492:50: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1533:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1536:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1541:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1549:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1553:30: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1556:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1560:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1566:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:39:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:76:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:80:25: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:80:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:80:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:81:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:85:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:85:88: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:63: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:106:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:120:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:125:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:210:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:213:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:213:73: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:215:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:217:61: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:218:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:221:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:222:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:224:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:227:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:229:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:239:63: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:244:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:244:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:244:68: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:245:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:246:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:247:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:247:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:247:72: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:288:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:297:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:297:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:298:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:301:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:307:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:336:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:369:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:370:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:372:23: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:374:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:457:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:531:66: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:658:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:666:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:667:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:674:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:678:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:774:82: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:779:87: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:782:84: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:935:5: C901 'ModelOrchestrator._initialize_data' is too complex (21) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:935:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:960:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:961:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:964:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:964:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:964:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:965:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:965:66: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:966:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:970:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:971:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:976:67: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:983:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E116 unexpected indentation (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:987:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:990:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1019:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1031:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1039:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1061:38: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1062:41: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1062:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1063:44: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1063:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1064:40: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1064:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1065:46: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1065:71: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1067:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1074:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1094:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1094:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1094:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1101:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1147:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1148:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1149:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1150:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1193:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1194:32: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1195:60: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1199:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1200:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1201:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1202:38: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1204:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1215:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1215:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1218:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1219:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1224:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1225:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1226:58: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1228:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1233:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1237:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1241:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1244:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1250:86: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1259:77: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1320:57: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1329:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1341:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1342:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1343:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1344:38: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1345:39: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1352:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1353:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1354:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1430:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1431:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1433:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1506:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1526:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1528:67: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1529:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1531:68: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1532:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1533:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1534:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1551:42: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1552:43: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:40: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:64: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1642:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1645:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1666:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1668:9: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1752:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1757:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1771:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1781:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1791:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1805:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1808:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1837:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1849:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1873:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1879:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1880:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1881:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1882:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1883:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1884:22: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1885:32: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1886:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1887:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1888:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1889:36: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1890:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1891:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1892:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1893:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1894:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1895:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1896:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:357:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:358:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:359:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:360:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:361:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:362:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:363:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:364:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:365:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:366:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:367:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:368:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:369:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:370:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:371:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:372:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:373:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:374:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:375:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:376:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:377:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:378:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:402:59: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:403:58: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:404:60: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:405:63: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:406:63: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:407:60: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:408:59: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:409:63: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:410:70: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:411:70: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:413:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E116 unexpected indentation (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:128:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:134:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:265:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:267:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:271:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:361:1: C901 'fit_model' is too complex (15) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:609:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:611:60: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:612:53: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:613:64: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:614:59: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:615:65: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:616:66: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:617:66: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:618:64: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:619:65: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:620:64: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:621:72: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:622:74: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:624:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:408:1: C901 '_inject_calibration_priors' is too complex (21) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:667:1: C901 '_build_csv_updates' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:736:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:737:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:738:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:914:1: C901 '_apply_priors_updates' is too complex (13) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1000:1: C901 '_apply_guesses_updates' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1152:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1156:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:164:1: C901 'setup_grid' is too complex (17) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:40:63: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:54:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:65:68: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:70:64: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:70:65: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:77:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:81:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:85:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:100:1: E266 too many leading '#' for block comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:104:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:240:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:148:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:150:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:154:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:156:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:157:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:158:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:189:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:190:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:191:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:192:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:221:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:222:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:223:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:224:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:253:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:254:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:255:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:256:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:285:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:286:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:287:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:288:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prefit_calibration_smoke.py:75:52: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_composition_table.py:9:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:96:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:183:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:6:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:15:1: F401 'optax' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: F811 redefinition of unused 'SVIState' from line 17 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:85:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:86:27: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:118:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:149:18: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:150:28: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:157:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:167:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:171:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:188:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:429:5: E722 do not use bare 'except' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:437:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:442:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:444:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:446:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:454:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:495:32: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:600:5: F841 local variable 'mock_seed' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:601:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:609:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:614:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:618:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:626:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:633:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:641:1: E303 too many blank lines (3) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:650:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:781:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:854:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:1261:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:1261:26: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:1262:26: E201 whitespace after '[' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:107:39: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:108:40: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:109:42: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:122:48: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:123:44: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:124:41: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:222:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:224:71: E203 whitespace before ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:225:1: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:312:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:40: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:55: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:74: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:40: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:55: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:74: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:49: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:34: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:54: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:41: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:56: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:75: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:359:76: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E117 over-indented +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:31: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:41: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:56: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:75: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:30: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:40: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:55: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:74: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:432:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:434:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:437:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:124: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:591:9: F841 local variable 'mock_ri_class' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:594:44: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:100:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:128:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:138:26: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:146:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:147:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:160:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:171:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:172:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:185:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:186:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:187:60: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:215:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:216:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:217:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:218:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:957:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:961:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:969:51: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:77: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:98: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:125: E231 missing whitespace after ':' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:976:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:978:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:980:86: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:992:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:997:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1005:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1013:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1024:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1027:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1034:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1041:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1049:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1054:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1065:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1074:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1078:26: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:30: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1089:25: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:34: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1092:33: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1104:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:43: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:45: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:47: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:49: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:51: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:53: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:55: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:26: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1120:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1123:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1389:9: F401 'inspect' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1786:34: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:2030:18: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:2044:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/__init__.py:19:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/__version__.py:5:16: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:194:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:253:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:254:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:257:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:260:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:263:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:304:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:313:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:313:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:317:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:77:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:81:44: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:85:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:92:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1051:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:43:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:44:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:97:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:103:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:215:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:232:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:297:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:335:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:372:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:429:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:430:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:435:1: C901 '_empirical_group_estimates' is too complex (15) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:464:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:467:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:492:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:495:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:512:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:521:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:531:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:534:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:537:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:551:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:552:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:555:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:556:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:568:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:582:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:626:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:632:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:633:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:648:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:652:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:656:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:659:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:663:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:673:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:680:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:718:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:76:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:91:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:102:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:255:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:256:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:257:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:258:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:259:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:260:22: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:281:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:283:59: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:284:58: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:285:60: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:286:63: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:287:55: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:288:60: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:289:59: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:290:63: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:291:70: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:292:55: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:293:70: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:295:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:40:63: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:54:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:65:68: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:70:64: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:70:65: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:77:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:81:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:85:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:100:1: E266 too many leading '#' for block comment +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:51:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:103:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:45: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:48: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:44: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:96:41: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:172:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:181:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:195:71: E203 whitespace before ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:196:1: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:197:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:283:17: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:296:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:299:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:40: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:55: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:74: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:307:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:40: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:55: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:74: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:49: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:41: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:56: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:75: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:34: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:54: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:41: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:56: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:75: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:128: E501 line too long (142 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:327:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:330:76: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E111 indentation is not a multiple of 4 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E117 over-indented +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:31: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:41: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:56: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:75: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:128: E501 line too long (150 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:30: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:40: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:55: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:74: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:403:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:405:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:408:5: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:536:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:551:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:124: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:128: E501 line too long (130 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:562:9: F841 local variable 'mock_ri_class' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:44: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:581:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 +./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file +./notebooks/thermo_corr/.ipynb_checkpoints/plots-checkpoint.py:12:1: F401 'pandas as pd' imported but unused +./notebooks/thermo_corr/.ipynb_checkpoints/plots-checkpoint.py:69:84: E261 at least two spaces before inline comment +./notebooks/thermo_corr/.ipynb_checkpoints/plots-checkpoint.py:69:85: E262 inline comment should start with '# ' +./notebooks/thermo_corr/assemble.py:26:1: F401 'glob' imported but unused +./notebooks/thermo_corr/plots.py:12:1: F401 'pandas as pd' imported but unused +./notebooks/thermo_corr/plots.py:69:84: E261 at least two spaces before inline comment +./notebooks/thermo_corr/plots.py:69:85: E262 inline comment should start with '# ' +./notebooks/thermo_corr/test_confound.py:14:1: F401 'thermo_corr as tc' imported but unused +./notebooks/thermo_corr/test_confound.py:41:22: E228 missing whitespace around modulo operator +./notebooks/thermo_corr/test_core.py:8:1: F401 'numpy as np' imported but unused +./notebooks/thermo_corr/tiers.py:25:1: F401 'dataclasses.field' imported but unused +./notebooks/thermo_corr/tiers.py:33:1: F401 '.confound.between_group_corr' imported but unused ./scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator ./scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator ./scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator @@ -139,6 +44759,7 @@ ./src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace ./src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace ./src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_design.py:240:1: C901 'estimate_library_mixture' is too complex (11) ./src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace ./src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace @@ -226,32 +44847,31 @@ ./src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace ./src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace ./src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) -./src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file +./src/tfscreen/genetics/library_manager.py:744:28: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_manager.py:744:41: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_manager.py:752:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:780:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:785:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:791:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:794:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:795:39: W291 trailing whitespace +./src/tfscreen/genetics/library_manager.py:798:72: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_manager.py:799:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:802:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:810:9: E303 too many blank lines (2) +./src/tfscreen/genetics/library_manager.py:811:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:814:76: W291 trailing whitespace +./src/tfscreen/genetics/library_manager.py:815:15: W291 trailing whitespace +./src/tfscreen/genetics/library_manager.py:829:1: W293 blank line contains whitespace +./src/tfscreen/genetics/library_manager.py:842:79: W291 trailing whitespace +./src/tfscreen/genetics/library_manager.py:843:75: W291 trailing whitespace +./src/tfscreen/genetics/library_manager.py:844:34: W291 trailing whitespace +./src/tfscreen/genetics/library_manager.py:845:58: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_manager.py:849:64: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_manager.py:857:37: W291 trailing whitespace +./src/tfscreen/genetics/library_manager.py:858:27: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_manager.py:860:40: E231 missing whitespace after ',' +./src/tfscreen/genetics/library_manager.py:863:1: W391 blank line at end of file ./src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file ./src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace ./src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace @@ -1399,34 +46019,35 @@ ./src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented ./src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented ./src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' -./src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) -./src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) -./src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' -./src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' -./src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace -./src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) -./src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) -./src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/analysis/prior_predictive.py:109:33: E203 whitespace before ':' +./src/tfscreen/tfmodel/configuration_io.py:21:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/configuration_io.py:39:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/configuration_io.py:70:1: C901 '_update_dataclass' is too complex (11) +./src/tfscreen/tfmodel/configuration_io.py:125:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/configuration_io.py:254:1: C901 'write_configuration' is too complex (40) +./src/tfscreen/tfmodel/configuration_io.py:359:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/configuration_io.py:362:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/configuration_io.py:364:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/configuration_io.py:365:40: E713 test for membership should be 'not in' +./src/tfscreen/tfmodel/configuration_io.py:371:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/configuration_io.py:372:31: E713 test for membership should be 'not in' +./src/tfscreen/tfmodel/configuration_io.py:378:18: W291 trailing whitespace +./src/tfscreen/tfmodel/configuration_io.py:394:33: E261 at least two spaces before inline comment +./src/tfscreen/tfmodel/configuration_io.py:406:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/configuration_io.py:442:1: E305 expected 2 blank lines after class or function definition, found 1 +./src/tfscreen/tfmodel/configuration_io.py:442:1: E402 module level import not at top of file +./src/tfscreen/tfmodel/configuration_io.py:444:1: C901 'read_configuration' is too complex (19) +./src/tfscreen/tfmodel/configuration_io.py:444:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/configuration_io.py:481:128: E501 line too long (139 > 127 characters) +./src/tfscreen/tfmodel/configuration_io.py:500:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/configuration_io.py:501:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/configuration_io.py:502:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/configuration_io.py:503:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/configuration_io.py:504:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/configuration_io.py:505:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/configuration_io.py:511:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/configuration_io.py:536:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/configuration_io.py:541:1: W293 blank line contains whitespace ./src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace ./src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace ./src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) @@ -1464,36 +46085,32 @@ ./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace ./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:107:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:117:39: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:29: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:34: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:44: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:49: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:54: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:57: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:21: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:28: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:163:57: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:165:58: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:176:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:29: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:34: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:44: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:49: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:54: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:57: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:204:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:240:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:244:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:263:7: W292 no newline at end of file ./src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 @@ -1503,49 +46120,42 @@ ./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace ./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace ./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:70:41: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:87:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:95:39: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:29: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:34: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:44: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:49: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:54: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:103:21: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:28: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:116:61: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:119:79: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:37: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:64: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:39: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:65: E231 missing whitespace after ',' ./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:128:66: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:130:67: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:133:38: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:157:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:29: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:34: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:44: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:49: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:54: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:169:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:179:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:213:64: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:214:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:218:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:237:7: W292 no newline at end of file ./src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 @@ -1584,74 +46194,67 @@ ./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace ./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace ./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:103:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:106: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:107:33: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:110:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:112:51: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:40: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:45: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:50: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:55: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:65: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:21: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:28: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:168:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:80: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:83: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:97: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:182:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:190:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:40: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:45: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:50: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:55: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:65: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:196:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:212:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:214:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:260:23: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:262:19: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:270:10: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:37: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:280:34: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:285:16: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:300:10: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:302:10: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:304:10: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:305:10: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:306:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:310:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:10: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:15: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:327:18: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:328:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:329:13: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:337:13: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:338:16: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:341:16: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:18: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:20: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:33: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:30: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:5: W292 no newline at end of file ./src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment @@ -1688,125 +46291,115 @@ ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:294:20: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:332:23: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:415:41: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:416:43: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:417:43: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:418:41: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:419:43: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:37: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:35: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:1: C901 '_empirical_group_estimates' is too complex (15) +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:457:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:458:14: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:460:12: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:485:16: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:488:20: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:505:13: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:514:13: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:524:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:527:13: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:530:14: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:544:15: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:545:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:548:12: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:14: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:561:46: E261 at least two spaces before inline comment +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:575:16: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:619:45: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:16: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:625:12: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:626:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:641:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:645:24: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:649:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:21: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:652:21: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:656:9: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:666:41: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:673:15: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:711:39: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:315:37: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:316:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:37: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:35: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:33: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:31: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:37: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:329:15: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:346:39: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:347:43: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:354:16: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:391:45: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:396:16: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:397:12: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:409:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:413:24: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:17: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:416:21: E128 continuation line under-indented for visual indent ./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:436:9: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:448:41: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file +./src/tfscreen/tfmodel/generative/components/noise/beta.py:76:6: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:77:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:91:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:94:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:97:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/noise/beta.py:103:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:104:70: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:105:65: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:106:71: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:107:67: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:112:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:117:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:128:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:130:41: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:139:68: W291 trailing whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:143:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:146:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/noise/beta.py:168:26: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/beta.py:195:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/noise/beta.py:204:48: W292 no newline at end of file ./src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file +./src/tfscreen/tfmodel/generative/components/noise/zero.py:50:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/noise/zero.py:100:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/generative/components/noise/zero.py:109:48: W292 no newline at end of file +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:125:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:217:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:274:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:277:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:407:41: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:446:27: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:499:14: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:537:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:541:21: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:542:20: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:544:21: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:20: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:559:15: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:565:18: W292 no newline at end of file ./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator @@ -3018,9 +47611,9 @@ ./src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:76:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:91:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:102:11: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator +./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator ./src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator @@ -3092,15 +47685,15 @@ ./src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file +./src/tfscreen/tfmodel/generative/model.py:114:37: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/model.py:115:24: F541 f-string is missing placeholders +./src/tfscreen/tfmodel/generative/model.py:115:45: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/model.py:145:36: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/model.py:146:24: F541 f-string is missing placeholders +./src/tfscreen/tfmodel/generative/model.py:146:44: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/generative/model.py:287:28: F541 f-string is missing placeholders +./src/tfscreen/tfmodel/generative/model.py:288:28: F541 f-string is missing placeholders +./src/tfscreen/tfmodel/generative/model.py:295:1: W391 blank line at end of file ./src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' ./src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' @@ -3179,343 +47772,344 @@ ./src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) ./src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 -./src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) -./src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) -./src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) -./src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) -./src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) -./src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator -./src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:83:1: E305 expected 2 blank lines after class or function definition, found 1 +./src/tfscreen/tfmodel/inference/run_inference.py:85:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/inference/run_inference.py:92:1: E305 expected 2 blank lines after class or function definition, found 1 +./src/tfscreen/tfmodel/inference/run_inference.py:92:1: E402 module level import not at top of file +./src/tfscreen/tfmodel/inference/run_inference.py:93:1: E402 module level import not at top of file +./src/tfscreen/tfmodel/inference/run_inference.py:94:1: E402 module level import not at top of file +./src/tfscreen/tfmodel/inference/run_inference.py:95:1: E402 module level import not at top of file +./src/tfscreen/tfmodel/inference/run_inference.py:96:1: E402 module level import not at top of file +./src/tfscreen/tfmodel/inference/run_inference.py:97:1: E302 expected 2 blank lines, found 0 +./src/tfscreen/tfmodel/inference/run_inference.py:100:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:101:69: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:107:22: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:107:28: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:122:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:128:33: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:130:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:144:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:156:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/inference/run_inference.py:231:58: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:232:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:279:5: C901 'RunInference.run_optimization' is too complex (19) +./src/tfscreen/tfmodel/inference/run_inference.py:378:77: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:379:73: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:393:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:396:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:397:34: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:406:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:408:53: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:416:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:443:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:454:48: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:459:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:463:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:473:128: E501 line too long (177 > 127 characters) +./src/tfscreen/tfmodel/inference/run_inference.py:479:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:480:37: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:485:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:487:60: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:501:36: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:502:50: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:503:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:525:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) +./src/tfscreen/tfmodel/inference/run_inference.py:551:26: E261 at least two spaces before inline comment +./src/tfscreen/tfmodel/inference/run_inference.py:864:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:866:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/inference/run_inference.py:866:37: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:866:49: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:899:31: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:911:49: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:912:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:919:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/inference/run_inference.py:919:31: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:919:41: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:933:31: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/inference/run_inference.py:934:32: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/inference/run_inference.py:935:35: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/inference/run_inference.py:936:33: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/inference/run_inference.py:937:32: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/inference/run_inference.py:938:33: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/inference/run_inference.py:939:35: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/inference/run_inference.py:946:38: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:947:31: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1044:33: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1058:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1061:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1062:49: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1071:36: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1078:27: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1078:34: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1080:61: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1129:5: E303 too many blank lines (4) +./src/tfscreen/tfmodel/inference/run_inference.py:1170:26: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1170:33: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1173:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1185:41: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1187:32: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1187:42: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1260:5: C901 'RunInference.get_map_posteriors' is too complex (12) +./src/tfscreen/tfmodel/inference/run_inference.py:1492:50: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/inference/run_inference.py:1533:29: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1536:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1541:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1549:35: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/inference/run_inference.py:1553:30: W291 trailing whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1556:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1560:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/inference/run_inference.py:1566:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:39:1: E303 too many blank lines (3) +./src/tfscreen/tfmodel/model_orchestrator.py:73:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:76:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:80:25: E222 multiple spaces after operator +./src/tfscreen/tfmodel/model_orchestrator.py:80:37: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:80:53: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:81:42: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:85:65: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:85:88: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:105:30: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:105:43: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:105:55: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:105:63: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:106:52: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:120:25: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:124:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:125:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/model_orchestrator.py:127:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/model_orchestrator.py:210:58: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:213:62: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:213:73: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:215:62: E231 missing whitespace after ',' ./src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:217:61: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:218:57: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:219:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:221:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:222:43: E231 missing whitespace after ',' ./src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:224:38: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:227:63: W291 trailing whitespace ./src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:229:73: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:239:63: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:244:42: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:244:52: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:244:68: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:245:29: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:246:40: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:247:45: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:247:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:247:72: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:288:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:297:33: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:297:45: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:298:53: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:301:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/model_orchestrator.py:307:27: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:336:1: E302 expected 2 blank lines, found 1 ./src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:369:62: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:370:58: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:372:23: W291 trailing whitespace ./src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) -./src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) -./src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) -./src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:374:43: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:378:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:457:12: E221 multiple spaces before operator +./src/tfscreen/tfmodel/model_orchestrator.py:531:66: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:658:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:661:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:666:52: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:667:57: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:674:30: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:678:38: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:774:82: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:779:87: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:782:84: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:935:5: C901 'ModelOrchestrator._initialize_data' is too complex (21) +./src/tfscreen/tfmodel/model_orchestrator.py:935:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/model_orchestrator.py:960:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:961:28: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:963:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:964:35: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:964:48: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:964:56: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:965:46: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:965:66: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:966:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:970:39: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:971:34: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:976:67: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:983:32: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:985:10: E114 indentation is not a multiple of 4 (comment) +./src/tfscreen/tfmodel/model_orchestrator.py:985:10: E116 unexpected indentation (comment) +./src/tfscreen/tfmodel/model_orchestrator.py:987:76: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:990:45: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1019:49: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1031:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1039:57: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1061:38: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1062:41: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1062:56: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1063:44: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1063:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1064:40: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1064:58: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1065:46: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1065:71: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1067:77: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1074:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1094:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1094:45: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1094:53: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1101:40: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:1147:25: E221 multiple spaces before operator +./src/tfscreen/tfmodel/model_orchestrator.py:1148:32: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:1149:26: E221 multiple spaces before operator +./src/tfscreen/tfmodel/model_orchestrator.py:1150:32: E127 continuation line over-indented for visual indent ./src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1193:78: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1194:32: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1195:60: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1199:36: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1200:36: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1201:32: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1202:38: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1204:77: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1215:56: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1215:62: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1218:74: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1219:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1224:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1225:77: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1226:58: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1228:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1233:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1237:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1241:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1244:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1250:86: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1252:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1259:77: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1320:57: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:1329:25: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:1341:33: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1342:34: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1343:35: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1344:38: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1345:39: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1352:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1353:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1354:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/model_orchestrator.py:1430:25: E221 multiple spaces before operator +./src/tfscreen/tfmodel/model_orchestrator.py:1431:31: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:1433:31: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/model_orchestrator.py:1506:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) +./src/tfscreen/tfmodel/model_orchestrator.py:1526:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1528:67: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1529:71: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1531:68: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1532:77: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1533:75: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1534:40: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1551:42: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1552:43: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1553:40: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1553:43: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1553:53: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1553:56: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/model_orchestrator.py:1553:64: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1642:75: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1645:69: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1666:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1668:9: E303 too many blank lines (2) +./src/tfscreen/tfmodel/model_orchestrator.py:1752:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1757:5: E303 too many blank lines (2) +./src/tfscreen/tfmodel/model_orchestrator.py:1771:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1781:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1791:75: W291 trailing whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1805:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1808:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1837:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1849:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1873:1: W293 blank line contains whitespace +./src/tfscreen/tfmodel/model_orchestrator.py:1879:25: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1880:27: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1881:31: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1882:32: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1883:22: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1884:22: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1885:32: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1886:23: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1887:20: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1888:29: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1889:36: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1890:28: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1891:33: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1892:34: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1893:27: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1894:28: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1895:31: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/model_orchestrator.py:1896:27: E231 missing whitespace after ':' ./src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:255:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:256:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:257:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:258:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:259:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:260:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:281:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:283:59: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:284:58: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:285:60: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:286:63: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:287:55: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:288:60: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:289:59: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:290:63: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:291:70: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:292:55: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:293:70: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:295:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:357:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:358:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:359:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:360:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:361:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:362:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:363:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:364:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:365:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:366:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:367:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:368:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:369:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:370:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:371:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:372:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:373:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:374:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:375:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:376:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:377:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:378:22: E128 continuation line under-indented for visual indent +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:400:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:402:59: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:403:58: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:404:60: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:405:63: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:406:63: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:407:60: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:408:59: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:409:63: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:410:70: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:411:70: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/configure_model_cli.py:413:1: E305 expected 2 blank lines after class or function definition, found 1 +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E114 indentation is not a multiple of 4 (comment) +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E116 unexpected indentation (comment) +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:27: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:128:35: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:47: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:134:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:265:39: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:267:51: E231 missing whitespace after ',' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:271:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:361:1: C901 'fit_model' is too complex (15) +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:609:1: E302 expected 2 blank lines, found 1 +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:611:60: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:612:53: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:613:64: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:614:59: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:615:65: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:616:66: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:617:66: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:618:64: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:619:65: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:620:64: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:621:72: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:622:74: E231 missing whitespace after ':' +./src/tfscreen/tfmodel/scripts/fit_model_cli.py:624:1: E305 expected 2 blank lines after class or function definition, found 1 ./src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) ./src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent ./src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) @@ -3524,16 +48118,16 @@ ./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator ./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator ./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 -./src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:408:1: C901 '_inject_calibration_priors' is too complex (21) +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:667:1: C901 '_build_csv_updates' is too complex (12) +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:736:35: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:737:35: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:738:35: E127 continuation line over-indented for visual indent +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:914:1: C901 '_apply_priors_updates' is too complex (13) +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1000:1: C901 '_apply_guesses_updates' is too complex (12) +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1152:1: E303 too many blank lines (3) +./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1156:1: E302 expected 2 blank lines, found 3 +./src/tfscreen/tfmodel/scripts/setup_grid_cli.py:164:1: C901 'setup_grid' is too complex (17) ./src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) ./src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used ./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) @@ -3813,7 +48407,8 @@ ./tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent ./tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent ./tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator +./tests/smoke-tests/test_configure_run_smoke.py:104:31: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_configure_run_smoke.py:240:16: E221 multiple spaces before operator ./tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused ./tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused ./tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace @@ -3877,29 +48472,29 @@ ./tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment ./tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace ./tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment -./tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:141:1: W293 blank line contains whitespace +./tests/smoke-tests/test_model_smoke.py:148:31: E261 at least two spaces before inline comment +./tests/smoke-tests/test_model_smoke.py:150:1: W293 blank line contains whitespace +./tests/smoke-tests/test_model_smoke.py:154:1: E302 expected 2 blank lines, found 1 +./tests/smoke-tests/test_model_smoke.py:156:40: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:157:40: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:158:40: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:189:43: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:190:43: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:191:43: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:192:43: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:221:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:222:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:223:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:224:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:253:40: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:254:40: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:255:40: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:256:40: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:285:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:286:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:287:41: E127 continuation line over-indented for visual indent +./tests/smoke-tests/test_model_smoke.py:288:41: E127 continuation line over-indented for visual indent ./tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused ./tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused ./tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 @@ -3954,6 +48549,7 @@ ./tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace ./tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace ./tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace +./tests/smoke-tests/test_prefit_calibration_smoke.py:75:52: E128 continuation line under-indented for visual indent ./tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 ./tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace ./tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace @@ -4152,6 +48748,7 @@ ./tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace ./tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace ./tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file +./tests/tfscreen/genetics/test_library_composition_table.py:9:1: F401 'numpy as np' imported but unused ./tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 @@ -4851,10 +49448,10 @@ ./tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent ./tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) ./tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent +./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 ./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent +./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:96:30: E127 continuation line over-indented for visual indent +./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:183:34: E127 continuation line over-indented for visual indent ./tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent ./tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused ./tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused @@ -5272,15 +49869,15 @@ ./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused ./tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./tests/tfscreen/tfmodel/analysis/test_prediction.py:18:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:51:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:60:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:72:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:82:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_prediction.py:89:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:103:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 @@ -5607,7 +50204,7 @@ ./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused +./tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:6:1: F401 'numpyro' imported but unused ./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused ./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused ./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 @@ -6698,72 +51295,73 @@ ./tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused ./tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused -./tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:15:1: F401 'optax' imported but unused +./tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused +./tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: F811 redefinition of unused 'SVIState' from line 17 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:22:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:29:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:40:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:43:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:49:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:64:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:68:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:71:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:75:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:82:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:87:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) -./tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:92:18: W291 trailing whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:93:27: W291 trailing whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:100:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:107:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:118:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:122:128: E501 line too long (139 > 127 characters) +./tests/tfscreen/tfmodel/inference/test_run_inference.py:125:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:133:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:136:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:141:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' -./tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:149:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:154:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:156:18: W291 trailing whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:157:28: W291 trailing whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:164:75: W291 trailing whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:171:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:174:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:178:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:195:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) -./tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' -./tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used -./tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) -./tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' -./tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' +./tests/tfscreen/tfmodel/inference/test_run_inference.py:436:5: E722 do not use bare 'except' +./tests/tfscreen/tfmodel/inference/test_run_inference.py:438:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:441:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:444:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:449:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:451:128: E501 line too long (131 > 127 characters) +./tests/tfscreen/tfmodel/inference/test_run_inference.py:453:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:461:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:502:32: E741 ambiguous variable name 'l' +./tests/tfscreen/tfmodel/inference/test_run_inference.py:604:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:607:5: F841 local variable 'mock_seed' is assigned to but never used +./tests/tfscreen/tfmodel/inference/test_run_inference.py:608:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:616:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:621:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:625:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:629:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:633:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:637:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:640:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/inference/test_run_inference.py:648:1: E303 too many blank lines (3) +./tests/tfscreen/tfmodel/inference/test_run_inference.py:657:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:788:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:861:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/inference/test_run_inference.py:1268:25: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/inference/test_run_inference.py:1268:26: E201 whitespace after '[' +./tests/tfscreen/tfmodel/inference/test_run_inference.py:1269:26: E201 whitespace after '[' ./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused ./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 @@ -6779,84 +51377,81 @@ ./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace ./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:45: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:48: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:44: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:96:41: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:172:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:181:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:189:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:195:71: E203 whitespace before ',' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:196:1: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:197:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:283:17: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:296:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:299:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:30: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:40: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:55: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:74: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:307:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:30: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:40: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:55: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:74: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:34: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:49: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E111 indentation is not a multiple of 4 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E117 over-indented -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:31: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:41: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:56: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:75: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:34: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:54: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E111 indentation is not a multiple of 4 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E117 over-indented -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:31: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:41: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:56: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:75: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:128: E501 line too long (142 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:327:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:330:76: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E111 indentation is not a multiple of 4 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E117 over-indented -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:31: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:41: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:56: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:75: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:128: E501 line too long (150 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:30: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:40: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:55: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:74: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:403:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:405:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:408:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:536:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:551:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:124: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:128: E501 line too long (130 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:562:9: F841 local variable 'mock_ri_class' is assigned to but never used -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:44: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:581:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:84:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:87:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:98:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:107:39: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:108:40: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:109:42: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:111:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:114:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:118:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:121:45: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:122:48: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:123:44: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:124:41: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:201:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:222:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:224:71: E203 whitespace before ',' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:225:1: E128 continuation line under-indented for visual indent +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:226:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:312:17: E128 continuation line under-indented for visual indent +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:30: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:40: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:55: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:74: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:30: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:40: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:55: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:74: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:49: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:34: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:54: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E111 indentation is not a multiple of 4 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E117 over-indented +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:31: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:41: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:56: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:75: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:128: E501 line too long (142 > 127 characters) +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:356:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:359:76: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E111 indentation is not a multiple of 4 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E117 over-indented +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:31: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:41: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:56: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:75: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:128: E501 line too long (150 > 127 characters) +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:30: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:40: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:55: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:74: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:432:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:434:5: E306 expected 1 blank line before a nested definition, found 0 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:437:5: E306 expected 1 blank line before a nested definition, found 0 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:124: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:128: E501 line too long (130 > 127 characters) +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:591:9: F841 local variable 'mock_ri_class' is assigned to but never used +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:594:44: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:610:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' ./tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused -./tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused ./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 @@ -7022,19 +51617,21 @@ ./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused ./tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:100:51: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:128:52: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:138:26: E128 continuation line under-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:146:47: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:147:47: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:160:56: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:171:59: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:172:59: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:185:64: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:186:64: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:187:60: E128 continuation line under-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:215:60: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:216:60: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:217:60: E127 continuation line over-indented for visual indent +./tests/tfscreen/tfmodel/test_base_growth.py:218:60: E127 continuation line over-indented for visual indent ./tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused ./tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused ./tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 @@ -7084,52 +51681,52 @@ ./tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent ./tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent ./tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:956:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:957:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:961:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:969:51: W291 trailing whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:77: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:98: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:125: E231 missing whitespace after ':' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (131 > 127 characters) +./tests/tfscreen/tfmodel/test_model_orchestrator.py:976:128: E501 line too long (138 > 127 characters) +./tests/tfscreen/tfmodel/test_model_orchestrator.py:978:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:980:86: W291 trailing whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:992:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:997:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1005:128: E501 line too long (129 > 127 characters) +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1013:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1024:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1027:128: E501 line too long (129 > 127 characters) +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1034:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1041:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1049:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1054:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1059:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1065:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1074:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1078:26: W291 trailing whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:30: W291 trailing whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1089:25: W291 trailing whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:34: W291 trailing whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1092:33: W291 trailing whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1104:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:43: E231 missing whitespace after ',' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:45: E231 missing whitespace after ',' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:47: E231 missing whitespace after ',' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:49: E231 missing whitespace after ',' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:51: E231 missing whitespace after ',' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:53: E231 missing whitespace after ',' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:55: E231 missing whitespace after ',' +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1110:1: E302 expected 2 blank lines, found 1 +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:26: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1120:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1123:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1126:1: W293 blank line contains whitespace +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1389:9: F401 'inspect' imported but unused +./tests/tfscreen/tfmodel/test_model_orchestrator.py:1786:34: E261 at least two spaces before inline comment +./tests/tfscreen/tfmodel/test_model_orchestrator.py:2030:18: E221 multiple spaces before operator +./tests/tfscreen/tfmodel/test_model_orchestrator.py:2044:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator ./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword ./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator @@ -7433,51 +52030,53 @@ ./tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -55 C901 'cat_fit' is too complex (28) -10 E111 indentation is not a multiple of 4 -6 E114 indentation is not a multiple of 4 (comment) -6 E116 unexpected indentation (comment) -10 E117 over-indented -1 E122 continuation line missing indentation or outdented -2 E124 closing bracket does not match visual indentation -6 E125 continuation line with same indent as next logical line -213 E127 continuation line over-indented for visual indent -92 E128 continuation line under-indented for visual indent -3 E131 continuation line unaligned for hanging indent -46 E201 whitespace after '[' -28 E202 whitespace before ']' -6 E203 whitespace before ',' -4 E211 whitespace before '(' -1839 E221 multiple spaces before operator -26 E222 multiple spaces after operator -7 E225 missing whitespace around operator -1093 E231 missing whitespace after ',' -103 E251 unexpected spaces around keyword / parameter equals -14 E252 missing whitespace around parameter equals -207 E261 at least two spaces before inline comment -2 E265 block comment should start with '# ' -2 E266 too many leading '#' for block comment -149 E272 multiple spaces before keyword -1 E301 expected 1 blank line, found 0 -771 E302 expected 2 blank lines, found 1 -47 E303 too many blank lines (2) -20 E305 expected 2 blank lines after class or function definition, found 1 -29 E306 expected 1 blank line before a nested definition, found 0 -1 E401 multiple imports on one line -38 E402 module level import not at top of file -87 E501 line too long (153 > 127 characters) -43 E701 multiple statements on one line (colon) -5 E712 comparison to True should be 'if cond is True:' or 'if cond:' -2 E713 test for membership should be 'not in' -1 E722 do not use bare 'except' -2 E731 do not assign a lambda expression, use a def -21 E741 ambiguous variable name 'l' -231 F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -11 F541 f-string is missing placeholders -4 F811 redefinition of unused 'np' from line 1 -40 F841 local variable 'e' is assigned to but never used -556 W291 trailing whitespace -80 W292 no newline at end of file -1487 W293 blank line contains whitespace -28 W391 blank line at end of file -7435 +389 C901 'cat_fit' is too complex (28) +70 E111 indentation is not a multiple of 4 +42 E114 indentation is not a multiple of 4 (comment) +42 E116 unexpected indentation (comment) +70 E117 over-indented +7 E122 continuation line missing indentation or outdented +14 E124 closing bracket does not match visual indentation +42 E125 continuation line with same indent as next logical line +1497 E127 continuation line over-indented for visual indent +652 E128 continuation line under-indented for visual indent +21 E131 continuation line unaligned for hanging indent +322 E201 whitespace after '[' +196 E202 whitespace before ']' +42 E203 whitespace before ',' +28 E211 whitespace before '(' +12869 E221 multiple spaces before operator +182 E222 multiple spaces after operator +49 E225 missing whitespace around operator +1 E228 missing whitespace around modulo operator +7644 E231 missing whitespace after ',' +721 E251 unexpected spaces around keyword / parameter equals +98 E252 missing whitespace around parameter equals +1451 E261 at least two spaces before inline comment +2 E262 inline comment should start with '# ' +14 E265 block comment should start with '# ' +14 E266 too many leading '#' for block comment +1043 E272 multiple spaces before keyword +7 E301 expected 1 blank line, found 0 +5396 E302 expected 2 blank lines, found 1 +330 E303 too many blank lines (2) +142 E305 expected 2 blank lines after class or function definition, found 1 +203 E306 expected 1 blank line before a nested definition, found 0 +7 E401 multiple imports on one line +268 E402 module level import not at top of file +609 E501 line too long (153 > 127 characters) +301 E701 multiple statements on one line (colon) +35 E712 comparison to True should be 'if cond is True:' or 'if cond:' +14 E713 test for membership should be 'not in' +7 E722 do not use bare 'except' +14 E731 do not assign a lambda expression, use a def +147 E741 ambiguous variable name 'l' +1622 F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused +77 F541 f-string is missing placeholders +28 F811 redefinition of unused 'np' from line 1 +280 F841 local variable 'e' is assigned to but never used +3868 W291 trailing whitespace +562 W292 no newline at end of file +10397 W293 blank line contains whitespace +196 W391 blank line at end of file +52032 diff --git a/reports/junit/junit.xml b/reports/junit/junit.xml index af0ebd3f..574d6945 100644 --- a/reports/junit/junit.xml +++ b/reports/junit/junit.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 15ddddb84611ef31fc072a8f873b0fdf265978d4 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 11:50:59 -0700 Subject: [PATCH 005/208] added "future" directory Directory keeps track of future work/scientific questions related to the analysis pipeline and its development. Currently populated with our project to rethink and re-implement how congressional transformation. --- future/README.md | 60 ++++ ...combination-specific-expression-effects.md | 29 ++ future/congression-physics-plan.md | 332 ++++++++++++++++++ future/estimate-dk-alpha-by-varying-lambda.md | 44 +++ ...te-spike-fraction-from-growth-curvature.md | 31 ++ future/plasmid-segregation-low-copy.md | 42 +++ 6 files changed, 538 insertions(+) create mode 100644 future/README.md create mode 100644 future/combination-specific-expression-effects.md create mode 100644 future/congression-physics-plan.md create mode 100644 future/estimate-dk-alpha-by-varying-lambda.md create mode 100644 future/estimate-spike-fraction-from-growth-curvature.md create mode 100644 future/plasmid-segregation-low-copy.md diff --git a/future/README.md b/future/README.md new file mode 100644 index 00000000..68e67bc0 --- /dev/null +++ b/future/README.md @@ -0,0 +1,60 @@ +# future/ + +Ideas and tasks that matter but are deliberately out of scope for current +work. Each file is one idea. Filing an idea here means "we decided not to do +this now," not "we will do this." + +The directory also holds the few agreed multi-step plans that are being +worked now (`status: active`). Keeping them next to the ideas they spin off +means an idea's `related` link and a plan's step list can point at each other. + +## Why a directory and not issues + +GitHub issues are the usual home for a backlog, but they live outside the +repository: they aren't versioned with the code they describe, can't be read +offline, and can't be read by tools working in a checkout. These files are +plain Markdown with a small YAML header, so both people and scripts can list +and filter them. + +## File format + +Name files with short kebab-case slugs (`estimate-dk-alpha-by-varying-lambda.md`). +Start each file with this header: + +```yaml +--- +title: One-line name of the idea +status: idea # idea | active | promoted | dropped | done +filed: 2026-09-13 # date filed (YYYY-MM-DD) +area: tfmodel # tfmodel | simulate | analysis | process_raw | experiment | docs +revisit_when: >- + The condition under which this becomes worth doing. +related: # repo paths or other future/ files; may be empty + - src/tfscreen/simulate/selection_experiment.py +--- +``` + +Then the body, with these sections (an `active` plan may use its own +structure, such as assumptions, decisions and ordered steps): + +- **Context:** what we were doing when the idea came up. +- **Idea:** what to do. +- **Why not now:** the reason it was deferred. +- **What it would take:** rough scope, dependencies, open questions. + +## Lifecycle + +- `idea`: filed and waiting. +- `active`: an agreed plan being worked now. Keep its step list current. +- `done`: an active plan that is finished. Add a line saying where the result + lives. +- `promoted`: work started. Add a line saying where it went (branch, changelog + entry, plan). Keep the file as a record. +- `dropped`: decided against. Add a line saying why. Keep the file so the idea + isn't re-proposed without that context. + +To list open ideas: + +```bash +grep -l "^status: idea" future/*.md +``` diff --git a/future/combination-specific-expression-effects.md b/future/combination-specific-expression-effects.md new file mode 100644 index 00000000..9bd8947e --- /dev/null +++ b/future/combination-specific-expression-effects.md @@ -0,0 +1,29 @@ +--- +title: Combination-specific effects of co-expressed variants on protein level +status: idea +filed: 2026-09-13 +area: tfmodel +revisit_when: >- + If double-transformation or native mass spec experiments show effects that + depend on the specific pair of variants rather than on each variant alone. +related: + - future/congression-physics-plan.md +--- + +**Context:** The congression plan assumes total repressor expression per cell +does not depend on how many plasmids a cell carries, and that each variant +contributes independently (a share-weighted theta and a soft-min dk). + +**Idea:** Specific combinations could break this. For example, a very +unstable heterodimer might trigger a strong unfolded-protein response that +lowers the functional protein concentration or adds a growth cost beyond +either variant alone. That is a genotype-by-genotype interaction that feeds +back onto protein concentration, and so onto both theta and dk. + +**Why not now:** Not resolvable with a single-lambda screen, where any given +pair of genotypes almost never shares a cell, and there is no evidence yet +that it matters. + +**What it would take:** Bench data first (pairs co-expressed, protein levels +and growth measured). A model would need pair-specific terms, which is only +plausible for a small, targeted set of pairs. diff --git a/future/congression-physics-plan.md b/future/congression-physics-plan.md new file mode 100644 index 00000000..c2acc1d2 --- /dev/null +++ b/future/congression-physics-plan.md @@ -0,0 +1,332 @@ +--- +title: Match simulator and fit on the physics of congression +status: active +filed: 2026-09-13 +area: tfmodel +revisit_when: >- + Active now. Update the step list as steps finish. +related: + - src/tfscreen/simulate/selection_experiment.py + - src/tfscreen/tfmodel/generative/components/transformation/_congression.py + - src/tfscreen/tfmodel/generative/model.py + - src/tfscreen/tfmodel/model_orchestrator.py + - src/tfscreen/tfmodel/analysis/prediction.py + - src/tfscreen/tfmodel/genotype_fit/congression.py + - src/tfscreen/simulate/transformation_lam_output.py + - src/tfscreen/genetics/library_design.py + - future/estimate-dk-alpha-by-varying-lambda.md + - future/plasmid-segregation-low-copy.md + - future/combination-specific-expression-effects.md + - future/estimate-spike-fraction-from-growth-curvature.md +--- + +## Why + +A code analysis revealed the simulator and the fit describe congression +(cells carrying more than one plasmid) differently: + +1. **The simulator combines whole growth rates.** `_sim_growth` in + `simulate/selection_experiment.py` takes the min (kanR) or max (pheS) of each + co-resident plasmid's full `k*t`, including its `dk_geno` and the condition + baseline. The min/max is meant to encode "the tightest binder sets theta," + but `dk_geno` varies more across genotypes (SD about 0.018 per minute in the + sim prior) than the whole theta signal (|m| = 0.0099 kanR, 0.0062 pheS). So + the selection is driven by `dk_geno`: in cells with a co-resident, the chosen + plasmid is the highest-theta one only about 52% of the time (chance level). + Monte Carlo over the sim prior (theta uniform as a stand-in) gives a growth + error with SD of about 0.01 per minute, 1 to 1.5 theta units. The fit + corrects theta only, so the error lands on lambda, `m`, the growth + baselines and theta. +2. **"Spiked" genotypes are not congression-free.** Their codons also occur in + the bulk sub-libraries. In the old sim config only 0.3% of wt cells and 14 to + 20% of M42I/H74A/K84L cells came from the monoclonal spike, yet + `--spiked` masks all of them as clean. This is also true of the real data, + because spiked and library copies can't be told apart by sequence. + +Checked and ruled out: the definition of lambda (sim cell sizes are +zero-truncated Poisson(lambda), so a focal plasmid's co-residents are exactly +Poisson(lambda), as the fit assumes), and the fit's unweighted background +distribution (the lambda that reproduces the sim's true theta inflation is 0.30 +to 0.35 against a true 0.357). + +## Where we start (code on `main`, 2026-09-23) + +**Fit.** Congression is a correction to theta alone, applied in +`generative/model.py` through the `transformation` component: + +- A congressed genotype's growth theta is replaced by the expected dominant + maximum `E[max(theta_g, theta_background)]` over Poisson(lambda) + co-residents (`_congression.update_thetas`). The background distribution is + logit-normal (`logit_norm`) or the empirical theta of the whole population + (`empirical`); `single` turns the correction off. +- Which genotypes are corrected is a yes/no `congression_mask`, built in + `model_orchestrator.py` from the spiked genotypes (from the library + composition table's `in_spiked_origin`, or the legacy `spiked_genotypes` + list). `ln_cfu0_spiked_mask` is exactly `~congression_mask`, so one flag sets + both purity and the `ln_cfu0` prior class. +- dk_geno is never touched by congression. +- The corrected theta then passes through `theta_growth_noise` and + `theta_rescale` before growth is assembled. +- Under mini-batching the empirical background is computed over the full + population (`population_theta`), and prediction code that subsets genotypes + must supply `external_theta_population` (`analysis/prediction.py`). +- The same `update_thetas` operator is reused by Stage 1.5 of + `tfs-fit-genotypes` / `tfs-build-empirical` + (`tfmodel/genotype_fit/congression.py`). + +**Library composition.** `tfs-configure-model --library_config` writes +`{out_prefix}_library.csv` (`genetics.library_composition_table`), with a +per-genotype `bulk_fraction` (the `f_g` below) and `pool_fraction`. The model +reads the table but does not yet use either fraction; it only derives the +spiked set from `in_spiked_origin`. + +**Simulator.** `_sim_growth` (`simulate/selection_experiment.py`) combines each +co-resident plasmid's whole `k*t` with a per-marker-library +`multi_plasmid_combine_fcn` (`gmean`/`mean`/`min`/`max`/`sum`; default `mean`; +the example configs use `min` for kanR and `max` for pheS). + +**Known simulator/design mismatch.** `_sim_sequencing` and +`_calc_genotype_cfu0` credit every plasmid in a cell with that cell's whole +abundance, so a co-transformed cell counts once per plasmid. +`expected_library_composition` assumes the opposite: a cell's plasmid copies +are shared among the variants it carries, so `bulk_fraction` does not depend +on lambda. Until the simulator shares copies (step 1), simulated composition +and the design `bulk_fraction` disagree. + +## Biology and assumptions + +Provenance: user, 2026-09-13, unless noted. + +- **The repressor is a dimeric lac repressor, not tetrameric.** +- **Protein is in large excess over DNA:** about 10 uM dimer against about + 10 nM operator. No depletion, so each variant's statistical weight on the + operator is linear in its share of the protein. +- **Heterodimers: unknown.** Working assumption is mostly homodimers, which is + intuition, not data. Native mass spectrometry (collaborator) should resolve + it. +- **Total repressor expression per cell does not depend on plasmid number.** + Each variant is diluted by its share. Combination-specific effects on + expression are out of scope (`future/combination-specific-expression-effects.md`). +- **Plasmids are high copy and assumed to persist without segregating** over + the experiment (roughly 3 to 7 doublings). The next design moves to a + low-copy plasmid, where segregation matters + (`future/plasmid-segregation-low-copy.md`). +- **The dataset has a single lambda** (0.3572) and is headed for publication. + Parameters that only a lambda series could identify are set from biology + and checked by sensitivity, not fit. +- **Spiked and library copies are indistinguishable** in this dataset. Future + runs will give spikes distinct codons. +- **Overnight outgrowth does not shift the clean/congressed class weights** + (user, 2026-09-23). The mixture weights `w_clean`/`w_congressed` are the + split at transformation (`f_g`, lambda), but the mixture needs the split at + `t = -t_pre`, after an overnight of non-selective growth. Congressed cells + of genotype g would be reweighted by roughly + `exp((dk_cell - dk_g) * t_overnight)`; theta plays little role without + selection. Presplit sees only the total, so it cannot correct this. We + assume the shift is negligible and leave it unmodeled. Revisit if step 3's + calibration shows bias concentrated in bulk genotypes with large |dk_geno|. + +## Decisions + +### Combine each physical quantity at its own level + +Build the cell's theta and dk from its plasmids, then assemble growth once: + +``` +k_cell = k_condition + dk_cell + m * A * theta_cell +``` + +Never combine whole growth rates across plasmids. + +### Theta: partition function over the protein mixture + +Write `z_g = theta_g / (1 - theta_g)` (odds at single-variant concentration) +and `x_g` for variant g's share of subunits in the cell. Two limits: + +| Assembly | Cell odds | Logit form | +|---|---|---| +| Homodimers only | `sum_g x_g * z_g` | `log sum_g x_g exp(l_g)` | +| Random heterodimers, additive half-site energies | `(sum_g x_g * sqrt(z_g))^2` | `2 log sum_g x_g exp(l_g / 2)` | + +Both are soft maxima between the share-weighted mean logit and the max; the +heterodimer form sits closer to the mean. A strong binder in a 1:1 cell loses +log 2 (homodimer) or log 4 (heterodimer) logit units compared with a max rule. +The heterodimer rule is exact per titrant concentration only if subunits bind +ligand independently; allosteric coupling between subunits makes it +approximate. Default: homodimers, until native mass spec says otherwise. +The choice is made in step 4 from the bench experiments below. + +### dk_geno: soft-min family + +``` +dk_cell = -(1/alpha) * log sum_g x_g exp(-alpha * dk_g) +``` + +`alpha -> 0` is dilution (share-weighted mean burden); `alpha -> inf` is +dominance (the worst variant sets the cost). Alpha is set from biology with a +sensitivity check, not fit (`future/estimate-dk-alpha-by-varying-lambda.md`). +Under dilution the average effect is a uniform shrinkage of each genotype's +dk toward the population mean, by `E[1/(1+N)] = (1 - exp(-lambda))/lambda` = +0.841 at lambda = 0.357, which the hierarchical dk_geno prior mostly absorbs. + +The fit's current behavior (each plasmid keeps its own dk) has no cell-level +counterpart: a cell carrying two plasmids has one growth rate. It is wrong, +not just approximate, so we accept a breaking change here (user, 2026-09-23). +Both simulator and fit start from **dilution** (alpha -> 0); step 5 adds the +rest of the family and the sensitivity check. + +Like theta's background, dk's co-resident background must come from the full +genotype population, not the current mini-batch, and prediction paths that +subset genotypes need an external dk population reference. + +### Mix at the observable level + +A genotype's cells are a mixture of classes growing at different rates, so +mix `exp(ln_cfu)`, not rates or theta. With `f_g` the fraction of genotype g's +cells from the bulk library (computed from the library design), a focal plasmid +has no co-residents with probability `exp(-lambda)`: + +``` +w_congressed = f_g * (1 - exp(-lambda)) +w_clean = 1 - w_congressed +ln_cfu_g(t) = ln_cfu0_g + log[ w_clean * exp(k_clean t) + + w_congressed * E_S exp(k_{g,S} t) ] +``` + +`S` is the random set of co-resident genotypes. This form covers every +genotype: a pure spike has `f = 0`, a pure bulk genotype has `f = 1` (and is +still 70% clean cells). Whether `E_S exp(k t)` can be approximated by +`exp(E_S[k] t)` must be checked numerically on the real design and timepoints. + +`k t` above is shorthand. The model's growth is pre-growth plus selection, +routed through the `growth_transition` component, and both `t_pre` and `t_sel` +growth can carry congression artifacts (user, 2026-09-23). So the mixture is +over each class's whole `ln_cfu` trajectory: each class gets its own `k_pre` +and `k_sel`, the `growth_transition` model is applied per class, and the +classes are mixed last. + +Other observations: + +- **base_growth** measures a constant rate (`k_ref + dk_geno`) and is not + mixed (user, 2026-09-23). +- **presplit** observes `ln_cfu0` directly at `t = -t_pre`. The pool there is + a mixture of clean and congressed cells, but no growth has accrued yet in + the model's time frame, so the mixture term is `log(w_clean + w_cong) = 0` + and the presplit likelihood stays `ln_cfu0_g ~ presplit`. Presplit is a + direct estimate of `ln_cfu0_g` for every genotype. Congression still enters + it in two ways: + - *Counting.* For presplit and growth to estimate the same `ln_cfu0_g`, + both must count a co-transformed cell with its abundance split among its + variants (simulator: step 1; fit: same definition of `ln_cfu0`). + - *Overnight growth.* Differential growth of clean and congressed cells + during the overnight outgrowth before `t = -t_pre` is absorbed into the + free per-genotype `ln_cfu0_g`. It also shifts the class weights away from + the design values; that shift is not modeled (see assumptions). +- **binding** stays clean (below). + +Open: `theta_growth_noise` and `theta_rescale` currently act on the corrected +theta. In the mixture they must act on each class's theta before growth is +assembled. Decide in step 3 whether the noise term is drawn once per genotype +and shared across classes (the natural reading) or per class. + +### Split `--spiked` into two concepts + +`--spiked` currently sets both congression purity and the high `ln_cfu0` prior +class. Keep one `ln_cfu0` latent per genotype for total abundance, with the +existing spiked/bulk prior on it; carry purity in `f_g`. Genotypes can't simply +be removed from `--spiked`, because their abundance really is far higher than +the bulk's. + +### Binding data stays uncongressed + +`congression_mask` already acts only on the growth theta path +(`generative/model.py`), so binding measurements on monoclonal stocks stay +clean even when a genotype's growth data is mixed. Keep it that way. + +## Real library design + +Tune simulations to the design used for the dataset: + +```yaml +transform_sizes: + single-1: 100_000 + single-2: 100_000 + double-1-2: 300_000 + spiked: 1_000 + +library_mixture: + single-1: 100 + single-2: 100 + double-1-2: 1_000 + spiked: 1 +``` + +## Experiments (bench) + +Underway (user, 2026-09-23); results expected 2026-09-24. They decide the +theta rule in step 4. + +- **Double transformation, tight + dead binder:** relative to the tight binder + alone, a max rule predicts no shift, homodimer mixing about 2x weaker + apparent K, heterodimer mixing about 4x, dominant negative more. The sign + (shift or not) is expected to be easy to resolve; magnitude is hard. Control: + the same variant on two distinguishable plasmids should reproduce the single + transformant under every rule. +- **Native mass spectrometry** of co-expressed variants (collaborator) to + measure heterodimer formation. + +Record results here when they arrive. + +## Steps + +Keep this list current. Work the steps in order and keep this conversation's +scope to them; anything else goes into its own `future/` file or task. +Each step from 1 on ends with a simulation and a fit that use the same rules, +checked with `tfs-summarize-calibration`. + +-2. **Bring in the mini-batch scrambling fix.** + - [ ] Port the MAP/autoguide genotype-aliasing fix and its tests + (`inference/batch_safety.py`, `test_batch_safety.py`) from + `guide-selection` as a separate commit, code only. Every fit used to + check the steps below depends on it. +-1. **Update this plan** with the review of 2026-09-23. + - [x] Starting-point description, simulator/design mismatch, dk and + mixture decisions, bench pointer, step list. 2026-09-23. +0. **Groundwork.** + - [x] Per-genotype `f_g` from the library definition: + `genetics.library_composition_table` → `bulk_fraction` in + `{out_prefix}_library.csv`, via `tfs-configure-model --library_config` + (commit 77befcb). + - [ ] Bring in `tfs-summarize-calibration` + (`analysis/calibration_grid.py`, `analysis/scripts/summarize_calibration_cli.py`) + from `guide-selection`, code only, no grids or results. +1. **Simulator: share a cell's plasmid copies.** + - [ ] `_sim_sequencing` and `_calc_genotype_cfu0` split a cell's abundance + among the variants it carries, so simulated composition matches + `bulk_fraction` and no longer depends on lambda. +2. **Simulator restructure.** + - [ ] Build each cell's theta and dk from its plasmids with pluggable rules, + then assemble growth once + (`k_cell = k_condition + dk_cell + m * A * theta_cell`). Replaces + `multi_plasmid_combine_fcn` on whole `k*t`. + - [ ] First rules: max theta (the fit's current theta rule) and dilution dk. +3. **Fit: observable-level mixture.** Breaking change. + - [ ] Clean/congressed log-sum-exp mixture in the growth observation, over + each class's whole pre + selection trajectory through + `growth_transition`. + - [ ] Consume `bulk_fraction` as `f_g`; retire `congression_mask`. Keep the + spiked/bulk `ln_cfu0` prior class as its own concept. + - [ ] Dilution dk with a full-population dk background (mini-batch safe; + external reference for prediction). + - [ ] Place `theta_growth_noise` / `theta_rescale` per class. + - [ ] Check whether `exp(E[k] t)` is an adequate approximation. + - [ ] Update the other users of the congression operator: + `analysis/prediction.py`, `genotype_fit/congression.py` (Stage 1.5 of + `tfs-fit-genotypes` / `tfs-build-empirical`), + `simulate/transformation_lam_output.py`. + - [ ] Calibrate against step 2's simulations (current max theta as a + placeholder). +4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench + results, in both simulator and fit. +5. **dk rule.** Soft-min family with an alpha sensitivity check, in both + simulator and fit. diff --git a/future/estimate-dk-alpha-by-varying-lambda.md b/future/estimate-dk-alpha-by-varying-lambda.md new file mode 100644 index 00000000..e4951821 --- /dev/null +++ b/future/estimate-dk-alpha-by-varying-lambda.md @@ -0,0 +1,44 @@ +--- +title: Estimate the dk_geno combining exponent (alpha) by varying congression +status: idea +filed: 2026-09-13 +area: experiment +revisit_when: >- + After the congression physics work settles on the soft-min dk_geno rule and + the current single-lambda dataset is published. +related: + - future/congression-physics-plan.md + - src/tfscreen/simulate/selection_experiment.py + - src/tfscreen/tfmodel/generative/components/transformation/_congression.py +--- + +**Context:** While fixing the simulator/fit mismatch in how co-resident +plasmids combine growth effects, we chose to combine each physical quantity at +its own level. For the pleiotropic growth cost, a cell carrying variants with +dimer shares `x_g` gets + +``` +dk_cell = -(1/alpha) * log( sum_g x_g * exp(-alpha * dk_g) ) +``` + +`alpha -> 0` is dilution (share-weighted mean burden); `alpha -> inf` is +dominance (the worst variant sets the cost). Burden that scales with the amount +of misfolded protein points toward small alpha; aggregation or mixed-oligomer +poisoning points toward large alpha. + +**Idea:** Estimate alpha empirically with a screen run at several deliberately +different congression levels (lambda). Alpha only acts through co-resident +cells, so a single low lambda (0.36 in our dataset, where 70% of a genotype's +cells have no co-resident) leaves it weakly identified. Varying lambda changes +the co-resident fraction and the burden mixture it sees while the per-genotype +dk_geno values stay fixed. + +**Why not now:** Our dataset has a single lambda, so alpha is set from biology +and checked by sensitivity (alpha = 0 vs. large), not fit. The experiment is a +separate project. + +**What it would take:** +- Wet lab: the same library transformed at 2 to 3 lambda values (for example + 0.1 / 0.4 / 1.0), with lambda measured independently for each. +- Model: alpha as a shared latent with lambda-indexed transformation parameters. +- Simulation first, to find the lambda spacing that identifies alpha. diff --git a/future/estimate-spike-fraction-from-growth-curvature.md b/future/estimate-spike-fraction-from-growth-curvature.md new file mode 100644 index 00000000..afec9528 --- /dev/null +++ b/future/estimate-spike-fraction-from-growth-curvature.md @@ -0,0 +1,31 @@ +--- +title: Estimate a genotype's spike/bulk fraction from ln_cfu curvature +status: idea +filed: 2026-09-13 +area: tfmodel +revisit_when: >- + If design-computed spike/bulk fractions (f_g) look wrong for real data, or + after the observable-level mixture (congression plan step 3) is in place. +related: + - future/congression-physics-plan.md +--- + +**Context:** In the congression plan, each genotype's cells mix clean and +congressed classes, weighted by `f_g`, the fraction of its cells from the bulk +library. We compute `f_g` from the library design (`transform_sizes`, +`library_mixture`, codon degeneracy). + +**Idea:** Two subpopulations growing at different rates give a +`ln_cfu(t)` that is not linear in time. A genotype that is genuinely clean +grows along a straight line; a mixed one curves. With enough timepoints that +curvature carries information about `f_g`, and could check or refine the +design-based value for real data where transformation efficiencies are +uncertain. + +**Why not now:** `f_g` from the design is good enough to start, the curvature +signal is weak over 3 timepoints per condition, and future runs will +distinguish spikes by codon, which measures purity directly. + +**What it would take:** The observable-level mixture from the plan, then a +`f_g` prior centered on the design value (for example a Beta) instead of a +fixed value, plus a simulation to see whether it is identifiable. diff --git a/future/plasmid-segregation-low-copy.md b/future/plasmid-segregation-low-copy.md new file mode 100644 index 00000000..ae3a08b7 --- /dev/null +++ b/future/plasmid-segregation-low-copy.md @@ -0,0 +1,42 @@ +--- +title: Plasmid segregation ("curing") of multiple transformants in low-copy designs +status: idea +filed: 2026-09-13 +area: experiment +revisit_when: >- + When designing or analyzing the next experiment, which moves to a low-copy + plasmid. +related: + - future/congression-physics-plan.md + - src/tfscreen/simulate/selection_experiment.py +--- + +**Context:** The congression model assumes co-transformed plasmids persist in +a cell for the whole experiment. That is reasonable for the current high-copy +plasmids over roughly 3 to 7 doublings. The next experimental design switches +to a low-copy plasmid. + +**Idea:** Two plasmids with the same origin are incompatible: under no +selection that distinguishes them, a lineage drifts toward carrying only one +type, faster at low copy number. Two consequences: + +1. **Modeling:** congression effects would fade over time, so the congressed + fraction and each cell's variant shares `x_g` become functions of the + number of generations. The observable-level mixture in the congression plan + would need time-dependent class weights. +2. **Design tradeoff:** extra rounds of replication before selection would + "cure" multiple transformants toward single-genotype cells, but outgrowth + also costs library diversity (bottlenecks, drift, growth-rate bias against + slow genotypes). There should be an optimal number of pre-selection + doublings that balances curing against diversity. + +**Why not now:** The current dataset uses high-copy plasmids, so the +persistence assumption holds. + +**What it would take:** +- A segregation model for plasmid copy number n per cell (for example random + partitioning at division), giving the probability a co-transformed lineage is + still mixed after g doublings. +- Simulation: extend `_sim_transform`/`_sim_growth` with per-cell share drift. +- Design calculation: congression remaining vs. library diversity retained, as + a function of pre-selection doublings, for candidate copy numbers. From 641f691ed046381949417c1b623d2db5fa507ed1 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 12:05:19 -0700 Subject: [PATCH 006/208] Add tfs-summarize-calibration; fix summarize-fit globs Checking each step of the congression plan needs calibration pooled across a simulation grid. This brings tfs-summarize-calibration over from the guide-selection branch (code only, from e925b90; no grids or results). tfs-summarize-calibration (analysis/calibration_grid.py) reads each run's combo.json and tfs-summarize-fit outputs and reports coverage, calibration error/bias, PIT KS, interval width, RMSE and Pearson r per run x quantity x stratum (has-binding x spiked/bulk, theta regime). It averages arms over --replicate_keys and pairs each run with a --baseline run fit to the same simulated data. The docstring no longer calls spiked-origin genotypes congression-free, since wt and the spiked singles are also encoded in the bulk sub-libraries. tfs-summarize-fit picked its config and losses with *_config.yaml and *_losses.txt, which in grid run directories also match the simulate config and the prefit/pre-MAP losses; the right file won only by alphabetical order. It now picks the config by content (data + components sections) and ignores prefit/premap losses. New console script: tfs-summarize-calibration (reinstall to register). CHANGELOG and CLAUDE.md updated. Verified: full tests/tfscreen suite passes (4583 passed, 10 skipped). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 21 + CLAUDE.md | 1 + future/congression-physics-plan.md | 7 +- pyproject.toml | 1 + src/tfscreen/analysis/calibration_grid.py | 637 ++++++++++++++++++ .../scripts/summarize_calibration_cli.py | 37 + .../tfmodel/scripts/summarize_fit_cli.py | 58 +- .../analysis/test_calibration_grid.py | 285 ++++++++ .../tfmodel/scripts/test_summarize_fit_cli.py | 44 ++ 9 files changed, 1086 insertions(+), 5 deletions(-) create mode 100644 src/tfscreen/analysis/calibration_grid.py create mode 100644 src/tfscreen/analysis/scripts/summarize_calibration_cli.py create mode 100644 tests/tfscreen/analysis/test_calibration_grid.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c7bd581..86a18474 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,20 @@ fall into two kinds: - `get_posteriors` drops autoguide auxiliary sites (names starting with `_`, such as `AutoContinuous`'s `_auto_latent`) before the forward pass. +- **`tfs-summarize-calibration`** (`analysis/calibration_grid.py`) pools + posterior calibration across a `tfs-setup-sim-grid` grid. It reads each + run's `combo.json` and the `tfs-summarize-fit` outputs in its `summary/` + directory, and reports coverage at several interval levels, calibration + error and bias, PIT uniformity (KS), interval width, and median RMSE and + Pearson r against the simulated truth. Rows are per run x quantity x + stratum: whether the genotype has binding data, whether it is encoded by a + spiked sequence, and, for theta, whether the true value is resolvable or + saturated. Arms (runs sharing every grid variable except `--replicate_keys`) + are averaged, and `--baseline key=value ...` pairs each run with the + baseline run fit to the same simulated data. Unfinished runs are listed in + `{out_prefix}_run_status.csv`. No thresholds or grades. New console script: + reinstall to register it. + ### Fixed - **Per-genotype latents scrambled across genotypes under autoguides.** @@ -101,6 +115,13 @@ fall into two kinds: an `AutoMultivariateNormal` guide it also reports the latent dimension and the memory the dense covariance needs, and warns above 4 GB. +- **`tfs-summarize-fit` could pick the wrong config or losses file in a grid + run directory.** It matched `*_config.yaml` and `*_losses.txt`, which there + also match the simulate config and the prefit/pre-MAP losses; the right file + won only by alphabetical order. It now takes the config that has `data` and + `components` sections, and ignores `*_prefit_losses.txt` and + `*_premap_losses.txt`. + ## [0.4.4] - 2026-09-22 A processing and bookkeeping release: two fixes in the read-counting and diff --git a/CLAUDE.md b/CLAUDE.md index 1a988cfa..45f52292 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -65,6 +65,7 @@ tfs-setup-grid # Set up grid of model configs tfs-summarize-grid # Summarize grid results tfs-summarize-fit # Summarize a fitted model tfs-summarize-sbc # Summarize simulation-based calibration runs +tfs-summarize-calibration # Pool posterior calibration (coverage, PIT, width, RMSE) across a tfs-setup-sim-grid grid, by arm and stratum; --baseline pairs runs fit to the same simulated data tfs-subset-genotypes # Subset genotype data ``` diff --git a/future/congression-physics-plan.md b/future/congression-physics-plan.md index c2acc1d2..40752d6f 100644 --- a/future/congression-physics-plan.md +++ b/future/congression-physics-plan.md @@ -285,7 +285,7 @@ Each step from 1 on ends with a simulation and a fit that use the same rules, checked with `tfs-summarize-calibration`. -2. **Bring in the mini-batch scrambling fix.** - - [ ] Port the MAP/autoguide genotype-aliasing fix and its tests + - [x] Port the MAP/autoguide genotype-aliasing fix and its tests (`inference/batch_safety.py`, `test_batch_safety.py`) from `guide-selection` as a separate commit, code only. Every fit used to check the steps below depends on it. @@ -297,9 +297,10 @@ checked with `tfs-summarize-calibration`. `genetics.library_composition_table` → `bulk_fraction` in `{out_prefix}_library.csv`, via `tfs-configure-model --library_config` (commit 77befcb). - - [ ] Bring in `tfs-summarize-calibration` + - [x] Bring in `tfs-summarize-calibration` (`analysis/calibration_grid.py`, `analysis/scripts/summarize_calibration_cli.py`) - from `guide-selection`, code only, no grids or results. + from `guide-selection` (commit e925b90), code only, no grids or results. + 2026-09-23. 1. **Simulator: share a cell's plasmid copies.** - [ ] `_sim_sequencing` and `_calc_genotype_cfu0` split a cell's abundance among the variants it carries, so simulated composition matches diff --git a/pyproject.toml b/pyproject.toml index eef3791e..4e39ed65 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,6 +86,7 @@ tfs-predict-epistasis = "tfscreen.tfmodel.scripts.predict_epistasis_cli:main" tfs-cat-response = "tfscreen.analysis.scripts.cat_response_cli:main" tfs-extract-epistasis = "tfscreen.analysis.scripts.extract_epistasis_cli:main" tfs-compare-runs = "tfscreen.analysis.scripts.compare_runs_cli:main" +tfs-summarize-calibration = "tfscreen.analysis.scripts.summarize_calibration_cli:main" tfs-diagnose-nan = "tfscreen.tfmodel.scripts.diagnose_nan_cli:main" tfs-simulate = "tfscreen.simulate.scripts.simulate_cli:main" tfs-report-cfu0 = "tfscreen.simulate.scripts.report_cfu0_cli:main" diff --git a/src/tfscreen/analysis/calibration_grid.py b/src/tfscreen/analysis/calibration_grid.py new file mode 100644 index 00000000..8da342dd --- /dev/null +++ b/src/tfscreen/analysis/calibration_grid.py @@ -0,0 +1,637 @@ +""" +Calibration summary across a simulation grid (``tfs-summarize-calibration``). + +Every run directory of a ``tfs-setup-sim-grid`` grid holds a ``combo.json`` +(its grid variables) and, once the run finishes, the ``tfs-summarize-fit`` +outputs in ``summary/``: posterior quantile ladders (``q`` columns) +joined to the simulated truth (``ref``) for θ (``*_theta_corr_test.csv``) and +for every fitted parameter with ground truth (``*_params_*.csv``). This +module turns those into calibration metrics per run, averages them into arms +(runs sharing every grid variable except the replicate keys), and pairs every +run with a baseline run fit to the same simulated data set. + +Metrics (per run x quantity x stratum) +-------------------------------------- +- ``coverage_``: fraction of true values inside the central ``a`` + credible interval, for ``a`` in ``CURVE_LEVELS``. Computed from PIT values + interpolated from the quantile ladder -- the same calculation as + ``tfs-summarize-fit`` (``error_calibration``), so numbers agree. +- ``calibration_error``: mean |coverage - nominal| over ``CURVE_LEVELS``. +- ``calibration_bias``: mean (coverage - nominal); negative = intervals too + narrow (overconfident), positive = too wide. +- ``ks_stat``/``ks_pval``/``mean_pit``: PIT uniformity (one-sample KS). +- ``width_``: mean width of the central ``a`` interval, for ``a`` in + ``WIDTH_LEVELS`` -- so a guide cannot look calibrated just by being vague. +- ``rmse``/``pearson_r``: posterior median vs truth. + +Strata +------ +Genotype-indexed quantities are also broken out by ``has_binding`` (the +genotype has binding data: ``*_sim_binding.csv``) and ``origin`` (``spiked`` +-- encoded by a spiked sequence -- vs ``bulk``, from ``*_sim_library.csv``), +separately and crossed. ``spiked`` is not the same as congression-free: wt and +the spiked single mutants are also encoded in the bulk sub-libraries. θ is additionally split by ``theta_regime``: +``resolvable`` when the true θ lies in ``[regime_eps, 1 - regime_eps]``, +``saturated`` otherwise. The pooled row carries ``"all"`` in every stratum +column. + +No thresholds, no grades: every value is a raw number; filter downstream. +""" + +import glob +import json +import os +import re +import warnings + +import numpy as np +import pandas as pd + +from tfscreen.tfmodel.analysis.error_calibration import ( + calibration_curve, + pit_from_quantiles, + pit_uniformity_test, +) + +CURVE_LEVELS = (0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 0.99) +WIDTH_LEVELS = (0.5, 0.8, 0.95) +STRATUM_COLS = ("has_binding", "origin", "theta_regime") +ALL = "all" + +# Metrics compared against the baseline in paired_differences. +PAIRED_METRICS = ("calibration_error", "calibration_bias", "coverage_0.95", + "width_0.95", "rmse", "ks_stat") + +_Q_COL_RE = re.compile(r"^q(\d*\.?\d+)$") +_NONE_STRINGS = {"none", "null", "~", ""} + + +# --------------------------------------------------------------------------- +# Metrics +# --------------------------------------------------------------------------- + +def quantile_columns(df): + """Return (sorted ``q`` column names, their levels as an array).""" + cols = sorted((c for c in df.columns if _Q_COL_RE.match(c)), + key=lambda c: float(c[1:])) + return cols, np.array([float(c[1:]) for c in cols]) + + +def _interp_quantile(qmat, levels, p): + """Per-row quantile at probability ``p``, linear between stored levels.""" + j = int(np.searchsorted(levels, p)) + if j < len(levels) and np.isclose(levels[j], p): + return qmat[:, j] + if j == 0 or j == len(levels): + return np.full(qmat.shape[0], np.nan) + w = (p - levels[j - 1]) / (levels[j] - levels[j - 1]) + return qmat[:, j - 1] + w * (qmat[:, j] - qmat[:, j - 1]) + + +def metric_columns(): + """Names of the metric columns ``calibration_metrics`` returns.""" + return ([f"coverage_{a:g}" for a in CURVE_LEVELS] + + ["calibration_error", "calibration_bias", + "ks_stat", "ks_pval", "mean_pit"] + + [f"width_{a:g}" for a in WIDTH_LEVELS] + + ["rmse", "pearson_r"]) + + +def calibration_metrics(ref, qmat, levels): + """ + Calibration, sharpness and accuracy of posterior quantiles vs truth. + + Parameters + ---------- + ref : array-like, shape (N,) + True values. + qmat : array-like, shape (N, Q) + Posterior quantiles, columns ordered as ``levels``. + levels : array-like, shape (Q,) + Ascending quantile levels. + + Returns + ------- + dict + ``n`` plus every name in ``metric_columns()``. Rows with a + non-finite truth or quantile are dropped first; with no rows left + every metric is NaN. + """ + ref = np.asarray(ref, dtype=float) + qmat = np.asarray(qmat, dtype=float) + levels = np.asarray(levels, dtype=float) + + ok = np.isfinite(ref) & np.all(np.isfinite(qmat), axis=1) + ref, qmat = ref[ok], qmat[ok] + + out = {"n": int(len(ref))} + out.update({k: np.nan for k in metric_columns()}) + if len(ref) == 0: + return out + + pit = pit_from_quantiles(ref, qmat, levels) + curve = calibration_curve(pit, CURVE_LEVELS) + for a in CURVE_LEVELS: + out[f"coverage_{a:g}"] = curve[float(a)] + diffs = np.array([curve[float(a)] - a for a in CURVE_LEVELS]) + out["calibration_error"] = float(np.mean(np.abs(diffs))) + out["calibration_bias"] = float(np.mean(diffs)) + + ks = pit_uniformity_test(pit) + out["ks_stat"] = ks["ks_stat"] + out["ks_pval"] = ks["ks_pval"] + out["mean_pit"] = ks["mean_pit"] + + for a in WIDTH_LEVELS: + lo = _interp_quantile(qmat, levels, (1.0 - a) / 2.0) + hi = _interp_quantile(qmat, levels, (1.0 + a) / 2.0) + out[f"width_{a:g}"] = float(np.nanmean(hi - lo)) + + median = _interp_quantile(qmat, levels, 0.5) + out["rmse"] = float(np.sqrt(np.nanmean((median - ref) ** 2))) + if len(ref) > 1 and np.nanstd(median) > 0 and np.nanstd(ref) > 0: + out["pearson_r"] = float(np.corrcoef(median, ref)[0, 1]) + + return out + + +# --------------------------------------------------------------------------- +# Reading one run +# --------------------------------------------------------------------------- + +def read_combo(run_dir): + """Flatten a run's ``combo.json`` (simulate + template variables).""" + with open(os.path.join(run_dir, "combo.json")) as fh: + combo = json.load(fh) + flat = dict(combo.get("simulate") or {}) + for key, value in (combo.get("template") or {}).items(): + if key in flat: + warnings.warn(f"combo.json in {run_dir}: '{key}' is both a simulate " + f"and a template variable; using the template value.") + flat[key] = value + return flat + + +def _sim_file(run_dir, name): + matches = sorted(glob.glob(os.path.join(run_dir, f"*_sim_{name}.csv"))) + return matches[0] if matches else None + + +def genotype_strata(run_dir): + """ + Per-genotype strata from the simulation outputs, or None. + + Returns a DataFrame with ``genotype``, ``has_binding`` ("yes"/"no") and + ``origin`` ("spiked"/"bulk"). None when ``*_sim_library.csv`` is absent. + """ + lib_path = _sim_file(run_dir, "library") + if lib_path is None: + return None + lib_df = pd.read_csv(lib_path) + genotypes = pd.unique(lib_df["genotype"].astype(str)) + spiked = set(lib_df.loc[lib_df["library_origin"] == "spiked", + "genotype"].astype(str)) + + binding_path = _sim_file(run_dir, "binding") + binding = (set(pd.read_csv(binding_path)["genotype"].astype(str)) + if binding_path else set()) + + return pd.DataFrame({ + "genotype": genotypes, + "has_binding": ["yes" if g in binding else "no" for g in genotypes], + "origin": ["spiked" if g in spiked else "bulk" for g in genotypes], + }) + + +def read_quantities(summary_dir): + """ + Return [(quantity, DataFrame)] for every calibration-ready summary CSV. + + ``theta_test`` comes from ``*_theta_corr_test.csv``; each + ``*_params_.csv`` gives quantity ````. A file qualifies when + it has a ``ref`` column and at least two ``q`` columns. + """ + candidates = [("theta_test", p) for p in + sorted(glob.glob(os.path.join(summary_dir, "*_theta_corr_test.csv")))] + for path in sorted(glob.glob(os.path.join(summary_dir, "*_params_*.csv"))): + name = re.search(r"_params_(.+)\.csv$", os.path.basename(path)).group(1) + if name.endswith(("_calibration_curve", "_pit")): + continue + candidates.append((name, path)) + + out = [] + for quantity, path in candidates: + df = pd.read_csv(path) + cols, _ = quantile_columns(df) + if "ref" in df.columns and len(cols) >= 2: + out.append((quantity, df)) + return out + + +def _groupings(df): + """Stratum groupings present in ``df`` (the pooled one first).""" + present = [c for c in STRATUM_COLS if c in df.columns and df[c].notna().any()] + groupings = [()] + [(c,) for c in present] + if "has_binding" in present and "origin" in present: + groupings.append(("has_binding", "origin")) + return groupings + + +def summarize_run(run_dir, summary_subdir="summary", regime_eps=0.01): + """ + Calibration metrics for one run. + + Returns + ------- + rows : list of dict + One per quantity x stratum: ``quantity``, the ``STRATUM_COLS`` + (``"all"`` where pooled), ``n`` and the metric columns. + problem : str or None + Why the run produced no rows, else None. + """ + summary_dir = os.path.join(run_dir, summary_subdir) + if not os.path.isdir(summary_dir): + return [], f"no {summary_subdir}/ directory" + quantities = read_quantities(summary_dir) + if not quantities: + return [], "no calibration outputs" + + strata = genotype_strata(run_dir) + rows = [] + for quantity, df in quantities: + cols, levels = quantile_columns(df) + df = df.copy() + if "genotype" in df.columns and strata is not None: + df["genotype"] = df["genotype"].astype(str) + df = df.merge(strata, on="genotype", how="left") + unmatched = df["origin"].isna().mean() + if unmatched > 0: + warnings.warn(f"{run_dir}: {unmatched:.1%} of '{quantity}' rows " + f"have genotypes missing from the sim library; " + f"they are pooled but not stratified.") + if quantity == "theta_test": + resolvable = df["ref"].between(regime_eps, 1.0 - regime_eps) + df["theta_regime"] = np.where(resolvable, "resolvable", "saturated") + + for keys in _groupings(df): + groups = [((), df)] if not keys else df.groupby(list(keys), dropna=True) + for values, sub in groups: + values = values if isinstance(values, tuple) else (values,) + row = {"quantity": quantity, **{c: ALL for c in STRATUM_COLS}} + row.update(dict(zip(keys, values))) + row.update(calibration_metrics(sub["ref"], sub[cols], levels)) + rows.append(row) + return rows, None + + +# --------------------------------------------------------------------------- +# Grid +# --------------------------------------------------------------------------- + +def summarize_grid_runs(grid_dir, summary_subdir="summary", regime_eps=0.01): + """ + Calibration metrics for every run under ``grid_dir``. + + Returns + ------- + runs_df : DataFrame + One row per run x quantity x stratum: ``run``, the grid variables, + ``quantity``, the strata, ``n`` and the metrics. + status_df : DataFrame + One row per run directory: ``run``, grid variables, ``status`` + ("ok" or the problem) and ``n_rows``. + grid_vars : list of str + Grid variable names, in first-seen order. + """ + run_dirs = sorted(d for d in glob.glob(os.path.join(grid_dir, "*")) + if os.path.isfile(os.path.join(d, "combo.json"))) + if not run_dirs: + raise ValueError(f"No run directories with combo.json found in {grid_dir}") + + rows, status, grid_vars = [], [], [] + for run_dir in run_dirs: + run = os.path.basename(run_dir) + combo = read_combo(run_dir) + grid_vars += [k for k in combo if k not in grid_vars] + run_rows, problem = summarize_run(run_dir, summary_subdir, regime_eps) + status.append({"run": run, **combo, "status": problem or "ok", + "n_rows": len(run_rows)}) + rows += [{"run": run, **combo, **r} for r in run_rows] + + return pd.DataFrame(rows), pd.DataFrame(status), grid_vars + + +def _metrics_present(df): + return [c for c in metric_columns() if c in df.columns] + + +def summarize_arms(runs_df, grid_vars, replicate_keys): + """ + Average metrics over replicates within each arm. + + An arm is every run sharing all grid variables except ``replicate_keys``. + Returns one row per arm x quantity x stratum with ``n_runs`` and + ``_mean`` / ``_std`` columns. + """ + arm_keys = [k for k in grid_vars if k not in replicate_keys] + group_cols = arm_keys + ["quantity", *STRATUM_COLS] + metrics = ["n"] + _metrics_present(runs_df) + + grouped = runs_df.groupby(group_cols, dropna=False, sort=True) + stats = grouped[metrics].agg(["mean", "std"]) + stats.columns = [f"{m}_{s}" for m, s in stats.columns] + stats.insert(0, "n_runs", grouped.size()) + return stats.reset_index() + + +def parse_baseline(baseline): + """ + Parse ``["key=value", ...]`` into a dict. "None"/"null"/"~" -> None; + other values are parsed as int, then float, else kept as strings. + """ + out = {} + for item in baseline or []: + if "=" not in item: + raise ValueError(f"baseline entry '{item}' must be key=value.") + key, value = item.split("=", 1) + key, value = key.strip(), value.strip() + if value.lower() in _NONE_STRINGS: + out[key] = None + continue + for cast in (int, float): + try: + out[key] = cast(value) + break + except ValueError: + continue + else: + out[key] = value + return out + + +def _matches(series, value): + if value is None: + return series.isna() + return series == value + + +def paired_differences(runs_df, grid_vars, baseline): + """ + Pair every non-baseline run with the baseline run of the same design. + + ``baseline`` maps grid variables to their baseline values (e.g. + ``{"guide_type": "component", "guide_rank": None}``). A run's partner + shares every other grid variable -- including the simulation and fit + seeds -- plus quantity and stratum. Returns the run rows with + ``delta_`` = run - baseline for each of ``PAIRED_METRICS``. + """ + unknown = [k for k in baseline if k not in grid_vars] + if unknown: + raise ValueError(f"baseline keys {unknown} are not grid variables " + f"({grid_vars}).") + + is_base = np.ones(len(runs_df), dtype=bool) + for key, value in baseline.items(): + is_base &= _matches(runs_df[key], value).to_numpy() + if not is_base.any(): + raise ValueError(f"No runs match baseline {baseline}.") + + match_keys = [k for k in grid_vars if k not in baseline] + ["quantity", *STRATUM_COLS] + metrics = [m for m in PAIRED_METRICS if m in runs_df.columns] + base = runs_df.loc[is_base, match_keys + metrics].rename( + columns={m: f"baseline_{m}" for m in metrics}) + paired = runs_df.loc[~is_base].merge(base, on=match_keys, how="inner") + for m in metrics: + paired[f"delta_{m}"] = paired[m] - paired[f"baseline_{m}"] + + keep = ["run", *grid_vars, "quantity", *STRATUM_COLS] + keep += [f"delta_{m}" for m in metrics] + return paired[keep] + + +def summarize_paired(paired_df, grid_vars, replicate_keys): + """Mean, std, count and standard error of each delta per arm x quantity x stratum.""" + arm_keys = [k for k in grid_vars if k not in replicate_keys] + group_cols = arm_keys + ["quantity", *STRATUM_COLS] + deltas = [c for c in paired_df.columns if c.startswith("delta_")] + + grouped = paired_df.groupby(group_cols, dropna=False, sort=True) + stats = grouped[deltas].agg(["mean", "std", "count"]) + for d in deltas: + stats[(d, "se")] = stats[(d, "std")] / np.sqrt(stats[(d, "count")]) + stats = stats.sort_index(axis=1) + stats.columns = [f"{d}_{s}" for d, s in stats.columns] + stats.insert(0, "n_pairs", grouped.size()) + return stats.reset_index() + + +# --------------------------------------------------------------------------- +# Plot +# --------------------------------------------------------------------------- + +def _label(row, keys): + parts = [] + for k in keys: + v = row[k] + if v is None or (isinstance(v, float) and np.isnan(v)): + continue + if isinstance(v, float) and v.is_integer(): + v = int(v) + parts.append(f"{k}={v}") + return ", ".join(parts) or "(all)" + + +def plot_calibration_curves(arms_df, arm_keys, quantity, out_path, facet_by=None): + """ + Pooled calibration curves (coverage vs nominal) per arm for one quantity. + + Faceted by the ``facet_by`` grid variables; one line per remaining arm. + Returns the path written, or None when there is nothing to plot. + """ + from matplotlib import pyplot as plt + + facet_by = list(facet_by or []) + sub = arms_df[arms_df["quantity"] == quantity] + for c in STRATUM_COLS: + sub = sub[sub[c] == ALL] + if sub.empty: + return None + + line_keys = [k for k in arm_keys if k not in facet_by] + facets = ([((), sub)] if not facet_by + else list(sub.groupby(facet_by, dropna=False, sort=True))) + + fig, axes = plt.subplots(1, len(facets), figsize=(4.6 * len(facets), 4.4), + squeeze=False) + nominal = np.array(CURVE_LEVELS) + for ax, (fvals, fdf) in zip(axes[0], facets): + ax.plot([0.45, 1.0], [0.45, 1.0], color="gray", lw=1, ls="--") + for _, row in fdf.iterrows(): + coverage = [row[f"coverage_{a:g}_mean"] for a in CURVE_LEVELS] + ax.plot(nominal, coverage, marker="o", ms=3, lw=1.2, + label=_label(row, line_keys)) + fvals = fvals if isinstance(fvals, tuple) else (fvals,) + ax.set_title(", ".join(f"{k}={v}" for k, v in zip(facet_by, fvals)) + or quantity, fontsize=9) + ax.set_xlabel("nominal coverage") + ax.set_ylabel("empirical coverage") + ax.set_xlim(0.45, 1.0) + ax.set_ylim(0.0, 1.0) + ax.legend(fontsize=6, loc="upper left") + fig.suptitle(f"{quantity}: pooled calibration by arm", fontsize=10) + fig.tight_layout() + fig.savefig(out_path) + plt.close(fig) + return out_path + + +# --------------------------------------------------------------------------- +# Entry point +# --------------------------------------------------------------------------- + +def summarize_calibration(grid_dir, + out_prefix="tfs_calibration", + summary_subdir="summary", + replicate_keys=None, + baseline=None, + facet_by=None, + plot_quantity="theta_test", + regime_eps=0.01): + """ + Summarize posterior calibration across a simulation grid. + + Parameters + ---------- + grid_dir : str + Directory of run subdirectories written by ``tfs-setup-sim-grid`` + (each with ``combo.json`` and, when finished, ``summary/``). + out_prefix : str, optional + Prefix for all outputs (default ``tfs_calibration``). + summary_subdir : str, optional + Subdirectory holding the ``tfs-summarize-fit`` outputs (default + ``summary``). + replicate_keys : list of str, optional + Grid variables that index replicates rather than arms (default + ``seed`` and ``fit_seed``). Keys absent from the grid are ignored. + baseline : list of str, optional + ``key=value`` pairs selecting the baseline arm, e.g. + ``guide_type=component guide_rank=None``. When given, every other + run is paired with the baseline run sharing all remaining grid + variables (same simulated data, same fit seed). + facet_by : list of str, optional + Grid variables that split the calibration-curve plot into panels. + plot_quantity : str, optional + Quantity plotted (default ``theta_test``). + regime_eps : float, optional + θ within ``[regime_eps, 1 - regime_eps]`` is ``resolvable`` + (default 0.01). + + Outputs + ------- + ``{out_prefix}_runs.csv`` per run x quantity x stratum + ``{out_prefix}_run_status.csv`` per run: ok / what is missing + ``{out_prefix}_arms.csv`` per arm: mean/std over replicates + ``{out_prefix}_paired.csv`` per run: deltas vs baseline (if given) + ``{out_prefix}_paired_summary.csv`` per arm: mean/std/se of deltas + ``{out_prefix}_{plot_quantity}_calibration_curves.pdf`` + ``{out_prefix}_metadata.json`` resolved settings and counts + """ + if replicate_keys is None: + replicate_keys = ["seed", "fit_seed"] + baseline_spec = parse_baseline(baseline) + + runs_df, status_df, grid_vars = summarize_grid_runs( + grid_dir, summary_subdir=summary_subdir, regime_eps=regime_eps) + + # A baseline must name real grid variables and match at least one run in + # the grid (finished or not) -- otherwise it is a typo. Matching only + # unfinished runs is normal mid-grid and just skips the paired outputs. + if baseline_spec: + unknown = [k for k in baseline_spec if k not in grid_vars] + if unknown: + raise ValueError(f"baseline keys {unknown} are not grid variables " + f"({grid_vars}).") + in_grid = np.ones(len(status_df), dtype=bool) + for key, value in baseline_spec.items(): + in_grid &= _matches(status_df[key], value).to_numpy() + if not in_grid.any(): + raise ValueError(f"No run in {grid_dir} matches baseline {baseline_spec}.") + + ignored = [k for k in replicate_keys if k not in grid_vars] + if ignored: + warnings.warn(f"replicate keys {ignored} are not grid variables; ignored.") + replicate_keys = [k for k in replicate_keys if k in grid_vars] + arm_keys = [k for k in grid_vars if k not in replicate_keys] + + facet_by = list(facet_by or []) + bad_facets = [k for k in facet_by if k not in arm_keys] + if bad_facets: + raise ValueError(f"facet_by keys {bad_facets} must be arm variables " + f"({arm_keys}).") + + out_dir = os.path.dirname(os.path.abspath(out_prefix)) + os.makedirs(out_dir, exist_ok=True) + + n_ok = int((status_df["status"] == "ok").sum()) + print(f"{n_ok} of {len(status_df)} runs have calibration outputs.", flush=True) + status_df.to_csv(f"{out_prefix}_run_status.csv", index=False) + written = [f"{out_prefix}_run_status.csv"] + + metadata = { + "grid_dir": os.path.abspath(grid_dir), + "summary_subdir": summary_subdir, + "grid_vars": grid_vars, + "replicate_keys": replicate_keys, + "arm_keys": arm_keys, + "baseline": baseline_spec, + "facet_by": facet_by, + "regime_eps": regime_eps, + "curve_levels": list(CURVE_LEVELS), + "width_levels": list(WIDTH_LEVELS), + "n_runs": int(len(status_df)), + "n_runs_ok": n_ok, + } + + if runs_df.empty: + warnings.warn("No run has calibration outputs yet; only the run status " + "table was written.") + else: + sort_cols = [c for c in arm_keys + replicate_keys + ["quantity"] + if c in runs_df.columns] + runs_df = runs_df.sort_values(sort_cols, kind="stable") + runs_df.to_csv(f"{out_prefix}_runs.csv", index=False) + written.append(f"{out_prefix}_runs.csv") + + arms_df = summarize_arms(runs_df, grid_vars, replicate_keys) + arms_df.to_csv(f"{out_prefix}_arms.csv", index=False) + written.append(f"{out_prefix}_arms.csv") + + base_done = np.ones(len(runs_df), dtype=bool) + for key, value in baseline_spec.items(): + base_done &= _matches(runs_df[key], value).to_numpy() + if baseline_spec and not base_done.any(): + warnings.warn(f"No finished run matches baseline {baseline_spec} yet; " + f"paired outputs skipped.") + elif baseline_spec: + paired = paired_differences(runs_df, grid_vars, baseline_spec) + paired.to_csv(f"{out_prefix}_paired.csv", index=False) + summarize_paired(paired, grid_vars, replicate_keys).to_csv( + f"{out_prefix}_paired_summary.csv", index=False) + written += [f"{out_prefix}_paired.csv", + f"{out_prefix}_paired_summary.csv"] + metadata["n_pairs"] = int(len(paired)) + + pdf = plot_calibration_curves( + arms_df, arm_keys, plot_quantity, + f"{out_prefix}_{plot_quantity}_calibration_curves.pdf", + facet_by=facet_by) + if pdf is not None: + written.append(pdf) + + with open(f"{out_prefix}_metadata.json", "w") as fh: + json.dump(metadata, fh, indent=2, default=str) + written.append(f"{out_prefix}_metadata.json") + + for path in written: + print(f"Wrote {path}", flush=True) + return runs_df, status_df diff --git a/src/tfscreen/analysis/scripts/summarize_calibration_cli.py b/src/tfscreen/analysis/scripts/summarize_calibration_cli.py new file mode 100644 index 00000000..5f9875d2 --- /dev/null +++ b/src/tfscreen/analysis/scripts/summarize_calibration_cli.py @@ -0,0 +1,37 @@ +""" +tfs-summarize-calibration — posterior calibration across a simulation grid. + +Collects the ``tfs-summarize-fit`` calibration inputs from every run of a +``tfs-setup-sim-grid`` grid, computes coverage / PIT / interval width / +accuracy per run, quantity and stratum, averages them over replicates within +each arm, and (with ``--baseline``) pairs each run with the baseline run fit +to the same simulated data. See ``tfscreen.analysis.calibration_grid``. + +Example (the guide-calibration grid):: + + tfs-summarize-calibration guide_grid --out_prefix calib/guide \\ + --baseline guide_type=component guide_rank=None \\ + --facet_by batch_size theta_growth_noise_model +""" + +from tfscreen.analysis.calibration_grid import summarize_calibration +from tfscreen.util.cli import generalized_main + + +def main(): + generalized_main(summarize_calibration, + manual_arg_types={"grid_dir": str, + "out_prefix": str, + "summary_subdir": str, + "replicate_keys": str, + "baseline": str, + "facet_by": str, + "plot_quantity": str, + "regime_eps": float}, + manual_arg_nargs={"replicate_keys": "+", + "baseline": "+", + "facet_by": "+"}) + + +if __name__ == "__main__": + main() diff --git a/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py b/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py index 07e796fe..ce54a438 100644 --- a/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py +++ b/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py @@ -139,6 +139,60 @@ def _find_unique(run_dir, suffix, label, warn_missing=True): return matches[0] +def _is_tfmodel_config(path): + """True when the YAML at ``path`` is a tfmodel config ('data' + 'components').""" + try: + with open(path) as fh: + cfg = yaml.safe_load(fh) + except Exception: + return False + return isinstance(cfg, dict) and "data" in cfg and "components" in cfg + + +def _find_fit_config(run_dir): + """Return the tfmodel config in run_dir, or None. + + Grid run directories also hold other ``*_config.yaml`` files (e.g. the + simulate config ``tfs_sim_config.yaml``), so a file counts only if it has + the 'data' and 'components' sections ``read_configuration`` requires. + """ + matches = sorted(glob.glob(os.path.join(run_dir, "*_config.yaml"))) + configs = [m for m in matches if _is_tfmodel_config(m)] + if not configs: + warnings.warn( + f"No tfmodel config (*_config.yaml with 'data' and 'components') " + f"found in {run_dir}" + ) + return None + if len(configs) > 1: + warnings.warn( + f"Multiple tfmodel config files found in {run_dir}; " + f"using {os.path.basename(configs[0])}" + ) + return configs[0] + + +# Losses written by runs other than the main fit: tfs-prefit-calibration +# ({prefix}_prefit_losses.txt) and the pre-MAP ahead of SVI +# ({out_prefix}_premap_losses.txt). +_AUX_LOSSES_RE = re.compile(r"(^|_)(prefit|premap)_losses\.txt$") + + +def _find_fit_losses(run_dir): + """Return the main fit's ``*_losses.txt`` in run_dir, or None.""" + matches = sorted(glob.glob(os.path.join(run_dir, "*_losses.txt"))) + fit_losses = [m for m in matches + if not _AUX_LOSSES_RE.search(os.path.basename(m))] + if not fit_losses: + return None + if len(fit_losses) > 1: + warnings.warn( + f"Multiple fit losses files found in {run_dir}; " + f"using {os.path.basename(fit_losses[0])}" + ) + return fit_losses[0] + + def _resolve_path(path, run_dir): """Return an existing path given a raw path and a fallback base directory.""" if path is None: @@ -801,9 +855,9 @@ def summarize_fit(run_dir, growth_pred_df = None # --- Locate files in run_dir --- - config_file = _find_unique(run_dir, "_config.yaml", "config") + config_file = _find_fit_config(run_dir) theta_pred_file = _find_unique(run_dir, "_pred_theta.csv", "theta predictions") - losses_file = _find_unique(run_dir, "_losses.txt", "losses", warn_missing=False) + losses_file = _find_fit_losses(run_dir) growth_pred_file = _find_unique(run_dir, "_pred_growth.csv", "growth predictions", warn_missing=False) diff --git a/tests/tfscreen/analysis/test_calibration_grid.py b/tests/tfscreen/analysis/test_calibration_grid.py new file mode 100644 index 00000000..49fd5428 --- /dev/null +++ b/tests/tfscreen/analysis/test_calibration_grid.py @@ -0,0 +1,285 @@ +"""Tests for tfscreen.analysis.calibration_grid (tfs-summarize-calibration).""" + +import json +import os + +import matplotlib +matplotlib.use("Agg") + +import numpy as np +import pandas as pd +import pytest +from scipy.stats import norm + +from tfscreen.analysis.calibration_grid import ( + calibration_metrics, + genotype_strata, + paired_differences, + parse_baseline, + quantile_columns, + read_quantities, + summarize_calibration, + summarize_grid_runs, + summarize_run, +) + + +LEVELS = np.array([0.001, 0.01, 0.025, 0.05, 0.1, 0.159, 0.25, 0.5, + 0.75, 0.841, 0.9, 0.95, 0.975, 0.99, 0.999]) + + +def _posterior(rng, n, sigma, spread): + """Truth, and quantile ladders of a posterior with std sigma*spread. + + With spread == 1 the intervals are calibrated: truth ~ N(center, sigma). + """ + center = rng.uniform(0.2, 0.8, size=n) + ref = center + rng.normal(0.0, sigma, size=n) + qmat = center[:, None] + norm.ppf(LEVELS)[None, :] * sigma * spread + return ref, qmat + + +# --------------------------------------------------------------------------- +# calibration_metrics +# --------------------------------------------------------------------------- + +def test_calibrated_posterior_has_nominal_coverage(): + ref, qmat = _posterior(np.random.default_rng(0), 20000, 0.05, 1.0) + m = calibration_metrics(ref, qmat, LEVELS) + assert m["n"] == 20000 + assert m["coverage_0.95"] == pytest.approx(0.95, abs=0.01) + assert m["coverage_0.5"] == pytest.approx(0.5, abs=0.015) + assert m["calibration_error"] < 0.015 + assert m["width_0.95"] == pytest.approx(2 * 1.96 * 0.05, rel=0.01) + assert m["rmse"] == pytest.approx(0.05, rel=0.03) + + +def test_overconfident_posterior_undercovers_with_negative_bias(): + ref, qmat = _posterior(np.random.default_rng(1), 20000, 0.05, 0.25) + m = calibration_metrics(ref, qmat, LEVELS) + assert m["coverage_0.95"] < 0.5 + assert m["calibration_bias"] < -0.3 + assert m["ks_stat"] > 0.2 + + +def test_nonfinite_rows_are_dropped(): + ref = np.array([0.5, np.nan, 0.4]) + qmat = np.tile(np.linspace(0.0, 1.0, len(LEVELS)), (3, 1)) + qmat[2, 3] = np.nan + assert calibration_metrics(ref, qmat, LEVELS)["n"] == 1 + + +def test_no_rows_gives_nan_metrics(): + m = calibration_metrics(np.array([np.nan]), + np.full((1, len(LEVELS)), 0.5), LEVELS) + assert m["n"] == 0 and np.isnan(m["coverage_0.95"]) + + +def test_quantile_columns_sorted_numerically(): + df = pd.DataFrame(columns=["q0.975", "genotype", "q0.025", "q0.5", "ref"]) + cols, levels = quantile_columns(df) + assert cols == ["q0.025", "q0.5", "q0.975"] + assert list(levels) == [0.025, 0.5, 0.975] + + +# --------------------------------------------------------------------------- +# A fake grid +# --------------------------------------------------------------------------- + +GENOTYPES = [f"G{i}V" for i in range(40)] +SPIKED = {"G0V", "G1V"} +BINDING = {"G0V", "G1V", "G2V", "G3V"} # two spiked + two bulk with binding + + +def _write_run(run_dir, combo, spread, seed, with_summary=True): + os.makedirs(run_dir, exist_ok=True) + with open(os.path.join(run_dir, "combo.json"), "w") as fh: + json.dump(combo, fh) + + pd.DataFrame({ + "library_origin": ["spiked" if g in SPIKED else "double-1-2" for g in GENOTYPES], + "genotype": GENOTYPES, + }).to_csv(os.path.join(run_dir, "tfs_sim_library.csv"), index=False) + pd.DataFrame({"genotype": sorted(BINDING)}).to_csv( + os.path.join(run_dir, "tfs_sim_binding.csv"), index=False) + + if not with_summary: + return + summary = os.path.join(run_dir, "summary") + os.makedirs(summary, exist_ok=True) + rng = np.random.default_rng(seed) + concs = np.arange(25) + genos = np.repeat(GENOTYPES, len(concs)) + ref, qmat = _posterior(rng, len(genos), 0.05, spread) + ref[:len(concs)] = 0.999 # G0V saturated + theta = pd.DataFrame(qmat, columns=[f"q{lv:g}" for lv in LEVELS]) + theta.insert(0, "genotype", genos) + theta.insert(1, "titrant_conc", np.tile(concs, len(GENOTYPES))) + theta["ref"] = ref + theta.to_csv(os.path.join(summary, "tfs_summarize_theta_corr_test.csv"), index=False) + + ref_m, qmat_m = _posterior(rng, 30, 0.1, spread) + mut = pd.DataFrame(qmat_m, columns=[f"q{lv:g}" for lv in LEVELS]) + mut.insert(0, "mutation", [f"M{i}" for i in range(30)]) + mut["ref"] = ref_m + mut.to_csv(os.path.join(summary, "tfs_summarize_params_d_logit_low.csv"), index=False) + # Calibration by-products written next to params files must be ignored. + pd.DataFrame({"nominal": [0.5], "empirical": [0.5]}).to_csv( + os.path.join(summary, "tfs_summarize_params_d_logit_low_calibration_curve.csv"), + index=False) + + +@pytest.fixture +def grid_dir(tmp_path): + """component (overconfident) and auto_normal (calibrated) x 2 sim seeds.""" + grid = tmp_path / "grid" + for guide, rank, spread in (("component", None, 0.3), ("auto_normal", None, 1.0)): + for sim_seed in (1, 2): + combo = {"simulate": {"seed": sim_seed}, + "template": {"guide_type": guide, "guide_rank": rank, + "batch_size": 160, "fit_seed": 1}} + _write_run(str(grid / f"run_{guide}_sim{sim_seed}"), combo, spread, + seed=sim_seed * 10 + (spread == 1.0)) + _write_run(str(grid / "run_unfinished"), + {"simulate": {"seed": 3}, + "template": {"guide_type": "auto_normal", "guide_rank": None, + "batch_size": 160, "fit_seed": 1}}, + spread=1.0, seed=0, with_summary=False) + return str(grid) + + +def test_genotype_strata(grid_dir): + strata = genotype_strata(os.path.join(grid_dir, "run_component_sim1")).set_index("genotype") + assert strata.loc["G0V", "origin"] == "spiked" + assert strata.loc["G2V", "origin"] == "bulk" + assert strata.loc["G2V", "has_binding"] == "yes" + assert strata.loc["G9V", "has_binding"] == "no" + + +def test_read_quantities_skips_calibration_byproducts(grid_dir): + summary = os.path.join(grid_dir, "run_component_sim1", "summary") + assert [q for q, _ in read_quantities(summary)] == ["theta_test", "d_logit_low"] + + +def test_summarize_run_strata_rows(grid_dir): + rows, problem = summarize_run(os.path.join(grid_dir, "run_auto_normal_sim1")) + assert problem is None + theta = pd.DataFrame([r for r in rows if r["quantity"] == "theta_test"]) + pooled = theta[(theta.has_binding == "all") & (theta.origin == "all") + & (theta.theta_regime == "all")] + assert pooled["n"].item() == 40 * 25 + cross = theta[(theta.has_binding == "yes") & (theta.origin == "bulk")] + assert cross["n"].item() == 2 * 25 # G2V, G3V + saturated = theta[theta.theta_regime == "saturated"] + assert saturated["n"].item() >= 25 # at least G0V + # Mutation-level params have no genotype, so only a pooled row. + mut = [r for r in rows if r["quantity"] == "d_logit_low"] + assert len(mut) == 1 and mut[0]["has_binding"] == "all" + + +def test_unfinished_run_reported_in_status(grid_dir): + runs_df, status_df, grid_vars = summarize_grid_runs(grid_dir) + status = status_df.set_index("run")["status"] + assert status["run_unfinished"] != "ok" + assert (status.drop("run_unfinished") == "ok").all() + assert set(grid_vars) == {"seed", "guide_type", "guide_rank", "batch_size", "fit_seed"} + + +@pytest.mark.parametrize("text,expected", [ + (["guide_type=component", "guide_rank=None"], {"guide_type": "component", "guide_rank": None}), + (["batch_size=160", "eps=0.5"], {"batch_size": 160, "eps": 0.5}), +]) +def test_parse_baseline(text, expected): + assert parse_baseline(text) == expected + + +def test_parse_baseline_requires_key_value(): + with pytest.raises(ValueError, match="key=value"): + parse_baseline(["component"]) + + +def test_paired_differences_match_same_simulation(grid_dir): + runs_df, _, grid_vars = summarize_grid_runs(grid_dir) + paired = paired_differences(runs_df, grid_vars, + {"guide_type": "component", "guide_rank": None}) + pooled = paired[(paired.quantity == "theta_test") & (paired.has_binding == "all") + & (paired.origin == "all") & (paired.theta_regime == "all")] + assert sorted(pooled["seed"]) == [1, 2] # one pair per simulation + assert (pooled["delta_calibration_error"] < 0).all() # calibrated beats baseline + assert (pooled["delta_width_0.95"] > 0).all() + + +def test_paired_differences_fail_fast(grid_dir): + runs_df, _, grid_vars = summarize_grid_runs(grid_dir) + with pytest.raises(ValueError, match="not grid variables"): + paired_differences(runs_df, grid_vars, {"nope": 1}) + with pytest.raises(ValueError, match="No runs match"): + paired_differences(runs_df, grid_vars, {"guide_type": "missing"}) + + +def test_summarize_calibration_writes_outputs(grid_dir, tmp_path): + out_prefix = str(tmp_path / "out" / "calib") + summarize_calibration(grid_dir, out_prefix=out_prefix, + baseline=["guide_type=component", "guide_rank=None"], + facet_by=["batch_size"]) + for suffix in ("_runs.csv", "_run_status.csv", "_arms.csv", "_paired.csv", + "_paired_summary.csv", "_theta_test_calibration_curves.pdf", + "_metadata.json"): + assert os.path.exists(out_prefix + suffix), suffix + + arms = pd.read_csv(out_prefix + "_arms.csv") + pooled = arms[(arms.quantity == "theta_test") & (arms.has_binding == "all") + & (arms.origin == "all") & (arms.theta_regime == "all")] + assert set(pooled["n_runs"]) == {2} # 2 finished sims per arm + cov = pooled.set_index("guide_type")["coverage_0.95_mean"] + assert cov["auto_normal"] == pytest.approx(0.95, abs=0.03) + assert cov["component"] < 0.7 + + paired_summary = pd.read_csv(out_prefix + "_paired_summary.csv") + row = paired_summary[(paired_summary.quantity == "theta_test") + & (paired_summary.has_binding == "all") + & (paired_summary.origin == "all") + & (paired_summary.theta_regime == "all")] + assert row["n_pairs"].item() == 2 + assert row["delta_calibration_error_mean"].item() < 0 + + meta = json.load(open(out_prefix + "_metadata.json")) + assert meta["replicate_keys"] == ["seed", "fit_seed"] + assert meta["n_runs"] == 5 and meta["n_runs_ok"] == 4 + + +def test_unfinished_baseline_skips_paired_outputs(grid_dir, tmp_path): + """Mid-grid: the baseline exists but has not finished -> warn, no paired files.""" + out_prefix = str(tmp_path / "mid") + with pytest.warns(UserWarning, match="No finished run matches baseline"): + summarize_calibration(grid_dir, out_prefix=out_prefix, + baseline=["guide_type=auto_normal", "seed=3"]) + assert os.path.exists(out_prefix + "_arms.csv") + assert not os.path.exists(out_prefix + "_paired.csv") + + +def test_baseline_absent_from_grid_raises(grid_dir, tmp_path): + """A baseline matching no run at all (e.g. a typo) fails before writing.""" + with pytest.raises(ValueError, match="No run in"): + summarize_calibration(grid_dir, out_prefix=str(tmp_path / "typo"), + baseline=["guide_type=componet"]) + with pytest.raises(ValueError, match="not grid variables"): + summarize_calibration(grid_dir, out_prefix=str(tmp_path / "typo"), + baseline=["guide=component"]) + + +def test_facet_by_must_be_arm_variable(grid_dir, tmp_path): + with pytest.raises(ValueError, match="facet_by"): + summarize_calibration(grid_dir, out_prefix=str(tmp_path / "c"), + facet_by=["seed"]) + + +def test_main_registers_list_flags(): + from unittest.mock import patch + from tfscreen.analysis.scripts import summarize_calibration_cli as cli + with patch.object(cli, "generalized_main") as gm: + cli.main() + args, kwargs = gm.call_args + assert args[0] is summarize_calibration + assert kwargs["manual_arg_nargs"] == {"replicate_keys": "+", "baseline": "+", + "facet_by": "+"} diff --git a/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py b/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py index 5a83ccd9..0728a953 100644 --- a/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py @@ -29,6 +29,8 @@ ) from tfscreen.tfmodel.scripts.summarize_fit_cli import ( + _find_fit_config, + _find_fit_losses, _find_params_or_posterior, _find_unique, _json_safe, @@ -198,6 +200,48 @@ def test_warns_and_uses_first_on_multiple_matches(self, tmp_path): assert any("Multiple" in str(x.message) for x in w) +# --------------------------------------------------------------------------- +# _find_fit_config / _find_fit_losses (grid run dirs hold other matches) +# --------------------------------------------------------------------------- + +class TestFindFitConfigAndLosses: + + def test_config_ignores_simulate_configs(self, tmp_path): + _make_config_yaml(str(tmp_path / "tfs_configure_config.yaml"), + binding_csv_path="b.csv", guesses_name="g.csv") + # Simulate configs, one sorting ahead of the tfmodel config. + for name in ("a_sim_config.yaml", "tfs_sim_config.yaml"): + (tmp_path / name).write_text(yaml.dump({"seed": 1, "growth": {}})) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + result = _find_fit_config(str(tmp_path)) + assert result == str(tmp_path / "tfs_configure_config.yaml") + assert not any("Multiple" in str(x.message) for x in w) + + def test_config_none_without_tfmodel_config(self, tmp_path): + (tmp_path / "tfs_sim_config.yaml").write_text(yaml.dump({"seed": 1})) + (tmp_path / "broken_config.yaml").write_text(":\n - [unclosed") + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + result = _find_fit_config(str(tmp_path)) + assert result is None + assert any("No tfmodel config" in str(x.message) for x in w) + + def test_losses_ignore_prefit_and_premap(self, tmp_path): + for name in ("tfs_prefit_losses.txt", "tfs_fit_model_premap_losses.txt", + "tfs_fit_model_losses.txt"): + _make_losses_txt(str(tmp_path / name)) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + result = _find_fit_losses(str(tmp_path)) + assert result == str(tmp_path / "tfs_fit_model_losses.txt") + assert not any("Multiple" in str(x.message) for x in w) + + def test_losses_none_when_only_auxiliary(self, tmp_path): + _make_losses_txt(str(tmp_path / "tfs_prefit_losses.txt")) + assert _find_fit_losses(str(tmp_path)) is None + + # --------------------------------------------------------------------------- # _resolve_path # --------------------------------------------------------------------------- From cf3726ea7ea92459fe5f467d5bac360c58e0efab Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 12:19:10 -0700 Subject: [PATCH 007/208] Split a co-transformed cell's abundance among its plasmids The simulator gave every plasmid in a cell that cell's whole abundance, in both _sim_sequencing and _calc_genotype_cfu0, so a cell carrying n plasmids counted as n cells in reads and ln_cfu_0. Bulk genotypes (transformed with transformation_poisson_lambda) were inflated relative to the monoclonal spikes by lambda/(1 - exp(-lambda)) (1.19 at lambda = 0.357), which made a genotype's simulated spike/bulk make-up depend on lambda. The design calculation (expected_library_composition, bulk_fraction) assumes the opposite. A new helper, _plasmid_shares, gives each valid plasmid slot 1/n of its cell; both functions now weight by it, so each cell counts once. Growth (_sim_growth) is unchanged; combining co-resident plasmids' theta and dk is step 2 of future/congression-physics-plan.md. Effects: simulated read counts and ln_cfu_0 change for any config with lambda > 0. Verified: new tests for the shares, for sequencing of mixed and duplicate-genotype cells, and for simulated abundance matching the design pool_fraction at lambda = 0, 0.357 and 1.5 (these fail on the old code for lambda > 0). Full tests/tfscreen suite passes (4590 passed, 10 skipped). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 15 +++ docs/badges/coverage-badge.svg | 2 +- docs/badges/tests-badge.svg | 2 +- future/congression-physics-plan.md | 10 +- src/tfscreen/simulate/selection_experiment.py | 73 ++++++++---- .../simulate/test_selection_experiment.py | 104 ++++++++++++++++-- 6 files changed, 171 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86a18474..d9e6db2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -122,6 +122,21 @@ fall into two kinds: `components` sections, and ignores `*_prefit_losses.txt` and `*_premap_losses.txt`. +- **Simulator counted a co-transformed cell once per plasmid.** + `_sim_sequencing` and `_calc_genotype_cfu0` + (`simulate/selection_experiment.py`) gave every plasmid in a cell that + cell's whole abundance, so a cell carrying n plasmids contributed n cells' + worth of reads and `ln_cfu_0`. Bulk genotypes (transformed with + `transformation_poisson_lambda`) were inflated relative to the monoclonal + spikes by `E[n | n >= 1] = lambda / (1 - exp(-lambda))` (1.19 at + lambda = 0.357), so a genotype's simulated spike/bulk make-up depended on + lambda. A cell's abundance is now split among its plasmids (1/n each; new + helper `_plasmid_shares`), so each cell counts once and the simulated + composition matches the design `pool_fraction`/`bulk_fraction` from + `genetics.library_composition_table` at any lambda. **Simulated read counts + and `ln_cfu_0` change for any config with lambda > 0.** Growth itself + (`_sim_growth`) is unchanged. + ## [0.4.4] - 2026-09-22 A processing and bookkeeping release: two fixes in the read-counting and diff --git a/docs/badges/coverage-badge.svg b/docs/badges/coverage-badge.svg index 52aedcd0..88ec1f61 100644 --- a/docs/badges/coverage-badge.svg +++ b/docs/badges/coverage-badge.svg @@ -1 +1 @@ -coverage: 96.31%coverage96.31% \ No newline at end of file +coverage: 95.69%coverage95.69% \ No newline at end of file diff --git a/docs/badges/tests-badge.svg b/docs/badges/tests-badge.svg index 11f5cc77..03f23f26 100644 --- a/docs/badges/tests-badge.svg +++ b/docs/badges/tests-badge.svg @@ -1 +1 @@ -tests: 4570tests4570 \ No newline at end of file +tests: 4593tests4593 \ No newline at end of file diff --git a/future/congression-physics-plan.md b/future/congression-physics-plan.md index 40752d6f..b1df6a56 100644 --- a/future/congression-physics-plan.md +++ b/future/congression-physics-plan.md @@ -90,8 +90,8 @@ the example configs use `min` for kanR and `max` for pheS). abundance, so a co-transformed cell counts once per plasmid. `expected_library_composition` assumes the opposite: a cell's plasmid copies are shared among the variants it carries, so `bulk_fraction` does not depend -on lambda. Until the simulator shares copies (step 1), simulated composition -and the design `bulk_fraction` disagree. +on lambda. Fixed in step 1 (2026-09-23): the simulator now splits a cell's +abundance among its plasmids. ## Biology and assumptions @@ -302,9 +302,11 @@ checked with `tfs-summarize-calibration`. from `guide-selection` (commit e925b90), code only, no grids or results. 2026-09-23. 1. **Simulator: share a cell's plasmid copies.** - - [ ] `_sim_sequencing` and `_calc_genotype_cfu0` split a cell's abundance + - [x] `_sim_sequencing` and `_calc_genotype_cfu0` split a cell's abundance among the variants it carries, so simulated composition matches - `bulk_fraction` and no longer depends on lambda. + `bulk_fraction` and no longer depends on lambda. 2026-09-23 + (`_plasmid_shares`; a test checks simulated abundance against the + design `pool_fraction` at lambda = 0, 0.357 and 1.5). 2. **Simulator restructure.** - [ ] Build each cell's theta and dk from its plasmids with pluggable rules, then assemble growth once diff --git a/src/tfscreen/simulate/selection_experiment.py b/src/tfscreen/simulate/selection_experiment.py index 317c1ceb..1760351a 100644 --- a/src/tfscreen/simulate/selection_experiment.py +++ b/src/tfscreen/simulate/selection_experiment.py @@ -769,6 +769,34 @@ def _sim_growth( return trans_cfu +def _plasmid_shares(trans_mask: np.ndarray) -> np.ndarray: + """Fraction of its cell that each plasmid slot represents. + + A cell carrying n plasmids splits its plasmid copies among them, so each + valid slot is 1/n of the cell. Masked slots are 0. A cell therefore + contributes one cell's worth of abundance in total, however many plasmids + it carries, and the spiked/bulk make-up of a genotype does not depend on + the congression parameter lambda (see + ``genetics.library_design.expected_library_composition``). + + Parameters + ---------- + trans_mask : numpy.ndarray + A 2D boolean array `(num_cells, max_plasmids)`; True marks an invalid + plasmid slot. + + Returns + ------- + numpy.ndarray + A 2D float array with the same shape as `trans_mask`. + """ + valid = ~trans_mask + num_in_cell = np.sum(valid, axis=1, keepdims=True) + return np.divide(valid, num_in_cell, + out=np.zeros(trans_mask.shape, dtype=float), + where=num_in_cell > 0) + + def _sim_sequencing( transformants: np.ndarray, trans_mask: np.ndarray, @@ -781,7 +809,9 @@ def _sim_sequencing( This function models deep sequencing. For each condition, it assumes that individual plasmids are sampled for sequencing with a probability - proportional to the final abundance (CFU) of their host cell. + proportional to the final abundance (CFU) of their host cell, divided + among the plasmids that cell carries (a cell with n plasmids gives each + 1/n of its abundance). Parameters ---------- @@ -816,18 +846,21 @@ def _sim_sequencing( # conditions. all_transformed_plas = ma.array(transformants, mask=trans_mask).compressed() + # Share of its cell that each plasmid slot represents (1/n for a cell + # with n plasmids). Shared across all conditions. + shares = _plasmid_shares(trans_mask) + # Loop over all conditions for i in range(num_conditions): - # Get the frequencies of cells at this condition and then broadcast to - # match the shape/alignment of all_transformed_plas + # Split each cell's abundance at this condition among its plasmids, + # aligned with all_transformed_plas trans_freq = trans_cfu[:,i] - trans_freq_2d = np.broadcast_to(trans_freq[:, np.newaxis], - transformants.shape) - all_transformed_freq = ma.array(trans_freq_2d, mask=trans_mask).compressed() + plasmid_freq_2d = trans_freq[:, np.newaxis]*shares + all_transformed_freq = ma.array(plasmid_freq_2d, mask=trans_mask).compressed() - # Count the number of times each plasmid index appears, weighted by the - # frequency of the cells in the population + # Count the number of times each plasmid index appears, weighted by + # its share of its cell's abundance geno_counts = np.bincount(all_transformed_plas, weights=all_transformed_freq, minlength=num_genotypes) @@ -863,8 +896,10 @@ def _calc_genotype_cfu0( This function determines the starting abundance (cfu0) of each distinct genotype based on the stochastic outcome of the transformation simulation. - It aggregates the frequencies of all cells containing a given plasmid - and partitions the total library cfu0 accordingly. + Each cell's frequency is split among the plasmids it carries (1/n each + for n plasmids); these shares are summed per genotype and the total + library cfu0 is partitioned accordingly. A genotype's cfu0 is thus in + cell-equivalents, matching how `_sim_sequencing` counts reads. Parameters ---------- @@ -891,24 +926,24 @@ def _calc_genotype_cfu0( # successfully transformed plasmid indices. all_transformed_plas = ma.array(transformants, mask=trans_mask).compressed() - # Create an array that has the frequency of the cell from which each - # plasmid came from in the same shape/alignment as all_transformed_plas - trans_freq_2d = np.broadcast_to(trans_freq[:, np.newaxis], transformants.shape) - all_transformed_freq = ma.array(trans_freq_2d, mask=trans_mask).compressed() + # Split each cell's frequency among its plasmids, in the same + # shape/alignment as all_transformed_plas + plasmid_freq_2d = trans_freq[:, np.newaxis]*_plasmid_shares(trans_mask) + all_transformed_freq = ma.array(plasmid_freq_2d, mask=trans_mask).compressed() - # Count the number of times each plasmid index appears, weighted by the - # frequency of the cells in the population + # Count the number of times each plasmid index appears, weighted by its + # share of its cell's frequency trans_geno_counts = np.bincount(all_transformed_plas, weights=all_transformed_freq, minlength=num_genotypes) # Calculate the frequency of each genotype in the post-transformation pool. - total_plasmids = np.sum(trans_geno_counts) - if total_plasmids == 0: + total_weight = np.sum(trans_geno_counts) + if total_weight == 0: # Handle edge case where no successful transformations occurred trans_freqs = np.zeros(num_genotypes, dtype=float) else: - trans_freqs = trans_geno_counts / total_plasmids + trans_freqs = trans_geno_counts / total_weight # Partition the total cfu0 according to these new frequencies. genotype_cfu0 = total_cfu0 * trans_freqs diff --git a/tests/tfscreen/simulate/test_selection_experiment.py b/tests/tfscreen/simulate/test_selection_experiment.py index 1bebdf2b..7229723d 100644 --- a/tests/tfscreen/simulate/test_selection_experiment.py +++ b/tests/tfscreen/simulate/test_selection_experiment.py @@ -22,6 +22,7 @@ SIMULATE_KNOWN_KEYS, _sim_sequencing, _calc_genotype_cfu0, + _plasmid_shares, _compute_kt, _simulate_library_group, selection_experiment @@ -725,6 +726,55 @@ def test_sim_sequencing_single_survivor(rng: Generator): expected_counts = np.array([[reads_per_sample], [0]]) np.testing.assert_array_equal(result, expected_counts) +def test_plasmid_shares(): + """Each valid slot is 1/n of its cell; masked slots are 0.""" + trans_mask = np.array([[False, True, True], + [False, False, True], + [False, False, False]]) + expected = np.array([[1.0, 0.0, 0.0], + [0.5, 0.5, 0.0], + [1/3, 1/3, 1/3]]) + np.testing.assert_allclose(_plasmid_shares(trans_mask), expected) + np.testing.assert_allclose(_plasmid_shares(trans_mask).sum(axis=1), 1.0) + + +def test_plasmid_shares_empty(): + """An empty transformant array gives an empty share array.""" + result = _plasmid_shares(np.empty((0, 0), dtype=bool)) + assert result.shape == (0, 0) + + +def test_sim_sequencing_splits_cell_among_plasmids(mocker): + """ + A co-transformed cell's abundance is split among its plasmids, so it + contributes one cell's worth of reads in total. + """ + # Cell 0: {g0}, abundance 100. Cell 1: {g0, g1}, abundance 100. + transformants = np.array([[0, 0], [0, 1]]) + trans_mask = np.array([[False, True], [False, False]]) + trans_cfu = np.array([[100.0], [100.0]]) + + # g0 = 100 + 50, g1 = 50 -> probabilities 0.75 / 0.25. + rng = mocker.Mock() + rng.choice.return_value = np.zeros(10, dtype=int) + _sim_sequencing(transformants, trans_mask, trans_cfu, 2, 10, rng) + + np.testing.assert_allclose(rng.choice.call_args.kwargs["p"], [0.75, 0.25]) + + +def test_sim_sequencing_duplicate_genotype_in_cell(mocker): + """Two copies of one genotype in a cell give it the whole cell.""" + transformants = np.array([[0, 0], [1, 0]]) + trans_mask = np.array([[False, False], [False, True]]) + trans_cfu = np.array([[100.0], [100.0]]) + + rng = mocker.Mock() + rng.choice.return_value = np.zeros(10, dtype=int) + _sim_sequencing(transformants, trans_mask, trans_cfu, 2, 10, rng) + + np.testing.assert_allclose(rng.choice.call_args.kwargs["p"], [0.5, 0.5]) + + # ---------------------------------------------------------------------------- # test _calc_genotype_cfu0 # ---------------------------------------------------------------------------- @@ -763,19 +813,17 @@ def test_calc_genotype_cfu0_multi_plasmid(): total_cfu0 = 1.0e7 num_genotypes = 2 - # Expected logic: + # Expected logic: a cell splits its frequency among its plasmids. # Plasmids: [g0, g0, g1, g1] # From cells: [c0, c1, c1, c2] - # Cell Freqs: [0.2, 0.5, 0.5, 0.3] - # - # Total weighted count for g0 = 0.2 + 0.5 = 0.7 - # Total weighted count for g1 = 0.5 + 0.3 = 0.8 - # Total weight = 0.7 + 0.8 = 1.5 + # Share: [1, 1/2, 1/2, 1] + # Weight: [0.2, 0.25, 0.25, 0.3] # - # Final frequency for g0 = 0.7 / 1.5 - # Final frequency for g1 = 0.8 / 1.5 - expected_cfu0 = np.array([ (0.7/1.5) * total_cfu0, - (0.8/1.5) * total_cfu0 ]) + # g0 = 0.2 + 0.25 = 0.45 + # g1 = 0.25 + 0.3 = 0.55 + # Total = 1.0 (one cell's worth per cell) + expected_cfu0 = np.array([0.45 * total_cfu0, + 0.55 * total_cfu0]) result = _calc_genotype_cfu0( transformants, trans_mask, trans_freq, total_cfu0, num_genotypes @@ -783,6 +831,42 @@ def test_calc_genotype_cfu0_multi_plasmid(): np.testing.assert_allclose(result, expected_cfu0) +@pytest.mark.parametrize("lam", [None, 0.357, 1.5]) +def test_calc_genotype_cfu0_matches_design_for_any_lambda(lam): + """ + With plasmid copies shared within a cell, simulated genotype abundance + matches the library design's pool_fraction whatever lambda is. Bulk + origins are transformed with lambda; the spiked origin is monoclonal. + """ + from tfscreen.genetics.library_design import expected_library_composition + + genotypes = ["wt", "A1V", "B2C", "S3T"] + weights = {"bulk": [0.4, 0.3, 0.3, 0.0], + "spiked": [0.5, 0.0, 0.0, 0.5]} + library_df = pd.DataFrame([ + {"library_origin": origin, "genotype": g, "weight": w, "probs": w} + for origin, ws in weights.items() for g, w in zip(genotypes, ws) + ]) + library_mixture = {"bulk": 3.0, "spiked": 1.0} + lib_origin_dict = dict(list(library_df.groupby(["library_origin"]))) + + rng = np.random.default_rng(0) + transformants, trans_mask, trans_freq = _sim_transform_and_mix( + lib_origin_dict, + {"bulk": 200_000, "spiked": 200_000}, + library_mixture, + lam, + rng) + cfu0 = _calc_genotype_cfu0(transformants, trans_mask, trans_freq, + 1.0, len(genotypes)) + + expected = (expected_library_composition(library_df, library_mixture) + .set_index("genotype") + .loc[genotypes, "pool_fraction"] + .to_numpy()) + np.testing.assert_allclose(cfu0, expected, atol=0.005) + + def test_calc_genotype_cfu0_no_transformants(): """ Tests the edge case where there are no successful transformations. From abec95f77c10a028dbeb41fe92bb18be2671bee8 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 12:44:38 -0700 Subject: [PATCH 008/208] Build co-transformed cells' growth from cell-level physics The simulator combined a multi-plasmid cell's whole k*t across its plasmids (multi_plasmid_combine_fcn: min/max/mean/...). dk_geno varies more across genotypes than the whole theta signal, so dk_geno, not theta, decided which plasmid set the cell's growth. A co-transformed cell now gets cell-level theta and TF activity from congression_theta_rule ('max': the highest-theta plasmid at each condition sets both) and dk_geno from congression_dk_rule ('dilution': share-weighted mean), then k_pre/k_sel/k*t from the same growth model, theta rescale, growth transition and tube noise as any genotype (selection_experiment._cell_kt). Rules live in simulate/cell_rules.py. thermo_to_growth.growth_rates/growth_rate_one_condition are now the one theta/activity/dk_geno -> k formula for genotypes and cells, replacing _apply_growth_params. With lambda > 0, _check_cell_components refuses phenotypes whose k_pre/k_sel the growth block does not rebuild. Breaking: multi_plasmid_combine_fcn is removed and refused with a message naming the new keys (both optional). Example configs, docs, CLAUDE.md and CHANGELOG updated. Step 2 of future/congression-physics-plan.md. Verified: new unit tests for the rules, _cell_kt (incl. growth transition, NaN theta, duplicate-genotype cells) and the checks; full tests/tfscreen suite passes (4599 passed, 10 skipped). tfs-simulate on examples/simulate at lambda = 0 gives byte-identical outputs to the previous commit; at lambda = 1.5 runtime (22 s vs 23 s) and memory are unchanged. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 25 ++ CLAUDE.md | 5 +- docs/source/simulation.rst | 13 +- .../simulate-and-analyze/simulate_config.yaml | 13 +- .../simulate-empirical/simulate_config.yaml | 5 +- examples/simulate/simulate_config.yaml | 13 +- future/congression-physics-plan.md | 16 +- reports/flake.txt | 32 +- reports/junit/junit.xml | 2 +- src/tfscreen/simulate/cell_rules.py | 100 +++++ .../simulate/growth_parameters_output.py | 2 +- src/tfscreen/simulate/selection_experiment.py | 418 +++++++++++++----- src/tfscreen/simulate/thermo_to_growth.py | 101 +++-- .../simulate/test_selection_experiment.py | 292 +++++++----- tests/tfscreen/simulate/test_simulate_cli.py | 1 - .../simulate/test_thermo_to_growth.py | 67 +-- 16 files changed, 801 insertions(+), 304 deletions(-) create mode 100644 src/tfscreen/simulate/cell_rules.py diff --git a/CHANGELOG.md b/CHANGELOG.md index d9e6db2d..582d46fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,31 @@ fall into two kinds: `{out_prefix}_run_status.csv`. No thresholds or grades. New console script: reinstall to register it. +### Changed + +- **Co-transformed cells in the simulator now grow by cell-level physics.** + A cell carrying several plasmids used to get the min/max/mean/... of its + plasmids' whole `k*t` (`multi_plasmid_combine_fcn`, per marker library). + Because `dk_geno` varies more across genotypes than the whole theta signal, + that let `dk_geno` decide which plasmid set the cell's growth. Now the + cell's theta and TF activity come from `congression_theta_rule` (`max`: + the highest-theta plasmid at each condition), its `dk_geno` from + `congression_dk_rule` (`dilution`: share-weighted mean), and its `k_pre`, + `k_sel` and `k*t` from the same growth model, theta rescale, growth + transition and tube noise as any genotype. Single-plasmid cells are + unchanged; at lambda = 0 output is identical to before. + - **Breaking:** `multi_plasmid_combine_fcn` is removed and a config that + sets it is refused with a message naming the new keys. Both new keys are + optional (defaults `max` and `dilution`). Example configs updated. + - With `transformation_poisson_lambda > 0`, `selection_experiment` needs + the config's `growth` block and phenotype columns `theta`, `activity`, + `dk_geno`, and checks that they reproduce the phenotype's `k_pre`/`k_sel` + (`_check_cell_components`), so the two paths cannot drift apart. + - New `simulate/cell_rules.py` (`THETA_RULES`, `DK_RULES`). New + `thermo_to_growth.growth_rates`/`growth_rate_one_condition` are the one + theta/activity/dk_geno -> k formula, used per genotype and per cell; + they replace `_apply_growth_params`. + ### Fixed - **Per-genotype latents scrambled across genotypes under autoguides.** diff --git a/CLAUDE.md b/CLAUDE.md index 45f52292..29ee4c3b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -293,7 +293,8 @@ These two dicts are the mechanism by which binding data is "pinned" into the gro | `simulate/sample_theta.py` | `sample_theta_prior` (prior-predictive) and `sample_theta_stratified` (greedy maximin) | | `simulate/sim_data_class.py` | `SimData` container and `build_sim_data` factory | | `simulate/build_sample_dataframes.py` | Constructs sample/timepoint DataFrames from simulation config | -| `simulate/selection_experiment.py` | Models the selection experiment (growth + sequencing) | +| `simulate/selection_experiment.py` | Models the selection experiment (transformation, growth, sequencing). A co-transformed cell splits its abundance among its plasmids (`_plasmid_shares`) and has one growth rate built from cell-level physics (`_cell_kt`); `_check_cell_components` fails fast if the phenotype's `k_pre`/`k_sel` can't be rebuilt from its theta/activity/dk_geno | +| `simulate/cell_rules.py` | Pluggable rules combining a co-transformed cell's plasmids: `THETA_RULES` (`max`: highest-θ plasmid sets θ and activity) and `DK_RULES` (`dilution`: share-weighted dk_geno), chosen by `congression_theta_rule`/`congression_dk_rule`. Growth is then `thermo_to_growth.growth_rate_one_condition`, the same formula used per genotype. Never combine whole growth rates across plasmids | | `simulate/scripts/simulate_cli.py` | `tfs-simulate` CLI entry point; runs `library_prediction` + `selection_experiment` across replicates and writes all output CSVs, delegating the optional `binding_data`/`presplit_data`/`base_growth_data` blocks to their respective generator modules above | | `simulate/scripts/report_cfu0_cli.py` | `tfs-report-cfu0` CLI entry point; reuses `library_prediction` + `selection_experiment` (same pattern as `simulate_cli.py`) across `num_replicates` to report mean `ln_cfu_0` and surviving-genotype counts by class (`wt`/`spiked`/`single`/`double`), for tuning `transform_sizes`/`library_mixture`/`cfu0` against observed real-library values | | `simulate/run_simulation.py` | Simpler, non-CLI orchestrator (`run_simulation`); does not support `binding_data`/`presplit_data`/`base_growth_data` | @@ -306,7 +307,7 @@ An alternative to prior-predictive phenotype sampling: instead of drawing theta - **Stage 1** (`fit_phenotypes.py`): per-genotype MLE of the growth model on a real `ln_cfu` DataFrame (derives `ln_cfu_std` from the processed `ln_cfu_var` via `get_scaled_cfu`, like `model_orchestrator`), calibration (`growth_k`/`growth_m` per `condition_rep`) frozen. Fits `(dk_geno, theta_low, theta_high, log_hill_K, hill_n)` in transformed coords (logit theta bounds, log n) so `run_least_squares` returns covariance in the space Stage 2 needs. Per-genotype independent (no cross-genotype coupling); weak `dk_geno` Tikhonov prior; ±16 logit clamp. Returns `GenotypeFit(estimate, covariance)` per genotype. The fits are embarrassingly parallel — `num_workers` (`-1` = `cpu_count-1`) runs them over a `ProcessPoolExecutor`; the parallel path strips the genotype `Categorical` first (it carries all categories on every group → O(N²) pickling). Worker startup pays a ~2s JAX import, so parallelism is a wash for tiny/fast runs and near-linear for large real libraries. `_hill_theta` is numerically identical to `hill_geno.run_model` and `binding_params._hill_theta` (verified — same `_ZERO_CONC_SENTINEL`). - **Stage 2** (`population.py`): measurement-error EM (`z_i~N(mu,Σ)`, `y_i~N(z_i,S_i)`) that **deconvolves estimation noise** (`Cov(y)=Σ+mean(S_i)`), so it recovers a narrower population than a naive KDE on the point estimates. `fit_population()` → `PopulationModel` (single MV-Normal in transformed space; `wt_ref` field holds wt's actual Stage-1 fit; `.sample(n)` → natural-space DataFrame; `.save()`/`.load()`). -- **Stage 1.5** (`congression.py`, optional; between Stage 1 and Stage 2, gated by `--congression_lambda`): de-attenuates the **bulk** genotypes' theta curves for co-transformation. Reuses the inference's own θ-level operator `transformation._congression.update_thetas` (the `E[max(x,M)]` **dominant-max occupancy** map — the tightest-bound operator sets effective θ, so `E[max]` only, never the min variant — with an empirical background CDF). `correct_theta_matrix` is the fixed point: `θ_true ← θ_obs`; iterate `θ_true += gain·(θ_obs − update_thetas(θ_true; background=θ_true))` per-concentration until converged (the background *is* the corrected population, hence the iteration). `deattenuate_congression` evaluates each bulk genotype's Stage-1 Hill at the growth `titrant_conc` grid, corrects, and refits Hill (dk_geno and the Stage-1 covariance are left untouched — a deliberate bias-only correction; Stage 2's estimation-noise deconvolution still runs after). λ passes straight through **unconverted**: a focal barcode is size-biased into its cell, so co-residents are Poisson(λ) at the *same* zero-truncated `transformation_poisson_lambda` (`_sim_transform` uses `zero_truncated_poisson` + i.i.d. plasmid draws). Spiked genotypes are congression-free → excluded from correction and the background CDF, and pass through unchanged. This is the θ-level analogue of the simulator's growth-level congression (agree to first order, exact at λ→0); spiked-only vs bulk distribution is the external check. +- **Stage 1.5** (`congression.py`, optional; between Stage 1 and Stage 2, gated by `--congression_lambda`): de-attenuates the **bulk** genotypes' theta curves for co-transformation. Reuses the inference's own θ-level operator `transformation._congression.update_thetas` (the `E[max(x,M)]` **dominant-max occupancy** map — the tightest-bound operator sets effective θ, so `E[max]` only, never the min variant — with an empirical background CDF). `correct_theta_matrix` is the fixed point: `θ_true ← θ_obs`; iterate `θ_true += gain·(θ_obs − update_thetas(θ_true; background=θ_true))` per-concentration until converged (the background *is* the corrected population, hence the iteration). `deattenuate_congression` evaluates each bulk genotype's Stage-1 Hill at the growth `titrant_conc` grid, corrects, and refits Hill (dk_geno and the Stage-1 covariance are left untouched — a deliberate bias-only correction; Stage 2's estimation-noise deconvolution still runs after). λ passes straight through **unconverted**: a focal barcode is size-biased into its cell, so co-residents are Poisson(λ) at the *same* zero-truncated `transformation_poisson_lambda` (`_sim_transform` uses `zero_truncated_poisson` + i.i.d. plasmid draws). Spiked genotypes are congression-free → excluded from correction and the background CDF, and pass through unchanged. This is the θ-level analogue of the simulator's cell-level congression (`congression_theta_rule: max`; the simulator also dilutes dk_geno across a cell's plasmids, which Stage 1.5 does not model); spiked-only vs bulk distribution is the external check. - **Stage 3** (`resample.py`): `resample_phenotypes` draws one i.i.d. phenotype per genotype (wt pinned to `dk_geno=0` + `wt_ref` Hill); `make_empirical_overrides` reuses `build_theta_gc_override_hill_geno` → `(theta_gc_override, theta_params_override, dk_geno_override)`. `thermo_to_growth` gained a `dk_geno_override` param (the one growth-path change; `theta_params_override` only patches θ columns). `build_empirical_binding_theta` rebuilds spiked `binding_theta_df` from resampled params (selection from the `binding_data` config; θ from resampled Hill, not `sample_theta_stratified`). Integration: `library_prediction` gains a `phenotype_source: empirical` branch (needs an `empirical: {phenotype_model: }` block pointing at the single self-contained `_phenotype_model.json`; `_resolve_phenotype_model_path` accepts that path with/without `.json` or the bare ``, and the fit prints the absolute path — use it so no file-copying is needed) that resamples all genotypes, injects the overrides, forces `theta_component=hill_geno` (warns + ignores any other value; the resampled phenotypes are per-genotype Hill curves and the discarded prior draw must match the `parameters_df` schema — this also avoids running/overflowing an e.g. `hill_mut` draw), drops the ignored `theta_priors`/`theta_sim_priors`, and forces `activity=fixed/1`. `phenotype_source`/`empirical` are in `selection_experiment.SIMULATE_KNOWN_KEYS`. Resampled ground truth flows into `parameters_df`/`genotype_theta_df` automatically (no new return value); `library_binding` regenerates for free (reads `parameters_df`). `tfs-build-empirical` (`simulate/scripts/build_empirical_cli.py`) is a **one-command orchestrator**: given the experimental inputs (`growth_file` and `seed` positional; `--binding_file` required; optional `--spiked_file`/`--base_growth_file`/`--thermo_data`/`--congression_lambda`/`--num_workers`) it internally calls `configure_model` (linear + hill_geno defaults — no model choices exposed, since here they'd only be wrong) then `run_prefit_calibration` (MAP-calibrates per-condition k/m), then Stages 1-2 (plus optional Stage 1.5 congression de-attenuation when `--congression_lambda` is given), saving the deliverable `_phenotype_model.json` (one self-contained, human-readable file = the generating distribution; `PopulationModel.save`/`.load`) + the diagnostic `_stage1_fits.csv`, plus the `_configure_*`/`_prefit_*` intermediates. The configure/prefit imports are lazy (the heavy JAX stack loads only on this path). The MAP prefit is the slow step, so `--calibration_file` skips configure+prefit and reuses a calibration for fast Stage-1/2 iteration — either a prefit **priors CSV** (read via `fit_phenotypes.read_calibration`, which pivots the `growth.condition_growth.k_loc`/`growth.condition_growth.m_loc` per-`condition_rep` rows — prefit writes these via `_csv_row_name` = `growth.{component}.{field}` — to wide k/m) or a wide `(condition_rep, growth_k, growth_m)` CSV. This **complements** the fully-synthetic prior path (the *accuracy* benchmark) as a *realism* benchmark. diff --git a/docs/source/simulation.rst b/docs/source/simulation.rst index 5ab2b0a2..cf394fd6 100644 --- a/docs/source/simulation.rst +++ b/docs/source/simulation.rst @@ -44,8 +44,17 @@ TF activity. **Experimental parameters** — ``transform_sizes``, ``library_mixture``, ``lib_assembly_skew_sigma``, ``transformation_poisson_lambda``, -``multi_plasmid_combine_fcn``, ``cfu0``, ``tube_noise_sigma``, -``total_num_reads``, ``prob_index_hop``, ``random_seed``. +``congression_theta_rule``, ``congression_dk_rule``, ``cfu0``, +``tube_noise_sigma``, ``total_num_reads``, ``prob_index_hop``, +``random_seed``. + +**Co-transformed cells** — a cell carrying several plasmids splits its +abundance among them and has one growth rate, built from cell-level physics: +``congression_theta_rule`` (default ``max``: the highest-theta plasmid sets the +cell's theta and TF activity) and ``congression_dk_rule`` (default +``dilution``: share-weighted mean ``dk_geno``), then the same growth model as +any genotype. This replaces ``multi_plasmid_combine_fcn``, which combined whole +growth rates and is now rejected. **Growth transition** (optional) — ``growth_transition`` list; one entry per ``condition_pre`` that has a detectable lag phase. Supported models: ``instant``, diff --git a/examples/simulate-and-analyze/simulate_config.yaml b/examples/simulate-and-analyze/simulate_config.yaml index 895c2024..f54d5e63 100644 --- a/examples/simulate-and-analyze/simulate_config.yaml +++ b/examples/simulate-and-analyze/simulate_config.yaml @@ -179,12 +179,13 @@ lib_assembly_skew_sigma: 1.25 # Poisson with this lambda. Set to 0 or null for exactly one plasmid per cell. transformation_poisson_lambda: 0 -# When a cell carries multiple plasmids, growth rates are combined via this -# function. Recommended: 'min' for repressors of antibiotic resistance (tightest -# binder dominates); 'max' for inducers. Default: 'mean' for all libraries. -multi_plasmid_combine_fcn: - kanR: "min" - pheS: "max" +# How a cell carrying several plasmids gets its growth rate. The cell's theta +# and TF activity come from congression_theta_rule ('max': the highest-theta +# plasmid sets both, at each condition); its dk_geno from congression_dk_rule +# ('dilution': share-weighted mean). Growth is then computed once from these +# cell-level values. Both keys are optional; these are the defaults. +congression_theta_rule: max +congression_dk_rule: dilution # Colony-forming units per mL at the start of pre-growth. cfu0: 6.5e7 diff --git a/examples/simulate-empirical/simulate_config.yaml b/examples/simulate-empirical/simulate_config.yaml index 8b8afb02..3a411118 100644 --- a/examples/simulate-empirical/simulate_config.yaml +++ b/examples/simulate-empirical/simulate_config.yaml @@ -144,9 +144,8 @@ lib_assembly_skew_sigma: 1.25 # attenuation your empirical distribution is (currently) uncorrected for, so # keep it matched to the real library. transformation_poisson_lambda: 1.5 -multi_plasmid_combine_fcn: - kanR: "min" - pheS: "max" +congression_theta_rule: max +congression_dk_rule: dilution cfu0: 65_000_000.0 tube_noise_sigma: 0.002 diff --git a/examples/simulate/simulate_config.yaml b/examples/simulate/simulate_config.yaml index 78c193de..89852769 100644 --- a/examples/simulate/simulate_config.yaml +++ b/examples/simulate/simulate_config.yaml @@ -222,12 +222,13 @@ lib_assembly_skew_sigma: 1.25 # Poisson with this lambda. Set to 0 or null for exactly one plasmid per cell. transformation_poisson_lambda: 1.5 -# When a cell carries multiple plasmids, growth rates are combined via this -# function. Recommended: 'min' for repressors of antibiotic resistance (tightest -# binder dominates); 'max' for inducers. Default: 'mean' for all libraries. -multi_plasmid_combine_fcn: - kanR: "min" - pheS: "max" +# How a cell carrying several plasmids gets its growth rate. The cell's theta +# and TF activity come from congression_theta_rule ('max': the highest-theta +# plasmid sets both, at each condition); its dk_geno from congression_dk_rule +# ('dilution': share-weighted mean). Growth is then computed once from these +# cell-level values. Both keys are optional; these are the defaults. +congression_theta_rule: max +congression_dk_rule: dilution # Colony-forming units per mL at the start of pre-growth. cfu0: 65_000_000.0 diff --git a/future/congression-physics-plan.md b/future/congression-physics-plan.md index b1df6a56..5e17800a 100644 --- a/future/congression-physics-plan.md +++ b/future/congression-physics-plan.md @@ -80,10 +80,11 @@ per-genotype `bulk_fraction` (the `f_g` below) and `pool_fraction`. The model reads the table but does not yet use either fraction; it only derives the spiked set from `in_spiked_origin`. -**Simulator.** `_sim_growth` (`simulate/selection_experiment.py`) combines each +**Simulator.** `_sim_growth` (`simulate/selection_experiment.py`) combined each co-resident plasmid's whole `k*t` with a per-marker-library `multi_plasmid_combine_fcn` (`gmean`/`mean`/`min`/`max`/`sum`; default `mean`; -the example configs use `min` for kanR and `max` for pheS). +the example configs used `min` for kanR and `max` for pheS). Replaced in +step 2 (2026-09-23) by cell-level theta and dk rules. **Known simulator/design mismatch.** `_sim_sequencing` and `_calc_genotype_cfu0` credit every plasmid in a cell with that cell's whole @@ -308,11 +309,16 @@ checked with `tfs-summarize-calibration`. (`_plasmid_shares`; a test checks simulated abundance against the design `pool_fraction` at lambda = 0, 0.357 and 1.5). 2. **Simulator restructure.** - - [ ] Build each cell's theta and dk from its plasmids with pluggable rules, + - [x] Build each cell's theta and dk from its plasmids with pluggable rules, then assemble growth once (`k_cell = k_condition + dk_cell + m * A * theta_cell`). Replaces - `multi_plasmid_combine_fcn` on whole `k*t`. - - [ ] First rules: max theta (the fit's current theta rule) and dilution dk. + `multi_plasmid_combine_fcn` on whole `k*t`. 2026-09-23: + `simulate/cell_rules.py`, `selection_experiment._cell_kt`; config keys + `congression_theta_rule`, `congression_dk_rule`. + - [x] First rules: max theta (the fit's current theta rule) and dilution dk. + TF activity follows the theta rule: it comes from the plasmid that sets + theta (user, 2026-09-23). Revisit in step 4, where a partition-function + theta rule would put activity into the plasmid weights. 3. **Fit: observable-level mixture.** Breaking change. - [ ] Clean/congressed log-sum-exp mixture in the growth observation, over each class's whole pre + selection trajectory through diff --git a/reports/flake.txt b/reports/flake.txt index 6c759b20..d7667f0f 100644 --- a/reports/flake.txt +++ b/reports/flake.txt @@ -44624,6 +44624,7 @@ ./src/tfscreen/__init__.py:19:1: W391 blank line at end of file ./src/tfscreen/__version__.py:5:16: W291 trailing whitespace ./src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file +./src/tfscreen/analysis/calibration_grid.py:492:1: C901 'summarize_calibration' is too complex (14) ./src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace ./src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace ./src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 @@ -48130,10 +48131,10 @@ ./src/tfscreen/tfmodel/scripts/setup_grid_cli.py:164:1: C901 'setup_grid' is too complex (17) ./src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) ./src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) +./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:208:1: C901 '_read_all_losses' is too complex (11) +./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:467:1: C901 '_summarize_params' is too complex (23) +./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:582:1: C901 '_summarize_condition_growth_params' is too complex (14) +./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:777:1: C901 'summarize_fit' is too complex (59) ./src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent ./src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) ./src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 @@ -48556,6 +48557,11 @@ ./tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace ./tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace ./tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused +./tests/tfscreen/analysis/test_calibration_grid.py:9:1: E402 module level import not at top of file +./tests/tfscreen/analysis/test_calibration_grid.py:10:1: E402 module level import not at top of file +./tests/tfscreen/analysis/test_calibration_grid.py:11:1: E402 module level import not at top of file +./tests/tfscreen/analysis/test_calibration_grid.py:12:1: E402 module level import not at top of file +./tests/tfscreen/analysis/test_calibration_grid.py:14:1: E402 module level import not at top of file ./tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace @@ -51504,12 +51510,12 @@ ./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file ./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file ./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator +./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1013:18: E221 multiple spaces before operator +./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1016:17: E221 multiple spaces before operator +./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1281:1: E402 module level import not at top of file +./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1463:14: E221 multiple spaces before operator +./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1725:1: E402 module level import not at top of file +./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2105:21: E221 multiple spaces before operator ./tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used ./tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' ./tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused @@ -52030,7 +52036,7 @@ ./tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 ./tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -389 C901 'cat_fit' is too complex (28) +390 C901 'cat_fit' is too complex (28) 70 E111 indentation is not a multiple of 4 42 E114 indentation is not a multiple of 4 (comment) 42 E116 unexpected indentation (comment) @@ -52063,7 +52069,7 @@ 142 E305 expected 2 blank lines after class or function definition, found 1 203 E306 expected 1 blank line before a nested definition, found 0 7 E401 multiple imports on one line -268 E402 module level import not at top of file +273 E402 module level import not at top of file 609 E501 line too long (153 > 127 characters) 301 E701 multiple statements on one line (colon) 35 E712 comparison to True should be 'if cond is True:' or 'if cond:' @@ -52079,4 +52085,4 @@ 562 W292 no newline at end of file 10397 W293 blank line contains whitespace 196 W391 blank line at end of file -52032 +52038 diff --git a/reports/junit/junit.xml b/reports/junit/junit.xml index 574d6945..81be6508 100644 --- a/reports/junit/junit.xml +++ b/reports/junit/junit.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/tfscreen/simulate/cell_rules.py b/src/tfscreen/simulate/cell_rules.py new file mode 100644 index 00000000..ad1f7a9a --- /dev/null +++ b/src/tfscreen/simulate/cell_rules.py @@ -0,0 +1,100 @@ +""" +Rules for combining a co-transformed cell's plasmids into cell-level physics. + +A cell that carries more than one plasmid has one growth rate. The simulator +builds that rate from cell-level physical quantities, never by combining the +plasmids' whole growth rates: + + k_cell = growth_model(theta_cell, activity_cell) + dk_cell + +Each rule takes per-slot values for a block of cells and each slot's share of +its cell (``1/n`` for a cell with ``n`` plasmids, 0 for a masked slot; see +``selection_experiment._plasmid_shares``). + +Theta rules +----------- +``fcn(theta, activity, shares) -> (theta_cell, activity_cell)`` + +- ``theta``, ``activity``: ``(num_cells, max_plasmids, num_conditions)`` +- ``shares``: ``(num_cells, max_plasmids)`` +- returns two ``(num_cells, num_conditions)`` arrays. + +TF activity multiplies theta in the growth model, so it is combined by the +theta rule: it comes from whatever sets the cell's theta. + +dk rules +-------- +``fcn(dk_geno, shares) -> dk_cell`` + +- ``dk_geno``: ``(num_cells, max_plasmids)`` +- returns ``(num_cells,)``. + +See ``future/congression-physics-plan.md`` for the physics and the planned +rules (partition-function theta, soft-min dk). +""" + +import numpy as np + + +def theta_max(theta, activity, shares): + """ + The plasmid with the highest theta sets the cell's theta and activity. + + Evaluated separately at each condition (the highest-theta plasmid can + change with titrant concentration). Masked slots are ignored. If any + valid slot's theta is NaN, the cell's theta is NaN. + + Parameters + ---------- + theta : numpy.ndarray + ``(num_cells, max_plasmids, num_conditions)``. + activity : numpy.ndarray + Same shape as ``theta``. + shares : numpy.ndarray + ``(num_cells, max_plasmids)``; 0 marks a masked slot. + + Returns + ------- + theta_cell, activity_cell : numpy.ndarray + ``(num_cells, num_conditions)`` each. + """ + valid = (shares > 0)[:, :, np.newaxis] + masked_theta = np.where(valid, theta, -np.inf) + + # np.argmax picks the first NaN if one is present, so a NaN theta in any + # valid slot propagates to the cell. + best = np.argmax(masked_theta, axis=1)[:, np.newaxis, :] + theta_cell = np.take_along_axis(masked_theta, best, axis=1)[:, 0, :] + activity_cell = np.take_along_axis(activity, best, axis=1)[:, 0, :] + + return theta_cell, activity_cell + + +def dk_dilution(dk_geno, shares): + """ + Share-weighted mean dk_geno (each variant's burden diluted by its share). + + The ``alpha -> 0`` limit of the soft-min family in the congression plan. + + Parameters + ---------- + dk_geno : numpy.ndarray + ``(num_cells, max_plasmids)``. + shares : numpy.ndarray + ``(num_cells, max_plasmids)``; rows sum to 1. + + Returns + ------- + numpy.ndarray + ``(num_cells,)``. + """ + return np.sum(np.where(shares > 0, dk_geno, 0.0) * shares, axis=1) + + +THETA_RULES = { + "max": theta_max, +} + +DK_RULES = { + "dilution": dk_dilution, +} diff --git a/src/tfscreen/simulate/growth_parameters_output.py b/src/tfscreen/simulate/growth_parameters_output.py index 273e4433..b6174749 100644 --- a/src/tfscreen/simulate/growth_parameters_output.py +++ b/src/tfscreen/simulate/growth_parameters_output.py @@ -42,7 +42,7 @@ def generate_growth_parameters_df(growth_cfg): The 'growth' top-level config block: a mapping from condition string to a parameter dict. Each parameter dict may contain a 'model' key ('linear', 'power', or 'saturation'; defaults to - 'linear' to match simulate.thermo_to_growth._apply_growth_params) + 'linear' to match simulate.thermo_to_growth.growth_rate_one_condition) plus the model's own parameter keys. Returns diff --git a/src/tfscreen/simulate/selection_experiment.py b/src/tfscreen/simulate/selection_experiment.py index 1760351a..84debc30 100644 --- a/src/tfscreen/simulate/selection_experiment.py +++ b/src/tfscreen/simulate/selection_experiment.py @@ -7,6 +7,14 @@ ) from tfscreen.util.validation import check_unknown_keys from tfscreen.simulate.growth.transition_linkage import get_transition_model +from tfscreen.simulate.thermo_to_growth import ( + growth_rates, + growth_rate_one_condition, +) +from tfscreen.simulate.cell_rules import ( + THETA_RULES, + DK_RULES, +) from tfscreen.util.numerical import ( vstack_padded, zero_truncated_poisson, @@ -21,10 +29,7 @@ import pandas as pd -from scipy.stats import ( - gmean, - lognorm, -) +from scipy.stats import lognorm from tqdm.auto import tqdm # Mostly for type hinting @@ -39,12 +44,6 @@ # Type Aliases introduced during review _Numeric = TypeVar("_Numeric", int, float) -MULTI_PLASMID_COMBINE_FCNS = {"gmean":gmean, - "mean":ma.mean, - "min":ma.min, - "max":ma.max, - "sum":ma.sum} - # All recognized top-level keys for a simulate config file. SIMULATE_KNOWN_KEYS = frozenset({ # Library genetics (passed to LibraryManager) @@ -61,7 +60,8 @@ "activity_wt", "activity_mut_scale", "activity_component", "activity_priors", # Experimental simulation parameters "transform_sizes", "library_mixture", "lib_assembly_skew_sigma", - "transformation_poisson_lambda", "multi_plasmid_combine_fcn", "cfu0", + "transformation_poisson_lambda", "cfu0", + "congression_theta_rule", "congression_dk_rule", "tube_noise_sigma", "growth_transition", # Data collection "total_num_reads", "prob_index_hop", "seed", @@ -190,6 +190,18 @@ def _check_cf( # Load from YAML if a path is provided, otherwise assume it's a dict cf = read_yaml(cf) + # Removed key: say what replaced it rather than failing as "unknown". + if "multi_plasmid_combine_fcn" in cf: + raise ValueError( + "'multi_plasmid_combine_fcn' has been removed. It combined the " + "whole growth rates of a cell's plasmids, which let dk_geno decide " + "which plasmid set the cell's growth. A co-transformed cell's " + "growth is now built from cell-level theta and dk_geno: set " + "'congression_theta_rule' (default 'max') and " + "'congression_dk_rule' (default 'dilution') instead, or omit both " + "for the defaults." + ) + check_unknown_keys(cf, SIMULATE_KNOWN_KEYS, label="simulate config") # --- Validate single numerical values --- @@ -230,6 +242,15 @@ def _check_cf( if "library_selector" not in cf: cf["library_selector"] = ["replicate", "library"] + # --- Rules for combining a co-transformed cell's plasmids --- + for key, rules, default in (("congression_theta_rule", THETA_RULES, "max"), + ("congression_dk_rule", DK_RULES, "dilution")): + if cf.get(key) is None: + cf[key] = default + if cf[key] not in rules: + raise ValueError(f"'{key}' must be one of {sorted(rules)}, " + f"not '{cf[key]}'.") + if not isinstance(cf["condition_selector"], list): raise ValueError("condition_selector must be a list of column names.") if not isinstance(cf["library_selector"], list): @@ -302,7 +323,6 @@ def _check_lib_spec( 2. `library_df` has the required columns. 3. Keys in `cf["library_mixture"]` and `cf["transform_sizes"]` match and are present in `library_df["library_origin"]`. - 4. Sets defaults for and validates `cf["multi_plasmid_combine_fcn"]`. Parameters ---------- @@ -316,17 +336,12 @@ def _check_lib_spec( Returns ------- dict - The configuration dictionary, potentially updated with default values - for `multi_plasmid_combine_fcn`. + The configuration dictionary. Raises ------ ValueError If any of the consistency checks fail. - - Notes - ----- - This function modifies the `cf` dictionary in-place. """ # Make sure all genotypes in library_df are in genotype_df @@ -361,29 +376,71 @@ def _check_lib_spec( if sum(cf["library_mixture"].values()) == 0: raise ValueError("The sum of ratios in 'library_mixture' cannot be zero.") - # Deal with multi_plasmid_combine_fcn. + return cf - libraries = np.unique(phenotype_df["library"]) - if "multi_plasmid_combine_fcn" not in cf: - cf["multi_plasmid_combine_fcn"] = {} - for lib in libraries: - cf["multi_plasmid_combine_fcn"][lib] = "mean" - - for lib in libraries: - if lib not in cf["multi_plasmid_combine_fcn"]: - err = f"lib '{lib}' not found in 'multi_plasmid_combine_fcn'\n" - raise ValueError(err) - fcn = cf["multi_plasmid_combine_fcn"][lib] +# Columns a co-transformed cell's growth is rebuilt from. +_CELL_COMPONENT_COLUMNS = ("theta", "activity", "dk_geno", + "condition_pre", "condition_sel", + "k_pre", "k_sel") - if fcn not in MULTI_PLASMID_COMBINE_FCNS: - err = f"The multi_plasmid_combine_fcn '{fcn}' for library '{lib}'\n" - err += "was not recognized. The function should be one of:\n" - for k in MULTI_PLASMID_COMBINE_FCNS: - err += f" {k}\n" - raise ValueError(err) - return cf +def _check_cell_components( + cf: dict[str, Any], + phenotype_df: pd.DataFrame, +) -> None: + """ + Check that co-transformed cells' growth can be rebuilt from components. + + A cell carrying several plasmids gets a growth rate built from its + cell-level theta, activity and dk_geno with the same formula + ``thermo_to_growth`` uses per genotype (``growth_rates``). That needs the + config's ``growth`` block and the phenotype's ``theta``/``activity``/ + ``dk_geno`` columns, and those must reproduce the phenotype's own + ``k_pre``/``k_sel``. Otherwise co-transformed and single-plasmid cells + would grow by different formulas. + + Raises + ------ + ValueError + If the ``growth`` block or a component column is missing, or if the + rebuilt growth rates do not match ``k_pre``/``k_sel``. + """ + + if "growth" not in cf or not isinstance(cf["growth"], dict): + raise ValueError( + "With transformation_poisson_lambda > 0, co-transformed cells' " + "growth is built from theta, activity and dk_geno, which needs the " + "config's 'growth' block." + ) + + missing = [c for c in _CELL_COMPONENT_COLUMNS if c not in phenotype_df.columns] + if missing: + raise ValueError( + f"With transformation_poisson_lambda > 0, phenotype_df needs the " + f"columns {list(_CELL_COMPONENT_COLUMNS)} (as written by " + f"thermo_to_growth). Missing: {missing}." + ) + + theta = phenotype_df["theta"].to_numpy(dtype=float) + activity = phenotype_df["activity"].to_numpy(dtype=float) + dk_geno = phenotype_df["dk_geno"].to_numpy(dtype=float) + theta_rescale = cf.get("theta_rescale", "passthrough") + + for k_col, cond_col in (("k_pre", "condition_pre"), ("k_sel", "condition_sel")): + rebuilt = growth_rates(phenotype_df[cond_col].to_numpy(), theta, + activity, dk_geno, cf["growth"], theta_rescale) + observed = phenotype_df[k_col].to_numpy(dtype=float) + if not np.allclose(rebuilt, observed, rtol=1e-9, atol=1e-12, + equal_nan=True): + bad = int(np.sum(~np.isclose(rebuilt, observed, rtol=1e-9, + atol=1e-12, equal_nan=True))) + raise ValueError( + f"phenotype_df '{k_col}' does not match growth rebuilt from " + f"theta, activity, dk_geno and the 'growth' block ({bad} of " + f"{len(observed)} rows differ). Co-transformed cells would " + f"grow by a different formula than single-plasmid cells." + ) def _sim_plasmid_probabilities( @@ -698,42 +755,131 @@ def _sim_transform_and_mix( return transformants, trans_mask, probs -def _sim_growth( +def _cell_kt( transformants: np.ndarray, trans_mask: np.ndarray, - trans_freq: np.ndarray, genotype_vs_kt: np.ndarray, - total_cfu0: float, - multi_plasmid_combine_fcn: str, + genotype_vs_theta: np.ndarray, + genotype_activity: np.ndarray, + genotype_dk_geno: np.ndarray, + condition_info: pd.DataFrame, + tube_kt: np.ndarray, + cf: dict[str, Any], ) -> np.ndarray: - """Simulate cell growth for a population under multiple conditions. + """Total log-growth (k*t) of every cell in every condition. - This function calculates the final cell abundance (CFU) for each initial - transformant across all experimental conditions. It accounts for - multi-plasmid transformants by combining their `kt` values using a - specified function. + A cell with one plasmid grows exactly as its genotype does + (``genotype_vs_kt``). A cell with several plasmids has one growth rate, + built from cell-level physics rather than by combining its plasmids' + growth rates: the ``congression_theta_rule`` gives the cell's theta and + activity, the ``congression_dk_rule`` its dk_geno (see + ``simulate.cell_rules``), and ``growth_rates`` turns them into ``k_pre`` + and ``k_sel`` with the same formula used per genotype. The growth + transition model and per-tube noise then apply as for any genotype. Parameters ---------- transformants : numpy.ndarray - A 2D integer array of shape `(num_cells, max_plasmids)` holding - genotype indices for each plasmid in each cell. + ``(num_cells, max_plasmids)`` genotype indices. trans_mask : numpy.ndarray - A 2D boolean array of shape `(num_cells, max_plasmids)` masking - invalid plasmid entries. + ``(num_cells, max_plasmids)``; True marks an invalid slot. + genotype_vs_kt : numpy.ndarray + ``(num_genotypes, num_conditions)`` k*t per genotype, including + ``tube_kt``. + genotype_vs_theta : numpy.ndarray + ``(num_genotypes, num_conditions)`` theta per genotype. + genotype_activity, genotype_dk_geno : numpy.ndarray + ``(num_genotypes,)`` per-genotype activity and dk_geno. + condition_info : pandas.DataFrame + One row per condition (column of the arrays above) with + ``condition_pre``, ``condition_sel``, ``t_pre`` and ``t_sel``. + tube_kt : numpy.ndarray + ``(num_conditions,)`` per-tube noise in k*t units. + cf : dict + Validated config (``growth``, ``theta_rescale``, + ``growth_transition``, ``congression_theta_rule``, + ``congression_dk_rule``). + + Returns + ------- + numpy.ndarray + ``(num_cells, num_conditions)`` k*t per cell. NaN (a failed phenotype) + is set to 0, as for genotypes. + """ + + num_cells = transformants.shape[0] + num_conditions = genotype_vs_kt.shape[1] + if num_cells == 0: + return np.zeros((0, num_conditions), dtype=float) + + # Single-plasmid cells (and every cell's first slot, overwritten below + # for co-transformed cells) take their genotype's k*t. + cell_kt = genotype_vs_kt[transformants[:, 0]].astype(float) + + num_in_cell = np.sum(~trans_mask, axis=1) + multi = np.where(num_in_cell > 1)[0] + if len(multi) == 0: + return cell_kt + + multi_trans = transformants[multi] + shares = _plasmid_shares(trans_mask[multi]) + + theta_rule = THETA_RULES[cf["congression_theta_rule"]] + dk_rule = DK_RULES[cf["congression_dk_rule"]] + + # (num_multi, max_plasmids, num_conditions) + slot_theta = genotype_vs_theta[multi_trans] + slot_activity = np.broadcast_to(genotype_activity[multi_trans][:, :, np.newaxis], + slot_theta.shape) + theta_cell, activity_cell = theta_rule(slot_theta, slot_activity, shares) + dk_cell = dk_rule(genotype_dk_geno[multi_trans], shares) + + growth_params = cf["growth"] + theta_rescale = cf.get("theta_rescale", "passthrough") + growth_transition = cf["growth_transition"] + num_multi = len(multi) + for c in range(num_conditions): + info = condition_info.iloc[c] + theta_c = theta_cell[:, c] + activity_c = activity_cell[:, c] + k_pre = growth_rate_one_condition(info["condition_pre"], theta_c, + activity_c, dk_cell, + growth_params, theta_rescale) + k_sel = growth_rate_one_condition(info["condition_sel"], theta_c, + activity_c, dk_cell, + growth_params, theta_rescale) + if growth_transition is None: + kt = k_pre*info["t_pre"] + k_sel*info["t_sel"] + else: + kt = _compute_kt_arrays(k_pre, k_sel, + np.full(num_multi, info["t_pre"], dtype=float), + np.full(num_multi, info["t_sel"], dtype=float), + theta_c, + np.full(num_multi, info["condition_pre"], dtype=object), + growth_transition) + cell_kt[multi, c] = np.nan_to_num(kt, nan=0.0) + tube_kt[c] + + return cell_kt + + +def _sim_growth( + cell_kt: np.ndarray, + trans_freq: np.ndarray, + total_cfu0: float, +) -> np.ndarray: + """Simulate cell growth for a population under multiple conditions. + + Parameters + ---------- + cell_kt : numpy.ndarray + A 2D float array of shape `(num_cells, num_conditions)` holding each + cell's total log-growth (`k*t`), from `_cell_kt`. trans_freq : numpy.ndarray A 1D float array of shape `(num_cells,)` with the initial frequency of each cell in the population. - genotype_vs_kt : numpy.ndarray - A 2D float array of shape `(num_genotypes, num_conditions)` holding - the growth rate multiplied by time (`k*t`) for each genotype. total_cfu0 : float The total initial colony-forming units (CFU) for the entire population. - multi_plasmid_combine_fcn : str - The name of the function used to combine the `kt` values from - multiple plasmids within a single cell. Must be a key in - `MULTI_PLASMID_COMBINE_FCNS`. Returns ------- @@ -741,30 +887,12 @@ def _sim_growth( A 2D float array of shape `(num_cells, num_conditions)` holding the final CFU for each cell after growth in each condition. """ - - if multi_plasmid_combine_fcn not in MULTI_PLASMID_COMBINE_FCNS: - err = f"multi_plasmid_combine_fcn '{multi_plasmid_combine_fcn}' not recognized. Should be one\n" - err += f"of: '{list(MULTI_PLASMID_COMBINE_FCNS.keys())}\n" - raise ValueError(err) - - # Look up kt for every plasmid slot in every cell for every condition. - # -> all_kt has shape (num_cells, max_plasmids, num_conditions) - all_kt = genotype_vs_kt[transformants] - - # Expand the 2D mask to 3D to match the shape of all_kt. - # .copy() required: numpy 2.x rejects read-only broadcast arrays as ma masks - expanded_mask = np.broadcast_to(trans_mask[:, :, np.newaxis], all_kt.shape).copy() - masked_kt = ma.array(all_kt, mask=expanded_mask) - - # Calculate the kt for each cell by combining effects of plasmids - # -> trans_kt has shape (num_cells, num_conditions) - trans_kt = MULTI_PLASMID_COMBINE_FCNS[multi_plasmid_combine_fcn](masked_kt,axis=1) # -> trans_cfu0 has shape (num_cells,) trans_cfu0 = total_cfu0*trans_freq # -> trans_cfu has shape (num_cells, num_conditions) - trans_cfu = trans_cfu0[:,np.newaxis]*np.exp(trans_kt) + trans_cfu = trans_cfu0[:,np.newaxis]*np.exp(cell_kt) return trans_cfu @@ -951,16 +1079,23 @@ def _calc_genotype_cfu0( return genotype_cfu0 -def _compute_kt( - phenotype_df: pd.DataFrame, +def _compute_kt_arrays( + k_pre: np.ndarray, + k_sel: np.ndarray, + t_pre: np.ndarray, + t_sel: np.ndarray, + theta: np.ndarray, + condition_pre: np.ndarray, growth_transition: list | None, ) -> np.ndarray: - """Compute total log-growth (k*t) for every row in phenotype_df. + """Compute total log-growth (k*t) from aligned 1D arrays. Parameters ---------- - phenotype_df : pandas.DataFrame - Must have columns: k_pre, k_sel, t_pre, t_sel, theta, condition_pre. + k_pre, k_sel, t_pre, t_sel, theta : numpy.ndarray + Growth rates, times and (raw) theta, one entry per row. + condition_pre : numpy.ndarray + Pre-growth condition of each row (selects the transition model). growth_transition : list of dict or None Validated growth_transition config (from _check_cf). None means instant transition for all conditions. Each entry must have 'condition_pre' and @@ -969,20 +1104,12 @@ def _compute_kt( Returns ------- numpy.ndarray - 1-D array of kt values aligned with phenotype_df rows. + 1-D array of kt values. """ - k_pre = phenotype_df["k_pre"].to_numpy() - k_sel = phenotype_df["k_sel"].to_numpy() - t_pre = phenotype_df["t_pre"].to_numpy() - t_sel = phenotype_df["t_sel"].to_numpy() - if growth_transition is None: return k_pre * t_pre + k_sel * t_sel - theta = phenotype_df["theta"].to_numpy() - condition_pre = phenotype_df["condition_pre"].to_numpy() - - kt = np.zeros(len(phenotype_df)) + kt = np.zeros(len(k_pre)) for entry in growth_transition: mask = condition_pre == entry["condition_pre"] params = {k: v for k, v in entry.items() @@ -997,6 +1124,41 @@ def _compute_kt( return kt +def _compute_kt( + phenotype_df: pd.DataFrame, + growth_transition: list | None, +) -> np.ndarray: + """Compute total log-growth (k*t) for every row in phenotype_df. + + Parameters + ---------- + phenotype_df : pandas.DataFrame + Must have columns: k_pre, k_sel, t_pre, t_sel, theta, condition_pre. + growth_transition : list of dict or None + Validated growth_transition config (from _check_cf). None means instant + transition for all conditions. + + Returns + ------- + numpy.ndarray + 1-D array of kt values aligned with phenotype_df rows. + """ + if growth_transition is None: + theta = np.zeros(len(phenotype_df)) + condition_pre = np.zeros(len(phenotype_df)) + else: + theta = phenotype_df["theta"].to_numpy() + condition_pre = phenotype_df["condition_pre"].to_numpy() + + return _compute_kt_arrays(phenotype_df["k_pre"].to_numpy(), + phenotype_df["k_sel"].to_numpy(), + phenotype_df["t_pre"].to_numpy(), + phenotype_df["t_sel"].to_numpy(), + theta, + condition_pre, + growth_transition) + + def _simulate_library_group( sub_df: pd.DataFrame, index_offset: int, @@ -1045,7 +1207,6 @@ def _simulate_library_group( tube_noise_sigma = cf["tube_noise_sigma"] library_mixture = cf["library_mixture"] transform_sizes = cf["transform_sizes"] - multi_plasmid_combine_fcn = cf["multi_plasmid_combine_fcn"] prob_index_hop = cf["prob_index_hop"] total_cfu0 = cf["cfu0"] @@ -1124,29 +1285,61 @@ def _simulate_library_group( # Create a 2D array of (genotype,conditions) holding kt. # .copy() required: pandas 3.x CoW returns a read-only view from to_numpy() genotype_vs_kt = genotype_vs_kt_pivot.to_numpy().copy() - + + # One row per condition (column of genotype_vs_kt), aligned to the pivot. + condition_info = (sub_df + .groupby(condition_selector, observed=True) + [["condition_pre", "condition_sel", "t_pre", "t_sel"]] + .first() + .reindex(genotype_vs_kt_pivot.columns)) + # Add per-tube environmental noise: one delta_k per condition, shared across - # all genotypes in that tube. tube_noise_sigma is in growth-rate units - # (hr⁻¹); the kt contribution is delta_k * t_total, which we read from the - # first row of the pivot (t_pre + t_sel is the same for every genotype). + # all genotypes (and cells) in that tube. tube_noise_sigma is in + # growth-rate units (hr⁻¹); the kt contribution is delta_k * t_total. + tube_kt = np.zeros(genotype_vs_kt.shape[1], dtype=float) if tube_noise_sigma is not None and tube_noise_sigma > 0: - t_pre_per_condition = sub_df.groupby(condition_selector, observed=True)["t_pre"].first().reindex(genotype_vs_kt_pivot.columns).to_numpy() - t_sel_per_condition = sub_df.groupby(condition_selector, observed=True)["t_sel"].first().reindex(genotype_vs_kt_pivot.columns).to_numpy() - t_total = t_pre_per_condition + t_sel_per_condition + t_total = (condition_info["t_pre"].to_numpy(dtype=float) + + condition_info["t_sel"].to_numpy(dtype=float)) delta_k = rng.normal(scale=tube_noise_sigma, size=len(t_total)) - genotype_vs_kt += delta_k[np.newaxis, :] * t_total[np.newaxis, :] - - # Name of the library (e.g. kanR, pheS, ... ) for looking up how to - # combine multiple plasmid effects - lib_name = np.unique(sub_df["library"])[0] + tube_kt = delta_k * t_total + genotype_vs_kt += tube_kt[np.newaxis, :] + + # Per-genotype components for co-transformed cells, aligned to + # ordered_genotypes. Only needed when some cell carries >1 plasmid. + has_multi = transformants.shape[0] > 0 and np.any(np.sum(~trans_mask, axis=1) > 1) + if has_multi: + genotype_vs_theta = (sub_df + .pivot_table(index="genotype", + columns=condition_selector, + values="theta", + observed=True, + dropna=False) + .reindex(index=ordered_genotypes, + columns=genotype_vs_kt_pivot.columns) + .to_numpy(dtype=float)) + per_geno = (sub_df + .groupby("genotype", observed=True)[["activity", "dk_geno"]] + .first() + .reindex(ordered_genotypes)) + genotype_activity = per_geno["activity"].to_numpy(dtype=float) + genotype_dk_geno = per_geno["dk_geno"].to_numpy(dtype=float) + else: + num_cond = genotype_vs_kt.shape[1] + genotype_vs_theta = np.zeros((num_genotypes, num_cond), dtype=float) + genotype_activity = np.ones(num_genotypes, dtype=float) + genotype_dk_geno = np.zeros(num_genotypes, dtype=float) print("--> simulating growth",flush=True) - trans_cfu = _sim_growth(transformants, - trans_mask, - trans_freq, - genotype_vs_kt, - total_cfu0, - multi_plasmid_combine_fcn[lib_name]) + cell_kt = _cell_kt(transformants, + trans_mask, + genotype_vs_kt, + genotype_vs_theta, + genotype_activity, + genotype_dk_geno, + condition_info, + tube_kt, + cf) + trans_cfu = _sim_growth(cell_kt, trans_freq, total_cfu0) # Record cfu/mL over all conditions sample_df.loc[:,"sample_cfu"] = np.sum(trans_cfu,axis=0) @@ -1255,6 +1448,11 @@ def selection_experiment( # Integrated check and update for library specification cf = _check_lib_spec(cf,library_df,phenotype_df) + # Co-transformed cells rebuild their growth from theta/activity/dk_geno. + lam = cf["transformation_poisson_lambda"] + if lam is not None and lam > 0: + _check_cell_components(cf, phenotype_df) + # ------------------------------------------------------------------------ # Set up calculation # ------------------------------------------------------------------------ diff --git a/src/tfscreen/simulate/thermo_to_growth.py b/src/tfscreen/simulate/thermo_to_growth.py index 3f0642fd..3116205c 100644 --- a/src/tfscreen/simulate/thermo_to_growth.py +++ b/src/tfscreen/simulate/thermo_to_growth.py @@ -250,39 +250,89 @@ def _assign_dk_geno(unique_genotypes, return pd.Series(dk_geno) -def _apply_growth_params(condition_array, theta_array, growth_params, - activity_array=None): +def growth_rate_one_condition(condition, theta_array, activity_array, + dk_geno_array, growth_params, + theta_rescale="passthrough"): """ - Compute per-row growth rate k given theta and per-condition model parameters. + Growth rate k from its physical components, all rows in one condition. + + ``k = growth_model[condition](theta_rescale(theta), activity) + dk_geno``. + This is the one place the simulator turns theta, activity and dk_geno + into a growth rate: ``thermo_to_growth`` uses it (through + ``growth_rates``) per genotype and ``selection_experiment`` per + co-transformed cell, so the two always agree. Parameters ---------- - condition_array : numpy.ndarray - 1D array of condition strings. + condition : str + Condition (key of ``growth_params``). theta_array : numpy.ndarray - 1D array of fractional occupancy values (same length). + 1D array of fractional occupancy (raw, before rescaling). + activity_array : numpy.ndarray + 1D array of TF activity. + dk_geno_array : numpy.ndarray + 1D array of pleiotropic growth effects. + growth_params : dict + Mapping from condition string to a parameter dict with a ``'model'`` + key (``'linear'``, ``'power'`` or ``'saturation'``; default + ``'linear'``); remaining keys go to the model's ``predict()``. + theta_rescale : str, default "passthrough" + Key of ``_THETA_RESCALE``. + + Returns + ------- + numpy.ndarray + Growth rate k for each row. + """ + if theta_rescale not in _THETA_RESCALE: + raise ValueError( + f"theta_rescale '{theta_rescale}' not recognized. " + f"It should be one of: {list(_THETA_RESCALE.keys())}" + ) + growth_theta = _THETA_RESCALE[theta_rescale](np.asarray(theta_array, dtype=float)) + params = growth_params[condition].copy() + model = get_growth_model(params.pop("model", "linear")) + k = model.predict(growth_theta, + activity=np.asarray(activity_array, dtype=float), + **params) + return k + np.asarray(dk_geno_array, dtype=float) + + +def growth_rates(condition_array, theta_array, activity_array, dk_geno_array, + growth_params, theta_rescale="passthrough"): + """ + Growth rate k from its physical components, rows in any conditions. + + Applies ``growth_rate_one_condition`` to the rows of each condition. + + Parameters + ---------- + condition_array : numpy.ndarray + 1D array of condition strings (keys of ``growth_params``). + theta_array, activity_array, dk_geno_array : numpy.ndarray + 1D arrays aligned with ``condition_array``. growth_params : dict - Mapping from condition string to a parameter dict. Must contain a - ``'model'`` key (``'linear'``, ``'power'``, or ``'saturation'``); - remaining keys are forwarded to the model's ``predict()`` method. - activity_array : numpy.ndarray or None - Per-row TF activity scaling factors. Defaults to 1.0. + Per-condition growth model parameters. + theta_rescale : str, default "passthrough" + Key of ``_THETA_RESCALE``. Returns ------- numpy.ndarray Growth rate k for each row. """ - if activity_array is None: - activity_array = np.ones(len(theta_array), dtype=float) + condition_array = np.asarray(condition_array) + theta_array = np.asarray(theta_array, dtype=float) + activity_array = np.asarray(activity_array, dtype=float) + dk_geno_array = np.asarray(dk_geno_array, dtype=float) + result = np.zeros(len(theta_array), dtype=float) for cond in np.unique(condition_array): mask = condition_array == cond - params = growth_params[cond].copy() - model_name = params.pop("model", "linear") - model = get_growth_model(model_name) - result[mask] = model.predict(theta_array[mask], - activity=activity_array[mask], **params) + result[mask] = growth_rate_one_condition(cond, theta_array[mask], + activity_array[mask], + dk_geno_array[mask], + growth_params, theta_rescale) return result @@ -617,15 +667,14 @@ def thermo_to_growth( theta = phenotype_df["theta"].to_numpy() activity = phenotype_df["activity"].to_numpy() - growth_theta = _THETA_RESCALE[theta_rescale](theta) - - k_pre = _apply_growth_params(phenotype_df["condition_pre"].to_numpy(), - growth_theta, growth_params, activity_array=activity) - phenotype_df["k_pre"] = k_pre + phenotype_df["dk_geno"].to_numpy() + dk_geno = phenotype_df["dk_geno"].to_numpy() - k_sel = _apply_growth_params(phenotype_df["condition_sel"].to_numpy(), - growth_theta, growth_params, activity_array=activity) - phenotype_df["k_sel"] = k_sel + phenotype_df["dk_geno"].to_numpy() + phenotype_df["k_pre"] = growth_rates(phenotype_df["condition_pre"].to_numpy(), + theta, activity, dk_geno, + growth_params, theta_rescale) + phenotype_df["k_sel"] = growth_rates(phenotype_df["condition_sel"].to_numpy(), + theta, activity, dk_geno, + growth_params, theta_rescale) # ── Final column ordering ───────────────────────────────────────────────── diff --git a/tests/tfscreen/simulate/test_selection_experiment.py b/tests/tfscreen/simulate/test_selection_experiment.py index 7229723d..0d918f45 100644 --- a/tests/tfscreen/simulate/test_selection_experiment.py +++ b/tests/tfscreen/simulate/test_selection_experiment.py @@ -18,7 +18,8 @@ _sim_transform, _sim_transform_and_mix, _sim_growth, - MULTI_PLASMID_COMBINE_FCNS, + _cell_kt, + _check_cell_components, SIMULATE_KNOWN_KEYS, _sim_sequencing, _calc_genotype_cfu0, @@ -55,8 +56,9 @@ def base_config() -> dict: "libA": 0.6, "libB": 0.4, }, - "multi_plasmid_combine_fcn": { - "test_selection": "mean" + "growth": { + "M9": {"model": "linear", "b": 0.09, "m": 0.0}, + "M9 + Ab": {"model": "linear", "b": 0.5, "m": 0.6}, }, "condition_selector": [ "titrant_name", "titrant_conc", @@ -77,16 +79,23 @@ def base_library_df() -> pd.DataFrame: @pytest.fixture def base_phenotype_df(base_library_df: pd.DataFrame) -> pd.DataFrame: + """ + Phenotypes consistent with base_config["growth"]: k = b + m*theta + dk_geno. + """ genotypes = sorted(list(pd.unique(base_library_df["genotype"]))) conditions = [ {"titrant_name": "IPTG", "titrant_conc": 10.0}, {"titrant_name": "IPTG", "titrant_conc": 100.0}, ] - base_growth_rates = {"A1V": 0.8, "A2V": 1.0, "A3V": 1.2, "A4V": 0.6} - + theta_by_geno = {"A1V": (0.2, 0.1), "A2V": (0.9, 0.5), + "A3V": (0.6, 0.3), "A4V": (0.4, 0.05)} + dk_by_geno = {"A1V": 0.01, "A2V": -0.02, "A3V": 0.0, "A4V": 0.005} + records = [] for g in genotypes: - for c in conditions: + for i, c in enumerate(conditions): + theta = theta_by_geno[g][i] + dk = dk_by_geno[g] record = { "genotype": g, "replicate": 1, @@ -95,10 +104,11 @@ def base_phenotype_df(base_library_df: pd.DataFrame) -> pd.DataFrame: "t_pre": 4.0, "condition_sel": "M9 + Ab", "t_sel": 18.0, - "k_pre": 0.1, - "k_sel": base_growth_rates[g] * (1 + c["titrant_conc"] / 50.0), - "dk_geno": 0.01, - "theta": 1.0, + "k_pre": 0.09 + dk, + "k_sel": 0.5 + 0.6*theta + dk, + "dk_geno": dk, + "activity": 1.0, + "theta": theta, **c } records.append(record) @@ -249,26 +259,28 @@ def test_check_lib_spec_success(base_config: dict, _check_lib_spec(cf_copy, lib_df_copy, pheno_df_copy) assert True # Indicates successful run without errors -def test_check_lib_spec_sets_defaults(base_config: dict, - base_library_df: pd.DataFrame, - base_phenotype_df: pd.DataFrame): - """ - Tests that the function correctly sets the default for the - 'multi_plasmid_combine_fcn' if it is not in the config. - """ - cf_copy = base_config.copy() - lib_df_copy = base_library_df.copy() - pheno_df_copy = base_phenotype_df.copy() +def test_check_cf_rejects_multi_plasmid_combine_fcn(base_config: dict): + """The removed key fails with a message naming its replacements.""" + cf = dict(base_config) + cf["multi_plasmid_combine_fcn"] = {"test_selection": "mean"} + with pytest.raises(ValueError, match="congression_theta_rule"): + _check_cf(cf) - # Remove the key to test default-setting behavior - cf_copy.pop("multi_plasmid_combine_fcn") - result_cf = _check_lib_spec(cf_copy, lib_df_copy, pheno_df_copy) +def test_check_cf_congression_rule_defaults(base_config: dict): + """Omitted congression rules default to max theta and dilution dk.""" + cf = _check_cf(dict(base_config)) + assert cf["congression_theta_rule"] == "max" + assert cf["congression_dk_rule"] == "dilution" + + +@pytest.mark.parametrize("key", ["congression_theta_rule", "congression_dk_rule"]) +def test_check_cf_bad_congression_rule(base_config: dict, key): + cf = dict(base_config) + cf[key] = "not_a_rule" + with pytest.raises(ValueError, match=key): + _check_cf(cf) - assert "multi_plasmid_combine_fcn" in result_cf - # 'test_selection' is the library name in base_phenotype_df - expected_default = {"test_selection": "mean"} - assert result_cf["multi_plasmid_combine_fcn"] == expected_default @pytest.mark.parametrize("modification_lambda, match_error", [ # Genotype in library_df is missing from phenotype_df @@ -287,9 +299,7 @@ def test_check_lib_spec_sets_defaults(base_config: dict, # Ratios in library_mixture sum to zero (lambda cf, lib, pheno: cf.update({"library_mixture": {"libA": 0, "libB": 0}}), "cannot be zero"), - - # Invalid multi_plasmid_combine_fcn name - (lambda cf, lib, pheno: cf["multi_plasmid_combine_fcn"].update({"test_selection": "bad_fcn"}), "not recognized"), + ]) def test_check_lib_spec_failures(base_config: dict, base_library_df: pd.DataFrame, @@ -570,89 +580,167 @@ def test_sim_transform_and_mix_invariant_to_transform_sizes(rng: Generator): # test _sim_growth # ---------------------------------------------------------------------------- -def test_sim_growth_single_plasmid(): - """ - Tests a simple case where all cells have exactly one plasmid. - """ - # 3 cells, each with one plasmid (genotypes 0, 1, 2) - transformants = np.array([[0], [1], [2]]) - trans_mask = np.array([[False], [False], [False]]) +def test_sim_growth(): + """Final CFU is initial CFU times exp(cell k*t).""" trans_freq = np.array([0.2, 0.3, 0.5]) total_cfu0 = 1.0e6 - - # 3 genotypes, 2 conditions - genotype_vs_kt = np.array([ - [0.1, 0.5], # Genotype 0 k*t values - [0.2, 0.6], # Genotype 1 k*t values - [0.3, 0.7], # Genotype 2 k*t values - ]) - - # Manually calculate expected CFU - initial_cfus = total_cfu0 * trans_freq - growth_factors = np.exp(genotype_vs_kt) - expected_cfu = initial_cfus[:, np.newaxis] * growth_factors + cell_kt = np.array([[0.1, 0.5], + [0.2, 0.6], + [0.3, 0.7]]) - result_cfu = _sim_growth( - transformants, trans_mask, trans_freq, genotype_vs_kt, total_cfu0, "mean" - ) + expected_cfu = (total_cfu0 * trans_freq)[:, np.newaxis] * np.exp(cell_kt) + result_cfu = _sim_growth(cell_kt, trans_freq, total_cfu0) np.testing.assert_allclose(result_cfu, expected_cfu) -@pytest.mark.parametrize("combine_fcn_name", MULTI_PLASMID_COMBINE_FCNS.keys()) -def test_sim_growth_multi_plasmid(combine_fcn_name: str): + +# ---------------------------------------------------------------------------- +# test _cell_kt +# ---------------------------------------------------------------------------- + +def _cell_kt_inputs(growth_transition=None): """ - Tests that multi-plasmid kt values are combined correctly for all - supported combination functions. + Three genotypes, two conditions, linear growth k = b + m*A*theta + dk. + Pre-growth has m = 0, so only selection depends on theta. """ - # 2 cells: cell 0 has 2 plasmids (geno0, A1V), cell 1 has 1 (A2V) - transformants = np.array([[0, 1], [2, 0]]) # Second plasmid for cell 1 is masked + cf = { + "growth": {"pre": {"model": "linear", "b": 0.1, "m": 0.0}, + "sel": {"model": "linear", "b": 0.2, "m": 0.5}}, + "theta_rescale": "passthrough", + "growth_transition": growth_transition, + "congression_theta_rule": "max", + "congression_dk_rule": "dilution", + } + theta = np.array([[0.1, 0.9], # g0 + [0.8, 0.2], # g1 + [0.5, 0.5]]) # g2 + activity = np.array([1.0, 0.5, 1.0]) + dk = np.array([0.0, -0.04, 0.02]) + condition_info = pd.DataFrame({"condition_pre": ["pre", "pre"], + "condition_sel": ["sel", "sel"], + "t_pre": [1.0, 1.0], + "t_sel": [10.0, 10.0]}) + + def kt(theta_, activity_, dk_): + k_pre = 0.1 + dk_ + k_sel = 0.2 + 0.5*activity_*theta_ + dk_ + return k_pre*1.0 + k_sel*10.0 + + genotype_vs_kt = np.array([[kt(theta[g, c], activity[g], dk[g]) + for c in range(2)] for g in range(3)]) + return cf, theta, activity, dk, condition_info, genotype_vs_kt, kt + + +def test_cell_kt_single_plasmid_cells_match_genotypes(): + cf, theta, activity, dk, info, gkt, _ = _cell_kt_inputs() + transformants = np.array([[0], [1], [2]]) + trans_mask = np.zeros((3, 1), dtype=bool) + result = _cell_kt(transformants, trans_mask, gkt, theta, activity, dk, + info, np.zeros(2), cf) + np.testing.assert_allclose(result, gkt) + + +def test_cell_kt_co_transformed_cell_uses_cell_physics(): + """ + A {g0, g1} cell: theta and activity from the higher-theta plasmid at each + condition, dk diluted by share. Not any combination of the two + genotypes' k*t. + """ + cf, theta, activity, dk, info, gkt, kt = _cell_kt_inputs() + transformants = np.array([[0, 1], [2, 0]]) trans_mask = np.array([[False, False], [False, True]]) - trans_freq = np.array([0.4, 0.6]) - total_cfu0 = 1.0e6 + tube_kt = np.array([0.01, -0.02]) + + result = _cell_kt(transformants, trans_mask, gkt + tube_kt, theta, + activity, dk, info, tube_kt, cf) + + dk_cell = 0.5*dk[0] + 0.5*dk[1] + # condition 0: g1 has the higher theta (0.8, activity 0.5) + # condition 1: g0 has the higher theta (0.9, activity 1.0) + expected_cell0 = [kt(0.8, 0.5, dk_cell) + tube_kt[0], + kt(0.9, 1.0, dk_cell) + tube_kt[1]] + np.testing.assert_allclose(result[0], expected_cell0) + # Single-plasmid cell keeps its genotype's k*t (tube noise included) + np.testing.assert_allclose(result[1], gkt[2] + tube_kt) + + +def test_cell_kt_duplicate_genotype_matches_genotype(): + """A cell with two copies of one genotype grows like that genotype.""" + cf, theta, activity, dk, info, gkt, _ = _cell_kt_inputs() + transformants = np.array([[1, 1]]) + trans_mask = np.zeros((1, 2), dtype=bool) + result = _cell_kt(transformants, trans_mask, gkt, theta, activity, dk, + info, np.zeros(2), cf) + np.testing.assert_allclose(result[0], gkt[1]) + + +def test_cell_kt_applies_growth_transition(): + """Co-transformed cells go through the growth transition model too.""" + gt = [{"condition_pre": "pre", "model": "memory", + "tau0": 3.0, "k1": 1.0, "k2": 1.0}] + cf, theta, activity, dk, info, gkt, _ = _cell_kt_inputs(growth_transition=gt) + + # Genotype k*t with the transition model, via the shared path + rows = [] + for g in range(3): + for c in range(2): + rows.append({"k_pre": 0.1 + dk[g], + "k_sel": 0.2 + 0.5*activity[g]*theta[g, c] + dk[g], + "t_pre": 1.0, "t_sel": 10.0, "theta": theta[g, c], + "condition_pre": "pre"}) + gkt = _compute_kt(pd.DataFrame(rows), gt).reshape(3, 2) + + # A {g2, g2} cell must reproduce g2's transition-model k*t exactly. + result = _cell_kt(np.array([[2, 2]]), np.zeros((1, 2), dtype=bool), gkt, + theta, activity, dk, info, np.zeros(2), cf) + np.testing.assert_allclose(result[0], gkt[2]) + + +def test_cell_kt_nan_theta_gives_zero_growth(): + cf, theta, activity, dk, info, gkt, _ = _cell_kt_inputs() + theta = theta.copy() + theta[1, 0] = np.nan + result = _cell_kt(np.array([[0, 1]]), np.zeros((1, 2), dtype=bool), gkt, + theta, activity, dk, info, np.zeros(2), cf) + assert result[0, 0] == 0.0 + assert np.isfinite(result[0, 1]) and result[0, 1] != 0.0 + + +def test_cell_kt_no_cells(): + cf, theta, activity, dk, info, gkt, _ = _cell_kt_inputs() + result = _cell_kt(np.empty((0, 0), dtype=int), np.empty((0, 0), dtype=bool), + gkt, theta, activity, dk, info, np.zeros(2), cf) + assert result.shape == (0, 2) - genotype_vs_kt = np.array([ - [0.1, 1.0], # Genotype 0 - [0.5, 0.8], # Genotype 1 - [0.3, 0.6], # Genotype 2 - ]) - # Calculate the expected effective kt for each cell - # Cell 0 combines kt from genotypes 0 and 1 - kt_cell0 = genotype_vs_kt[[0, 1], :] - # Cell 1 only has kt from genotype 2 - kt_cell1 = genotype_vs_kt[[2], :] - - # Use the actual numpy functions to get the expected combined kt values - if combine_fcn_name == "gmean": - from scipy.stats import gmean - expected_combined_kt_cell0 = gmean(kt_cell0, axis=0) - else: - # Get the numpy/numpy.ma function (e.g., np.mean, np.max) - np_fcn = MULTI_PLASMID_COMBINE_FCNS[combine_fcn_name] - expected_combined_kt_cell0 = np_fcn(kt_cell0, axis=0) - - effective_kt = np.vstack([expected_combined_kt_cell0, kt_cell1]) - - # Calculate final expected CFU - initial_cfus = total_cfu0 * trans_freq - expected_cfu = initial_cfus[:, np.newaxis] * np.exp(effective_kt) - - result_cfu = _sim_growth( - transformants, trans_mask, trans_freq, genotype_vs_kt, total_cfu0, combine_fcn_name - ) +# ---------------------------------------------------------------------------- +# test _check_cell_components +# ---------------------------------------------------------------------------- - np.testing.assert_allclose(result_cfu, expected_cfu) +def test_check_cell_components_passes(base_config, base_phenotype_df): + _check_cell_components(_check_cf(dict(base_config)), base_phenotype_df) + + +def test_check_cell_components_needs_growth(base_config, base_phenotype_df): + cf = _check_cf(dict(base_config)) + cf.pop("growth") + with pytest.raises(ValueError, match="'growth' block"): + _check_cell_components(cf, base_phenotype_df) + + +def test_check_cell_components_needs_columns(base_config, base_phenotype_df): + cf = _check_cf(dict(base_config)) + with pytest.raises(ValueError, match="activity"): + _check_cell_components(cf, base_phenotype_df.drop(columns=["activity"])) + + +def test_check_cell_components_mismatch(base_config, base_phenotype_df): + cf = _check_cf(dict(base_config)) + df = base_phenotype_df.copy() + df.loc[0, "k_sel"] += 0.1 + with pytest.raises(ValueError, match="k_sel"): + _check_cell_components(cf, df) -def test_sim_growth_invalid_fcn(): - """ - Tests that the function raises a ValueError for an invalid combine function. - """ - # We can use dummy arrays as the function will fail before using them - dummy_array = np.array([[]]) - with pytest.raises(ValueError, match="not recognized"): - _sim_growth(dummy_array, dummy_array, dummy_array, - dummy_array, 0, "not_a_real_function") - # ---------------------------------------------------------------------------- # test _sim_sequencing @@ -923,7 +1011,7 @@ def test_simulate_library_group_integration(base_config: dict, lib_origin_dict, # Passed as dict ordered_genotypes, reads_per_sample, - base_config, + _check_cf(dict(base_config)), rng ) @@ -1011,7 +1099,7 @@ def test_simulate_library_group_handles_sparse_data( lib_origin_dict=lib_origin_dict, # Passed as dict ordered_genotypes=ordered_genotypes, reads_per_sample=reads_per_sample, - cf=base_config, + cf=_check_cf(dict(base_config)), rng=rng ) diff --git a/tests/tfscreen/simulate/test_simulate_cli.py b/tests/tfscreen/simulate/test_simulate_cli.py index add4365c..4017d0c7 100644 --- a/tests/tfscreen/simulate/test_simulate_cli.py +++ b/tests/tfscreen/simulate/test_simulate_cli.py @@ -491,7 +491,6 @@ def test_theta_rng_seed_rejected_as_unknown_key(tmp_path): "library_mixture": {}, "lib_assembly_skew_sigma": 0.0, "transformation_poisson_lambda": 1, - "multi_plasmid_combine_fcn": "gmean", "cfu0": 1e7, "tube_noise_sigma": 0.0, "total_num_reads": 1000, diff --git a/tests/tfscreen/simulate/test_thermo_to_growth.py b/tests/tfscreen/simulate/test_thermo_to_growth.py index d4b3a56b..89c31023 100644 --- a/tests/tfscreen/simulate/test_thermo_to_growth.py +++ b/tests/tfscreen/simulate/test_thermo_to_growth.py @@ -7,7 +7,8 @@ from tfscreen.simulate.thermo_to_growth import ( _assign_activity, _assign_dk_geno, - _apply_growth_params, + growth_rates, + growth_rate_one_condition, _sample_horseshoe_activity, _sample_hierarchical_activity, _theta_param_to_df, @@ -166,10 +167,18 @@ def test_assign_dk_geno_fixed_value_skips_rng(): # ---------------------------------------------------------------------------- -# test _apply_growth_params +# test growth_rates / growth_rate_one_condition # ---------------------------------------------------------------------------- -class TestApplyGrowthParams: +def _k(conds, theta, growth_params, activity=None, dk=None, theta_rescale="passthrough"): + n = len(theta) + activity = np.ones(n) if activity is None else activity + dk = np.zeros(n) if dk is None else dk + return growth_rates(np.asarray(conds), np.asarray(theta), activity, dk, + growth_params, theta_rescale) + + +class TestGrowthRates: @pytest.fixture def growth_params(self): @@ -179,17 +188,15 @@ def growth_params(self): } def test_single_condition_at_theta_zero(self, growth_params): - k = _apply_growth_params(np.array(["sel"]), np.array([0.0]), growth_params) + k = _k(["sel"], [0.0], growth_params) assert np.isclose(k[0], 0.005) def test_single_condition_at_theta_one(self, growth_params): - k = _apply_growth_params(np.array(["sel"]), np.array([1.0]), growth_params) + k = _k(["sel"], [1.0], growth_params) assert np.isclose(k[0], -0.01 + 0.005) def test_vector_mixed_conditions(self, growth_params): - conds = np.array(["sel", "pre", "sel"]) - theta = np.array([0.5, 0.3, 0.0]) - k = _apply_growth_params(conds, theta, growth_params) + k = _k(["sel", "pre", "sel"], [0.5, 0.3, 0.0], growth_params) expected = np.array([ -0.01 * 0.5 + 0.005, 0.002 * 0.3 + 0.020, @@ -198,35 +205,43 @@ def test_vector_mixed_conditions(self, growth_params): np.testing.assert_allclose(k, expected) def test_returns_numpy_array(self, growth_params): - k = _apply_growth_params(np.array(["pre"]), np.array([0.5]), growth_params) - assert isinstance(k, np.ndarray) + assert isinstance(_k(["pre"], [0.5], growth_params), np.ndarray) def test_missing_condition_raises(self, growth_params): with pytest.raises(KeyError): - _apply_growth_params(np.array(["nonexistent"]), np.array([0.5]), growth_params) + _k(["nonexistent"], [0.5], growth_params) def test_activity_scales_theta_contribution(self, growth_params): - conds = np.array(["sel", "sel"]) - theta = np.array([1.0, 1.0]) activity = np.array([0.5, 2.0]) - k = _apply_growth_params(conds, theta, growth_params, activity_array=activity) + k = _k(["sel", "sel"], [1.0, 1.0], growth_params, activity=activity) b = growth_params["sel"]["b"] m = growth_params["sel"]["m"] - np.testing.assert_allclose(k, b + activity * m * theta) + np.testing.assert_allclose(k, b + activity * m * 1.0) + + def test_dk_geno_is_added(self, growth_params): + k = _k(["sel", "pre"], [0.5, 0.5], growth_params, dk=np.array([0.01, -0.02])) + np.testing.assert_allclose(k, [-0.01*0.5 + 0.005 + 0.01, + 0.002*0.5 + 0.020 - 0.02]) + + def test_theta_rescale_applied(self, growth_params): + k = _k(["sel"], [0.5], growth_params, theta_rescale="logit") + # logit(0.5) = 0 + assert np.isclose(k[0], 0.005) + + def test_bad_theta_rescale_raises(self, growth_params): + with pytest.raises(ValueError, match="theta_rescale"): + _k(["sel"], [0.5], growth_params, theta_rescale="nope") - def test_activity_none_defaults_to_one(self, growth_params): - conds = np.array(["sel"]) - theta = np.array([0.5]) - k_default = _apply_growth_params(conds, theta, growth_params, activity_array=None) - k_explicit = _apply_growth_params(conds, theta, growth_params, - activity_array=np.array([1.0])) - np.testing.assert_allclose(k_default, k_explicit) + def test_one_condition_matches_growth_rates(self, growth_params): + theta = np.array([0.1, 0.4, 0.9]) + activity = np.array([1.0, 0.5, 2.0]) + dk = np.array([0.0, 0.01, -0.01]) + one = growth_rate_one_condition("sel", theta, activity, dk, growth_params) + many = growth_rates(np.array(["sel"]*3), theta, activity, dk, growth_params) + np.testing.assert_allclose(one, many) def test_zero_activity_returns_baseline(self, growth_params): - conds = np.array(["sel"]) - theta = np.array([0.7]) - k = _apply_growth_params(conds, theta, growth_params, - activity_array=np.array([0.0])) + k = _k(["sel"], [0.7], growth_params, activity=np.array([0.0])) assert np.isclose(k[0], growth_params["sel"]["b"]) From fc0f2b94d545139cb16dabf851d7ab6377b0201f Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 14:23:46 -0700 Subject: [PATCH 009/208] Carry congression purity as GrowthData.bulk_fraction; record 3.0 study One flag (congression_mask, with ln_cfu0_spiked_mask as its inverse) set both a genotype's congression purity and its ln_cfu0 prior class. Spiked-origin genotypes are mostly bulk cells (wt and the spiked singles are also encoded in the bulk sub-libraries), so the two need to be separate before the fit can mix clean and congressed cells. GrowthData gains bulk_fraction, a library-sized float per genotype (indexed by batch_idx). ModelOrchestrator._build_bulk_fraction takes it from the library composition table's bulk_fraction; __unknown__ counts as bulk (1.0, as the congression mask treats it), and any other genotype missing from the table, or a value outside [0, 1], raises. The legacy spiked_genotypes list gives 0 for spiked, 1 otherwise. ln_cfu0_spiked_mask still comes from in_spiked_origin, and congression_mask still drives today's correction. Not yet read by the model, so fits are unchanged. future/congression-physics-plan.md records the step 3 fit design and the step 3.0 study that shaped it. On simulator ground truth (real library design, lambda = 0.357, dk_geno spread scaled from the sim prior down to the measured ~0.001/min), the exact reads-level mixture was compared with candidate estimators: - today's fit rule (E[max] theta, own dk) is no better than no correction once dk varies; averaging theta cannot represent a mixture of growth rates - averaging the rate first works only for a narrow dk spread; the second-order cumulant fails on heavy dk tails - Monte Carlo with fixed co-resident sets is unbiased at every spread, with RMS falling as 1/sqrt(K); a pooled background is adequate - at the measured spread the whole effect is modest (0.05 RMS ln_cfu) The design: fixed per-genotype co-resident sets stratified by N, one loss per step, lambda entering through the weights, logit_norm retired. Also records the bench dk_geno measurement (eight genotypes, 0.024 +/- 0.001). Steps 3.0 and 3.1 of future/congression-physics-plan.md. Verified: new TestBulkFraction tests; full tests/tfscreen suite passes (4607 passed, 10 skipped); model and prediction smoke tests pass (25). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 8 + CLAUDE.md | 2 +- dev/congression_estimator_study.py | 337 ++++++++++++++++++++ future/congression-physics-plan.md | 148 ++++++++- src/tfscreen/tfmodel/data_class.py | 11 + src/tfscreen/tfmodel/model_orchestrator.py | 56 +++- tests/tfscreen/tfmodel/test_library_file.py | 72 +++++ 7 files changed, 616 insertions(+), 18 deletions(-) create mode 100644 dev/congression_estimator_study.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 582d46fb..e3836ff3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,14 @@ fall into two kinds: `{out_prefix}_run_status.csv`. No thresholds or grades. New console script: reinstall to register it. +- **`GrowthData.bulk_fraction`**: each genotype's fraction of cells from the + bulk (co-transformed) sub-libraries, built by `ModelOrchestrator` from the + library composition table (legacy `spiked_genotypes`: 0 for spiked, 1 + otherwise; `__unknown__` counts as bulk; a genotype missing from the table + is an error). This separates congression purity from the `ln_cfu0` prior + class, which previously shared one flag. Not yet used by the model, so fits + are unchanged. + ### Changed - **Co-transformed cells in the simulator now grow by cell-level physics.** diff --git a/CLAUDE.md b/CLAUDE.md index 29ee4c3b..0f5382de 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -182,7 +182,7 @@ Flow: `genetics.library_composition_table(library_config)` (`genetics/library_de A library-derived spiked genotype that has no growth data is **reported, not fatal** (spikes can drop out of a real dataset), unlike the hand-supplied `spiked_genotypes` list, which still raises. -`pool_fraction`/`bulk_fraction` are computed and snapshotted but **not yet consumed by the model** — `bulk_fraction` is the `f_g` the observable-level congression mixture will use (see `future/congression-physics-plan.md`), and the current backend still treats spiked as a binary via `congression_mask`/`ln_cfu0_spiked_mask`. +`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) but is **not yet read by the model** — it is the `f_g` of the observable-level congression mixture (step 3.3 of `future/congression-physics-plan.md`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the current backend still applies the binary `congression_mask` for the congression correction. ### Pre-fit model accounting (`tfmodel/model_stats.py`) diff --git a/dev/congression_estimator_study.py b/dev/congression_estimator_study.py new file mode 100644 index 00000000..e8e2058c --- /dev/null +++ b/dev/congression_estimator_study.py @@ -0,0 +1,337 @@ +""" +Step 3.0 of future/congression-physics-plan.md: how should the fit evaluate +the congressed class's E_S exp(G_{g,S}(t))? + +Ground truth comes from the simulator's own machinery (library_prediction on +examples/simulate/simulate_config.yaml, with the real design's +library_mixture and lambda = 0.357). For each bulk genotype g and each +growth condition (titrant, condition_pre/sel, t_pre, t_sel), the observable +(relative to ln_cfu0) is + + L_g = log[ w_clean exp(G_clean) + sum_o w_o E_{S~o} exp(G_{g,S}) ] + +with the cell rules of simulate/cell_rules.py (max theta, activity from the +max plasmid, dilution dk) and the same growth pipeline as the simulator +(growth_rate_one_condition + growth transition). Co-residents S: N ~ +Poisson(lambda) | N >= 1 plasmids drawn from origin o's plasmid +distribution (each sub-library is transformed separately). + +"Exact": N = 1 enumerated exactly over the origin's genotypes; N >= 2 by +Monte Carlo (16% of congressed cells at lambda = 0.357). + +Estimators of each congressed term (plugged into the same mixture): + rate_avg exp(E_S[G]) + cumulant2 exp(E_S[G] + Var_S[G]/2) + n1_only exact, but every congressed cell has exactly one co-resident + mcK K fixed co-resident sets per origin, shared by all focal + genotypes (common random numbers, as a fit would use) + pooled exact, but co-residents from the pooled bulk library +References: + current today's fit: one trajectory, theta -> E[max(theta_g, M)] over + an unweighted all-genotype background (spiked-origin genotypes + uncorrected), own dk and activity + none no congression at all (G_clean) + +Errors are in ln_cfu units (natural log), approx - exact. +""" + +import sys +import numpy as np +import pandas as pd + +from tfscreen.util.io import read_yaml +from tfscreen.simulate.library_prediction import library_prediction +from tfscreen.simulate.thermo_to_growth import growth_rate_one_condition +from tfscreen.simulate.selection_experiment import _compute_kt_arrays + +LAM = 0.357 +REAL_MIXTURE = {"single-1": 100, "single-2": 100, "double-1-2": 1000, + "spiked": 1} +DK_SCALES = [1.0, 0.3, 0.1, 0.03, 0.015, 0.0] +MC_N2_DRAWS = 400 # N >= 2 draws per (focal, origin) for "exact" +K_LIST = [1, 2, 4, 8, 16, 32] +K_REPEATS = 10 +DETECT = -7.0 # detectable: L_g - L_wt >= DETECT +SEED = 11 + +rng = np.random.default_rng(SEED) + +# --------------------------------------------------------------------------- +# Ground truth phenotypes and design +# --------------------------------------------------------------------------- + +cfg_path = sys.argv[1] +cf = read_yaml(cfg_path) +cf["transformation_poisson_lambda"] = LAM +cf["library_mixture"] = dict(REAL_MIXTURE) +cf["seed"] = SEED +library_df, phenotype_df, genotype_theta_df, parameters_df = library_prediction(cf)[:4] +growth_params = cf["growth"] +theta_rescale = cf.get("theta_rescale", "passthrough") +growth_transition = cf.get("growth_transition") + +genotypes = list(parameters_df["genotype"].astype(str)) +gidx = {g: i for i, g in enumerate(genotypes)} +G = len(genotypes) + +# theta per genotype per titrant point +th = genotype_theta_df.copy() +th["genotype"] = th["genotype"].astype(str) +titr = (th[["titrant_name", "titrant_conc"]].drop_duplicates() + .sort_values(["titrant_name", "titrant_conc"]).reset_index(drop=True)) +titr["t_idx"] = np.arange(len(titr)) +th = th.merge(titr, on=["titrant_name", "titrant_conc"]) +theta_gt = np.full((G, len(titr)), np.nan) +theta_gt[th["genotype"].map(gidx).to_numpy(), th["t_idx"].to_numpy()] = th["theta"].to_numpy() + +dk0 = parameters_df["dk_geno"].to_numpy(dtype=float) +act = parameters_df["activity"].to_numpy(dtype=float) + +# growth conditions +cond = (phenotype_df[phenotype_df["replicate"] == phenotype_df["replicate"].min()] + [["library", "titrant_name", "titrant_conc", "condition_pre", + "condition_sel", "t_pre", "t_sel"]] + .drop_duplicates().reset_index(drop=True)) +cond = cond.merge(titr, on=["titrant_name", "titrant_conc"]) +C = len(cond) +cond_t = cond["t_idx"].to_numpy() + +# per-origin plasmid distributions (design, no assembly skew) +lib = library_df.copy() +lib["genotype"] = lib["genotype"].astype(str) +lib["library_origin"] = lib["library_origin"].astype(str) +lib = lib[lib["genotype"].isin(gidx)] +origins = sorted(lib["library_origin"].unique()) +bulk_origins = [o for o in origins if o != "spiked"] +probs = {} +for o in origins: + sub = lib[lib["library_origin"] == o] + p = np.zeros(G) + np.add.at(p, sub["genotype"].map(gidx).to_numpy(), sub["weight"].to_numpy()) + probs[o] = p / p.sum() +mass = {o: REAL_MIXTURE[o] * probs[o] for o in origins} +total_mass = sum(mass.values()) +in_spiked = mass["spiked"] > 0 +pooled_bulk = sum(mass[o] for o in bulk_origins) +pooled_bulk = pooled_bulk / pooled_bulk.sum() + +p_cong = 1.0 - np.exp(-LAM) +# weight of each (genotype, bulk origin) congressed class, and clean +w_orig = {o: np.divide(mass[o], total_mass, out=np.zeros(G), where=total_mass > 0) * p_cong + for o in bulk_origins} +w_clean = 1.0 - sum(w_orig.values()) +f_g = np.divide(sum(mass[o] for o in bulk_origins), total_mass, + out=np.zeros(G), where=total_mass > 0) +present = total_mass > 0 + +# Poisson(lambda) | N >= 1 split into N = 1 and N >= 2 +p_n = np.array([np.exp(-LAM) * LAM**n / np.prod(np.arange(1, n + 1)) for n in range(0, 12)]) +p1 = p_n[1] / (1 - p_n[0]) +p_n2 = p_n[2:] / p_n[2:].sum() # distribution of N given N >= 2 +n2_values = np.arange(2, 12) + +# --------------------------------------------------------------------------- +# Growth +# --------------------------------------------------------------------------- + +def kt(theta_c, act_c, dk): + """theta_c, act_c: (..., C) over growth conditions; dk: (...). -> (..., C)""" + shape = theta_c.shape + out = np.empty(shape) + dk_b = np.broadcast_to(np.asarray(dk)[..., None], shape) + for c in range(C): + row = cond.iloc[c] + th_c = theta_c[..., c].ravel() + a_c = act_c[..., c].ravel() + d_c = dk_b[..., c].ravel() + k_pre = growth_rate_one_condition(row["condition_pre"], th_c, a_c, d_c, + growth_params, theta_rescale) + k_sel = growth_rate_one_condition(row["condition_sel"], th_c, a_c, d_c, + growth_params, theta_rescale) + n = len(th_c) + v = _compute_kt_arrays(k_pre, k_sel, np.full(n, float(row["t_pre"])), + np.full(n, float(row["t_sel"])), th_c, + np.full(n, row["condition_pre"], dtype=object), + growth_transition) + out[..., c] = v.reshape(shape[:-1]) + return out + + +def cell_G(focal, co_sets, dk): + """ + focal: (F,) genotype idx. co_sets: (F, D, Nmax) co-resident idx, -1 = none. + Returns G (F, D, C) for cells {focal} + co_sets under max theta / + activity-follows-theta / dilution dk. + """ + F, D, Nmax = co_sets.shape + slots = np.concatenate([np.broadcast_to(focal[:, None, None], (F, D, 1)), co_sets], axis=2) + valid = slots >= 0 + sl = np.where(valid, slots, 0) + th_s = theta_gt[sl][..., cond_t] # (F,D,P,C) + th_s = np.where(valid[..., None], th_s, -np.inf) + best = np.argmax(th_s, axis=2) # (F,D,C) + th_cell = np.take_along_axis(th_s, best[:, :, None, :], axis=2)[:, :, 0, :] + a_s = np.broadcast_to(act[sl][..., None], th_s.shape) + a_cell = np.take_along_axis(a_s, best[:, :, None, :], axis=2)[:, :, 0, :] + n_in = valid.sum(axis=2) + dk_cell = np.where(valid, dk[sl], 0.0).sum(axis=2) / n_in + return kt(th_cell, a_cell, dk_cell) + + +def logmeanexp(x, axis, w=None): + m = np.max(x, axis=axis, keepdims=True) + if w is None: + return (m + np.log(np.mean(np.exp(x - m), axis=axis, keepdims=True))).squeeze(axis) + return (m + np.log(np.sum(w * np.exp(x - m), axis=axis, keepdims=True))).squeeze(axis) + + +def draw_sets(p, F, D, n_values, n_probs, rng): + n = rng.choice(n_values, size=(F, D), p=n_probs) + nmax = int(n.max()) + co = rng.choice(G, size=(F, D, nmax), p=p) + co = np.where(np.arange(nmax)[None, None, :] < n[..., None], co, -1) + return co + + +def congressed_terms(focal, p, dk, rng, chunk=60): + parts = [_congressed_terms(focal[i:i + chunk], p, dk, rng) + for i in range(0, len(focal), chunk)] + return {k: np.concatenate([q[k] for q in parts]) for k in parts[0]} + + +def _congressed_terms(focal, p, dk, rng): + """ + For focal genotypes and one co-resident distribution p, return + dict of per-(focal, condition) log E exp(G) for exact / n1_only, and the + moments E[G], Var[G] (exact mixture of N=1 enumeration and N>=2 MC). + """ + F = len(focal) + support = np.where(p > 0)[0] + # N = 1: enumerate + co1 = np.broadcast_to(support[None, :, None], (F, len(support), 1)).copy() + G1 = cell_G(focal, co1, dk) # (F,S,C) + w1 = p[support][None, :, None] + log_e1 = logmeanexp(G1, 1, w1) + m1 = np.sum(w1 * G1, axis=1) + s1 = np.sum(w1 * G1**2, axis=1) + # N >= 2: Monte Carlo + co2 = draw_sets(p, F, MC_N2_DRAWS, n2_values, p_n2, rng) + G2 = cell_G(focal, co2, dk) + log_e2 = logmeanexp(G2, 1) + m2 = G2.mean(axis=1) + s2 = (G2**2).mean(axis=1) + exact = np.logaddexp(np.log(p1) + log_e1, np.log(1 - p1) + log_e2) + mean = p1 * m1 + (1 - p1) * m2 + var = p1 * s1 + (1 - p1) * s2 - mean**2 + return {"exact": exact, "n1_only": log_e1, "mean": mean, "var": var} + + +def mixture(clean_G, terms_by_origin, focal): + """log[w_clean e^Gclean + sum_o w_o e^{term_o}] for focal genotypes.""" + acc = np.log(w_clean[focal])[:, None] + clean_G + for o, term in terms_by_origin.items(): + wo = w_orig[o][focal] + with np.errstate(divide="ignore"): + acc = np.logaddexp(acc, np.log(wo)[:, None] + term) + return acc + + +# today's fit rule: E[max(theta_g, M)], M = max of Poisson(lambda) draws +# from the unweighted all-genotype theta distribution (per titrant point) +def current_theta(): + grid = np.linspace(0, 1, 2001) + out = theta_gt.copy() + for t in range(theta_gt.shape[1]): + pop = np.sort(theta_gt[present, t]) + F = np.searchsorted(pop, grid, side="right") / len(pop) + P_M_le = np.exp(LAM * (F - 1.0)) # includes N = 0 + tail = 1.0 - P_M_le # P(M > t) + cum = np.concatenate([[0], np.cumsum((tail[1:] + tail[:-1]) / 2 * np.diff(grid))]) + G_tail = cum[-1] - np.interp(theta_gt[:, t], grid, cum) + out[:, t] = theta_gt[:, t] + G_tail + return out + +theta_current = current_theta() + +# --------------------------------------------------------------------------- +# Run +# --------------------------------------------------------------------------- + +focal = np.where(present & (f_g > 0))[0] +wt = gidx["wt"] +rows = [] +by_time = [] +for s in DK_SCALES: + dk = s * dk0 + clean_G = kt(theta_gt[focal][:, cond_t], np.broadcast_to(act[focal][:, None], (len(focal), C)), + dk[focal]) + per_origin = {o: congressed_terms(focal, probs[o], dk, rng) for o in bulk_origins + if np.any(w_orig[o][focal] > 0)} + pooled = congressed_terms(focal, pooled_bulk, dk, rng) + + exact = mixture(clean_G, {o: t["exact"] for o, t in per_origin.items()}, focal) + est = { + "rate_avg": mixture(clean_G, {o: t["mean"] for o, t in per_origin.items()}, focal), + "cumulant2": mixture(clean_G, {o: t["mean"] + t["var"] / 2 for o, t in per_origin.items()}, focal), + "n1_only": mixture(clean_G, {o: t["n1_only"] for o, t in per_origin.items()}, focal), + "pooled": mixture(clean_G, {o: pooled["exact"] for o in per_origin}, focal), + "none": clean_G, + } + cur_theta = np.where(in_spiked[focal][:, None], theta_gt[focal], theta_current[focal]) + est["current"] = kt(cur_theta[:, cond_t], np.broadcast_to(act[focal][:, None], (len(focal), C)), + dk[focal]) + for K in K_LIST: + errs = [] + for r in range(K_REPEATS): + terms = {} + for o in per_origin: + co = draw_sets(probs[o], 1, K, np.arange(1, 12), + p_n[1:] / p_n[1:].sum(), rng) + co = np.broadcast_to(co, (len(focal),) + co.shape[1:]).copy() + terms[o] = logmeanexp(cell_G(focal, co, dk), 1) + errs.append(mixture(clean_G, terms, focal) - exact) + est[f"mc{K}"] = errs # list of repeats + + # detectable: relative to wt's exact observable in the same condition + wt_pos = np.where(focal == wt)[0] + ref = exact[wt_pos[0]] if len(wt_pos) else np.median(exact, axis=0) + detect = (exact - ref[None, :]) >= DETECT + + for name, val in est.items(): + reps = val if isinstance(val, list) else [val - exact] + for subset, mask in (("all", np.ones_like(detect)), ("detectable", detect)): + e = np.concatenate([r[mask] for r in reps]) + rows.append({"dk_scale": s, "estimator": name, "subset": subset, + "rms": np.sqrt(np.mean(e**2)), + "mean": np.mean(e), + "p95_abs": np.quantile(np.abs(e), 0.95), + "max_abs": np.max(np.abs(e)), + "n": e.size}) + for c in range(C): + e = np.concatenate([r[detect[:, c], c] for r in reps]) + if e.size: + by_time.append({"dk_scale": s, "estimator": name, + "library": cond.loc[c, "library"], + "t_sel": cond.loc[c, "t_sel"], + "rms": np.sqrt(np.mean(e**2))}) + + # size of the congression effect itself (exact vs none), detectable + print(f"dk_scale={s}: done", flush=True) + +res = pd.DataFrame(rows) +res.to_csv("study_summary.csv", index=False) +bt = (pd.DataFrame(by_time).groupby(["dk_scale", "estimator", "library", "t_sel"]) + ["rms"].mean().reset_index()) +bt.to_csv("study_by_time.csv", index=False) + +pd.set_option("display.width", 200) +print(f"\n{len(focal)} bulk genotypes x {C} conditions; lambda={LAM}; " + f"dk_geno SD (scale 1) = {np.std(dk0[present]):.4f}/min") +print(res[res.subset == "detectable"].pivot_table(index="estimator", columns="dk_scale", + values="rms").round(3).to_string()) +print("\np95 |error| (detectable)") +print(res[res.subset == "detectable"].pivot_table(index="estimator", columns="dk_scale", + values="p95_abs").round(3).to_string()) +print("\nmean error (detectable)") +print(res[res.subset == "detectable"].pivot_table(index="estimator", columns="dk_scale", + values="mean").round(3).to_string()) diff --git a/future/congression-physics-plan.md b/future/congression-physics-plan.md index 5e17800a..5963a444 100644 --- a/future/congression-physics-plan.md +++ b/future/congression-physics-plan.md @@ -117,6 +117,9 @@ Provenance: user, 2026-09-13, unless noted. and checked by sensitivity, not fit. - **Spiked and library copies are indistinguishable** in this dataset. Future runs will give spikes distinct codons. +- **dk_geno spread is tight in this library** (bench, 2026-09-23): monoculture + growth rates of eight genotypes, chosen to be biased toward expected poor + growers, were 0.024 +/- 0.001. Not guaranteed for other libraries. - **Overnight outgrowth does not shift the clean/congressed class weights** (user, 2026-09-23). The mixture weights `w_clean`/`w_congressed` are the split at transformation (`f_g`, lambda), but the mixture needs the split at @@ -238,6 +241,58 @@ existing spiked/bulk prior on it; carry purity in `f_g`. Genotypes can't simply be removed from `--spiked`, because their abundance really is far higher than the bulk's. +### Fit design (step 3) + +Agreed 2026-09-23 (user). Today's fit replaces a bulk genotype's theta by +`E[max]` over co-residents and grows one trajectory with the genotype's own +dk, i.e. it averages theta over the genotype's cells where the reads average +`exp(ln_cfu)`. The replacement: + +``` +ln_cfu_g(t) = ln_cfu0_g + logsumexp_c [ log w_{g,c} + G_{g,c}(t) ] + delta_sample +``` + +- **Classes c.** *Clean*: the genotype's own theta, activity and dk. + *Congressed*: the genotype plus co-residents; cell theta and activity from + the theta rule (max), dk from the dk rule (dilution), matching the + simulator (`simulate/cell_rules.py`). +- **Weights.** `w_cong = f_g * (1 - exp(-lambda))`, `w_clean = 1 - w_cong`; + time-independent. `f_g` is `bulk_fraction` from the library table. +- **G** is each class's whole trajectory through the existing pipeline + (`theta_rescale` -> `calculate_growth` -> `growth_transition`) over pre and + selection growth. Classes go on a new leading axis; the growth and + transition components are elementwise and should broadcast (verify). +- **Unchanged:** `ln_cfu0`, `delta_sample`, growth noise, presplit, + base_growth, binding. +- **`congression_mask` is split.** Purity -> `f_g`; the `ln_cfu0` prior + class -> `in_spiked_origin` (spikes really are far more abundant). Legacy + `spiked_genotypes` -> `f_g = 0` for spiked, 1 otherwise. +- **Co-resident background** needs the full-population theta (exists) and + dk (new), mini-batch safe, with external references for prediction. + Pooled vs per-origin background is decided by 3.0 (each sub-library is + transformed separately, so a single's co-residents come from the single + library and a double's from the double library). +- **`theta_growth_noise`** acts on the genotype's own theta before classes + are built; co-residents use noiseless population values. +- **lambda** stays a latent with the measured prior; it now enters the + weights as well as the co-resident draws. +- **Estimator (from 3.0; user, 2026-09-23): fixed Monte Carlo quadrature.** + Before fitting, draw once, per genotype, K co-resident sets from the pooled + bulk composition (`pool_fraction * bulk_fraction`), stratified by count: + K_1 sets with N = 1, K_2 with N = 2, K_3 with N = 3 (e.g. 12 / 3 / 1; N >= 4 + is about 0.3% of congressed cells at lambda = 0.357 and is dropped). The sets + are integer indices stored with the data and never redrawn. Each step builds + 1 + K cells per genotype from the *current* parameters (focal and + co-resident theta/activity/dk looked up by index), weights set k by + `w_cong * P(N = n_k | N >= 1; lambda) / K_{n_k}` so lambda stays + differentiable, and evaluates the likelihood once. Per-genotype sets + (rather than one shared set) keep the quadrature errors independent across + genotypes, so they do not push shared parameters (k, m, lambda) in a common + direction. Redrawing every step is rejected: the log of a fresh K-sample + mean is biased low and adds gradient noise. K is configurable (default 16). +- **Components.** Keep `single` and `empirical`; retire `logit_norm` (a + parametric theta background with no dk counterpart). + ### Binding data stays uncongressed `congression_mask` already acts only on the growth theta path @@ -319,22 +374,83 @@ checked with `tfs-summarize-calibration`. TF activity follows the theta rule: it comes from the plasmid that sets theta (user, 2026-09-23). Revisit in step 4, where a partition-function theta rule would put activity into the plasmid weights. -3. **Fit: observable-level mixture.** Breaking change. - - [ ] Clean/congressed log-sum-exp mixture in the growth observation, over - each class's whole pre + selection trajectory through - `growth_transition`. - - [ ] Consume `bulk_fraction` as `f_g`; retire `congression_mask`. Keep the - spiked/bulk `ln_cfu0` prior class as its own concept. - - [ ] Dilution dk with a full-population dk background (mini-batch safe; - external reference for prediction). - - [ ] Place `theta_growth_noise` / `theta_rescale` per class. - - [ ] Check whether `exp(E[k] t)` is an adequate approximation. - - [ ] Update the other users of the congression operator: - `analysis/prediction.py`, `genotype_fit/congression.py` (Stage 1.5 of - `tfs-fit-genotypes` / `tfs-build-empirical`), - `simulate/transformation_lam_output.py`. - - [ ] Calibrate against step 2's simulations (current max theta as a - placeholder). +3. **Fit: observable-level mixture.** Design agreed 2026-09-23 (see "Fit + design (step 3)"). 3.0 runs alongside 3.1/3.2; only 3.3's estimator + waits on it. 3.1, 3.2 and 3.4 are behavior-preserving commits; 3.3 is the + breaking one. + - [x] **3.0 Numerical study** (no fitting), 2026-09-23. Ground truth from + `library_prediction` on `examples/simulate/simulate_config.yaml` (843 + genotypes, thermo theta prior, memory growth transition, 48 growth + conditions, t_sel 95 to 200 min) with the real design's + `library_mixture` and lambda = 0.357, and the step 2 cell rules. "Exact" + `E_S exp(G)`: N = 1 enumerated over the co-resident library, N >= 2 by + Monte Carlo. dk_geno deviations scaled by s (sim prior at s = 1: SD + 0.068/min, 5th to 95th percentile -0.13 to 0.014/min). Error = approx - + exact `ln_cfu`, RMS over genotype x condition cells within 7 ln units of + wt (detectable): + + | estimator | s = 0 | s = 0.015 | s = 0.03 | s = 0.1 | s = 0.3 | s = 1 | + |---|---|---|---|---|---|---| + | no congression | 0.041 | 0.053 | 0.097 | 0.287 | 0.758 | 1.507 | + | today's fit rule | 0.019 | 0.041 | 0.093 | 0.293 | 0.770 | 1.524 | + | `exp(E_S[G])` | 0.006 | 0.006 | 0.008 | 0.036 | 0.206 | 1.086 | + | `E[G] + Var[G]/2` | 0.000 | 0.000 | 0.001 | 0.025 | 0.509 | 12.6 | + | N = 1 only (exact) | 0.003 | 0.004 | 0.010 | 0.030 | 0.080 | 0.127 | + | MC, K = 4 | 0.016 | 0.016 | 0.032 | 0.072 | 0.181 | 0.379 | + | MC, K = 16 | 0.008 | 0.011 | 0.010 | 0.028 | 0.072 | 0.187 | + | MC, K = 32 | 0.005 | 0.006 | 0.010 | 0.019 | 0.064 | 0.142 | + | pooled background | 0.002 | 0.002 | 0.002 | 0.004 | 0.008 | 0.024 | + + s = 0.015 is the measured regime for the current library (dk SD about + 0.001/min; see "Biology and assumptions"). + + Findings: + - The congression effect is large once dk varies (0.29 to 1.5 ln units + RMS), and **today's fit rule is no better than no correction** at any + s > 0: averaging theta cannot represent a mixture of growth rates. + - Averaging the rate first is adequate only for a narrow dk spread + (s <= 0.1) and worsens with time; the second-order cumulant fails + (heavy dk tails). + - Monte Carlo with K fixed co-resident sets (common random numbers, + shared by all genotypes) has near-zero mean error at every s, and its + RMS falls roughly as 1/sqrt(K). This is the only estimator that holds + across the dk range. + - **Pooled background is fine** (<= 0.024): no per-origin backgrounds + needed. Caveat: in the sim prior, singles and doubles have similar + theta/dk distributions; real doubles may be more often broken. + - N >= 2 matters little but not nothing (N = 1 only: 0.13 at s = 1); + Monte Carlo covers it at no extra cost. + - **In the measured regime (s ~ 0.015) the whole effect is modest**: + 0.053 RMS, 0.105 p95 (comparable to per-point `ln_cfu` noise, but + systematic), and today's rule removes only about a quarter of it. Every + estimator except small-K MC is accurate there. We still build MC + (decision 2026-09-23): tight dk is not guaranteed for other libraries, + and K is a knob. + Script: `dev/congression_estimator_study.py` (argument: a simulate + config). + - [x] **3.1 Plumbing.** Done 2026-09-23: `GrowthData.bulk_fraction`, + `ModelOrchestrator._build_bulk_fraction`; `congression_mask` still + drives today's correction until 3.3. `f_g` (from `bulk_fraction`) and the `ln_cfu0` + prior class (from `in_spiked_origin`) as separate `GrowthData` fields, + built by the orchestrator from the library table or the legacy + `spiked_genotypes` list (spiked -> `f_g = 0`, others 1). No behavior + change: fits identical. + - [ ] **3.2 Full-population dk_geno access** (API only), mirroring + `population_theta`: mini-batch safe, with an external reference for + prediction. Identical fits. + - [ ] **3.3 Mixture.** Class axis ahead of the 7-D growth layout; per-class + theta rescale, `calculate_growth`, `growth_transition`; logsumexp mix + with `log w`. New transformation-component interface returning classes + `(theta, activity, dk, log w)`. `single` = one class of weight 1 and must + reproduce today's `single` fits exactly. Congressed-class estimator from + 3.0; checked against brute-force MC on toy data. Retire `logit_norm`. + - [ ] **3.4 Other consumers.** `analysis/prediction.py`, lambda extraction + (`simulate/transformation_lam_output.py`), `genotype_fit/congression.py` + (Stage 1.5 of `tfs-fit-genotypes` / `tfs-build-empirical`), and + `tfs-summarize-calibration` strata by `bulk_fraction` instead of + spiked/bulk origin. + - [ ] **3.5 Calibration.** Step 2 simulator vs the new fit, with + `tfs-summarize-calibration`; watch bulk genotypes without binding data. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index 89c3daad..87734355 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -65,6 +65,17 @@ class GrowthData: ln_cfu0_library_masks: Any = field(default=None) num_ln_cfu0_library_classes: int = field(pytree_node=False, default=1) + # Float array, shape (num_genotype,): the fraction of each genotype's + # cells that come from the bulk (co-transformed) sub-libraries, in + # [0, 1]. 0 = pure monoclonal spike, 1 = pure bulk. This is a genotype's + # congression *purity*, kept separate from its ln_cfu0 prior class + # (ln_cfu0_spiked_mask), which it no longer shares a flag with. Built by + # ModelOrchestrator from the library composition table's bulk_fraction + # (legacy spiked_genotypes: 0 for spiked, 1 otherwise). Library-sized; + # consumers index it with batch_idx. Not yet used by the model -- see + # future/congression-physics-plan.md, step 3.3. + bulk_fraction: Any = field(default=None) + growth_shares_replicates: bool = field(pytree_node=False, default=False) # Optional mutation-decomposition matrices (set when using *_mut_decomp components). diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index 50a6e144..c6b84ba6 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -1039,6 +1039,8 @@ def _initialize_data(self): spiked_idx = np.where(np.isin(genotype_names,self._spiked_genotypes))[0] mask[spiked_idx] = False + bulk_fraction = self._build_bulk_fraction(mask) + wt_mask = np.zeros(sizes["num_genotype"], dtype=bool) wt_mask[wt_loc[0]] = True @@ -1062,7 +1064,8 @@ def _initialize_data(self): "congression_mask":jnp.array(mask,dtype=bool), "ln_cfu0_spiked_mask":jnp.array(~mask,dtype=bool), "ln_cfu0_wt_mask":jnp.array(wt_mask,dtype=bool), - "ln_cfu0_library_masks":jnp.array(_library_masks,dtype=bool)} + "ln_cfu0_library_masks":jnp.array(_library_masks,dtype=bool), + "bulk_fraction":jnp.array(bulk_fraction,dtype=float)} # Grab the titrant concentration and log_titrant_conc (1D array from # the tensor labels along dimension 6) @@ -1859,6 +1862,57 @@ def priors(self): """The PriorsClass Pytree holding all model priors.""" return self._priors + def _build_bulk_fraction(self, spiked_free_mask): + """ + Per-genotype bulk fraction (congression purity), aligned to the + growth tensor's genotype axis. + + With a library composition table, each genotype takes the table's + ``bulk_fraction``. The ``__unknown__`` bucket (reads that match no + designed genotype) is treated as bulk (1.0), as the congression mask + treats it; any other genotype missing from the table is an error. + Without a table, the legacy binary applies: 0 for spiked genotypes, + 1 otherwise. + + Parameters + ---------- + spiked_free_mask : numpy.ndarray + Boolean, shape (num_genotype,); False for spiked genotypes (the + legacy congression mask). + + Returns + ------- + numpy.ndarray + Float, shape (num_genotype,), values in [0, 1]. + """ + + if self._library_df is None: + return np.where(spiked_free_mask, 1.0, 0.0) + + genotype_idx = self.growth_tm.tensor_dim_names.index("genotype") + genotype_names = [str(g) for g in + self.growth_tm.tensor_dim_labels[genotype_idx]] + + table = self._library_df.set_index("genotype")["bulk_fraction"] + missing = [g for g in genotype_names + if g not in table.index and g != "__unknown__"] + if len(missing) > 0: + raise ValueError( + f"{len(missing)} genotypes in the growth data are missing from " + f"the library composition table ({self._library_file}), e.g. " + f"{missing[:5]}. Regenerate it with tfs-configure-model " + f"--library_config." + ) + + values = np.array([1.0 if g == "__unknown__" else float(table[g]) + for g in genotype_names]) + if np.any(~np.isfinite(values)) or np.any((values < 0) | (values > 1)): + raise ValueError( + f"bulk_fraction in {self._library_file} must be finite and in " + f"[0, 1] for every genotype with growth data." + ) + return values + @property def library_df(self): """ diff --git a/tests/tfscreen/tfmodel/test_library_file.py b/tests/tfscreen/tfmodel/test_library_file.py index b973ef36..8c9c2bab 100644 --- a/tests/tfscreen/tfmodel/test_library_file.py +++ b/tests/tfscreen/tfmodel/test_library_file.py @@ -158,6 +158,78 @@ def test_legacy_list_still_raises(self): spiked_genotypes=["A2L"]) +def _bulk_fraction(orchestrator): + idx = orchestrator.growth_tm.tensor_dim_names.index("genotype") + labels = list(orchestrator.growth_tm.tensor_dim_labels[idx]) + return dict(zip(labels, np.array(orchestrator.data.growth.bulk_fraction))) + + +class TestBulkFraction: + """Congression purity (bulk_fraction) is carried separately from the + ln_cfu0 prior class (ln_cfu0_spiked_mask).""" + + def test_from_library_table(self, library_file): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + bf = _bulk_fraction(orchestrator) + table = orchestrator.library_df.set_index("genotype")["bulk_fraction"] + for g in GENOTYPES: + assert bf[g] == pytest.approx(table[g]) + # wt and A2L are spiked *and* in the bulk; A2C is bulk only. + assert 0 < bf["wt"] < 1 + assert 0 < bf["A2L"] < 1 + assert bf["A2C"] == pytest.approx(1.0) + + def test_ln_cfu0_class_unchanged(self, library_file): + """Spiked-origin genotypes keep the spiked ln_cfu0 class even though + they are mostly bulk.""" + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + labels, _, spiked = _masks(orchestrator) + assert spiked[labels.index("wt")] and spiked[labels.index("A2L")] + assert not spiked[labels.index("A2C")] + + def test_legacy_spiked_list_is_binary(self): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + spiked_genotypes=["wt", "A2L"]) + assert _bulk_fraction(orchestrator) == {"wt": 0.0, "A2L": 0.0, + "A2C": 1.0} + + def test_no_spike_information_is_all_bulk(self): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df()) + assert set(_bulk_fraction(orchestrator).values()) == {1.0} + + def test_unknown_bucket_is_bulk(self, library_file): + growth_df = _growth_df(["wt", "A2C", "__unknown__"]) + orchestrator = ModelOrchestrator(growth_df, + _binding_df(["wt", "A2C"]), + library_file=library_file) + assert _bulk_fraction(orchestrator)["__unknown__"] == 1.0 + + def test_genotype_missing_from_table_raises(self, library_file): + table = pd.read_csv(library_file) + table[table["genotype"] != "A2C"].to_csv(library_file, index=False) + with pytest.raises(ValueError, match="missing from the library"): + ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + + def test_bad_value_raises(self, library_file): + table = pd.read_csv(library_file) + table.loc[table["genotype"] == "A2C", "bulk_fraction"] = 1.5 + table.to_csv(library_file, index=False) + with pytest.raises(ValueError, match=r"\[0, 1\]"): + ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + + def test_library_sized_under_batching(self, library_file): + from tfscreen.tfmodel.tensors.batch import get_batch + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + full = np.array(orchestrator.data.growth.bulk_fraction) + batch = get_batch(orchestrator.data, np.array([2, 0])) + np.testing.assert_array_equal(np.array(batch.growth.bulk_fraction), full) + + class TestMutualExclusion: def test_both_raises(self, library_file): From 18f5ed8dcfe8a8333d2df24ab1e85d90a5a2ac0b Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 14:56:47 -0700 Subject: [PATCH 010/208] Rename future/ to planning/; add planning/studies future/ was named for deferred ideas, but it now holds the active congression plan and is starting to hold the numerical work behind its decisions. planning/ covers ideas, active plans and the studies that inform them, kept together so they can link to each other. - git mv future planning; references updated in the plans, CLAUDE.md and two code comments (cell_rules.py, data_class.py). - planning/README.md describes ideas, plans and studies, with study conventions: one studies// directory with a README (question, decision fed, how to run, inputs, commit, results) plus the script; plan and study link both ways; outputs not committed; a study is frozen once a plan cites it; dev/ stays untracked scratch. - The step 3.0 estimator study moves from dev/ to planning/studies/congression-estimator/ (script defaults to the example simulate config) with a README holding its full results. Rerun on the current commit reproduces the recorded numbers exactly. - CLAUDE.md gains a short Planning section. No code behavior changes. Co-authored-by: Claude Opus 5.5 --- CLAUDE.md | 14 +- future/README.md | 60 -------- planning/README.md | 92 ++++++++++++ ...combination-specific-expression-effects.md | 2 +- .../congression-physics-plan.md | 19 ++- .../estimate-dk-alpha-by-varying-lambda.md | 2 +- ...te-spike-fraction-from-growth-curvature.md | 2 +- .../plasmid-segregation-low-copy.md | 2 +- .../studies/congression-estimator/README.md | 136 ++++++++++++++++++ .../studies/congression-estimator/study.py | 7 +- 10 files changed, 259 insertions(+), 77 deletions(-) delete mode 100644 future/README.md create mode 100644 planning/README.md rename {future => planning}/combination-specific-expression-effects.md (96%) rename {future => planning}/congression-physics-plan.md (97%) rename {future => planning}/estimate-dk-alpha-by-varying-lambda.md (97%) rename {future => planning}/estimate-spike-fraction-from-growth-curvature.md (97%) rename {future => planning}/plasmid-segregation-low-copy.md (97%) create mode 100644 planning/studies/congression-estimator/README.md rename dev/congression_estimator_study.py => planning/studies/congression-estimator/study.py (97%) diff --git a/CLAUDE.md b/CLAUDE.md index 0f5382de..38869998 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -182,7 +182,7 @@ Flow: `genetics.library_composition_table(library_config)` (`genetics/library_de A library-derived spiked genotype that has no growth data is **reported, not fatal** (spikes can drop out of a real dataset), unlike the hand-supplied `spiked_genotypes` list, which still raises. -`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) but is **not yet read by the model** — it is the `f_g` of the observable-level congression mixture (step 3.3 of `future/congression-physics-plan.md`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the current backend still applies the binary `congression_mask` for the congression correction. +`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) but is **not yet read by the model** — it is the `f_g` of the observable-level congression mixture (step 3.3 of `planning/congression-physics-plan.md`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the current backend still applies the binary `congression_mask` for the congression correction. ### Pre-fit model accounting (`tfmodel/model_stats.py`) @@ -399,6 +399,18 @@ overconfident ones, exactly what Axis 2 exists to detect. arguments are direct CSV paths (`rep1.csv rep2.csv`); a single argument is a manifest file (one path per line) *unless* it ends in `.csv`. +## Planning (`planning/`) + +Ideas, active plans and studies live in `planning/` (called `future/` before +2026-09-23); `planning/README.md` has the conventions. Ideas and plans are one +Markdown file each with a YAML header whose `status` (`idea`/`active`/ +`promoted`/`dropped`/`done`) tells them apart. An active plan keeps its step +list current. Studies live in `planning/studies//` (a `README.md` with +question, decision fed, how to run, inputs, commit and results, plus the +script); once a plan cites a study it is frozen. `dev/` is untracked scratch; +anything a plan cites moves into `planning/studies/`. The active plan is +`planning/congression-physics-plan.md`. + ## YAML Standards All YAML files in this codebase follow these conventions. Apply them when creating or modifying any YAML file. diff --git a/future/README.md b/future/README.md deleted file mode 100644 index 68e67bc0..00000000 --- a/future/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# future/ - -Ideas and tasks that matter but are deliberately out of scope for current -work. Each file is one idea. Filing an idea here means "we decided not to do -this now," not "we will do this." - -The directory also holds the few agreed multi-step plans that are being -worked now (`status: active`). Keeping them next to the ideas they spin off -means an idea's `related` link and a plan's step list can point at each other. - -## Why a directory and not issues - -GitHub issues are the usual home for a backlog, but they live outside the -repository: they aren't versioned with the code they describe, can't be read -offline, and can't be read by tools working in a checkout. These files are -plain Markdown with a small YAML header, so both people and scripts can list -and filter them. - -## File format - -Name files with short kebab-case slugs (`estimate-dk-alpha-by-varying-lambda.md`). -Start each file with this header: - -```yaml ---- -title: One-line name of the idea -status: idea # idea | active | promoted | dropped | done -filed: 2026-09-13 # date filed (YYYY-MM-DD) -area: tfmodel # tfmodel | simulate | analysis | process_raw | experiment | docs -revisit_when: >- - The condition under which this becomes worth doing. -related: # repo paths or other future/ files; may be empty - - src/tfscreen/simulate/selection_experiment.py ---- -``` - -Then the body, with these sections (an `active` plan may use its own -structure, such as assumptions, decisions and ordered steps): - -- **Context:** what we were doing when the idea came up. -- **Idea:** what to do. -- **Why not now:** the reason it was deferred. -- **What it would take:** rough scope, dependencies, open questions. - -## Lifecycle - -- `idea`: filed and waiting. -- `active`: an agreed plan being worked now. Keep its step list current. -- `done`: an active plan that is finished. Add a line saying where the result - lives. -- `promoted`: work started. Add a line saying where it went (branch, changelog - entry, plan). Keep the file as a record. -- `dropped`: decided against. Add a line saying why. Keep the file so the idea - isn't re-proposed without that context. - -To list open ideas: - -```bash -grep -l "^status: idea" future/*.md -``` diff --git a/planning/README.md b/planning/README.md new file mode 100644 index 00000000..4ed71505 --- /dev/null +++ b/planning/README.md @@ -0,0 +1,92 @@ +# planning/ + +Three kinds of things live here, kept together so they can link to each +other: + +- **Ideas** (`status: idea`): tasks that matter but are deliberately out of + scope for current work. Filing an idea here means "we decided not to do + this now," not "we will do this." +- **Plans** (`status: active`): the few agreed multi-step plans being worked + now. Keeping them next to the ideas they spin off means an idea's `related` + link and a plan's step list can point at each other. +- **Studies** (`studies/`): the numerical or simulation work that answers a + question a plan or idea raised. See "Studies" below. + +Ideas and plans are one Markdown file each at the top level; the status in the +header tells them apart. (This directory was called `future/` until +2026-09-23.) + +## Why a directory and not issues + +GitHub issues are the usual home for a backlog, but they live outside the +repository: they aren't versioned with the code they describe, can't be read +offline, and can't be read by tools working in a checkout. These files are +plain Markdown with a small YAML header, so both people and scripts can list +and filter them. + +## File format + +Name files with short kebab-case slugs (`estimate-dk-alpha-by-varying-lambda.md`). +Start each file with this header: + +```yaml +--- +title: One-line name of the idea +status: idea # idea | active | promoted | dropped | done +filed: 2026-09-13 # date filed (YYYY-MM-DD) +area: tfmodel # tfmodel | simulate | analysis | process_raw | experiment | docs +revisit_when: >- + The condition under which this becomes worth doing. +related: # repo paths or other planning/ files; may be empty + - src/tfscreen/simulate/selection_experiment.py +--- +``` + +Then the body, with these sections (an `active` plan may use its own +structure, such as assumptions, decisions and ordered steps): + +- **Context:** what we were doing when the idea came up. +- **Idea:** what to do. +- **Why not now:** the reason it was deferred. +- **What it would take:** rough scope, dependencies, open questions. + +## Lifecycle + +- `idea`: filed and waiting. +- `active`: an agreed plan being worked now. Keep its step list current. +- `done`: an active plan that is finished. Add a line saying where the result + lives. +- `promoted`: work started. Add a line saying where it went (branch, changelog + entry, plan). Keep the file as a record. +- `dropped`: decided against. Add a line saying why. Keep the file so the idea + isn't re-proposed without that context. + +To list open ideas: + +```bash +grep -l "^status: idea" planning/*.md +``` + +## Studies + +A study answers one question that a plan or idea raised, and its result feeds +a decision. Each study gets its own directory, `studies//`, holding at +least: + +- `README.md` with: + - **Question** and the **decision it fed**, linking the plan step. + - **How to run** it, from a scratch directory. + - **Inputs**: repository paths only, with fixed seeds. + - **Commit** the recorded results were produced on. + - **Results**: the numbers the decision rests on. +- the script(s) that produce those results. + +Rules: + +- The plan records the decision and a short summary; the study README keeps + the full numbers. Link both ways. +- Generated outputs (CSVs, figures) are not committed unless small and cited; + the README's results are the record. +- Once a plan cites a study, freeze it. If the question changes, write a new + study rather than rewriting the old one, so the citation stays valid. +- `dev/` stays untracked scratch space. Anything a plan cites moves here. diff --git a/future/combination-specific-expression-effects.md b/planning/combination-specific-expression-effects.md similarity index 96% rename from future/combination-specific-expression-effects.md rename to planning/combination-specific-expression-effects.md index 9bd8947e..48f93cd6 100644 --- a/future/combination-specific-expression-effects.md +++ b/planning/combination-specific-expression-effects.md @@ -7,7 +7,7 @@ revisit_when: >- If double-transformation or native mass spec experiments show effects that depend on the specific pair of variants rather than on each variant alone. related: - - future/congression-physics-plan.md + - planning/congression-physics-plan.md --- **Context:** The congression plan assumes total repressor expression per cell diff --git a/future/congression-physics-plan.md b/planning/congression-physics-plan.md similarity index 97% rename from future/congression-physics-plan.md rename to planning/congression-physics-plan.md index 5963a444..ef79cc0a 100644 --- a/future/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -14,10 +14,10 @@ related: - src/tfscreen/tfmodel/genotype_fit/congression.py - src/tfscreen/simulate/transformation_lam_output.py - src/tfscreen/genetics/library_design.py - - future/estimate-dk-alpha-by-varying-lambda.md - - future/plasmid-segregation-low-copy.md - - future/combination-specific-expression-effects.md - - future/estimate-spike-fraction-from-growth-curvature.md + - planning/estimate-dk-alpha-by-varying-lambda.md + - planning/plasmid-segregation-low-copy.md + - planning/combination-specific-expression-effects.md + - planning/estimate-spike-fraction-from-growth-curvature.md --- ## Why @@ -107,11 +107,11 @@ Provenance: user, 2026-09-13, unless noted. it. - **Total repressor expression per cell does not depend on plasmid number.** Each variant is diluted by its share. Combination-specific effects on - expression are out of scope (`future/combination-specific-expression-effects.md`). + expression are out of scope (`planning/combination-specific-expression-effects.md`). - **Plasmids are high copy and assumed to persist without segregating** over the experiment (roughly 3 to 7 doublings). The next design moves to a low-copy plasmid, where segregation matters - (`future/plasmid-segregation-low-copy.md`). + (`planning/plasmid-segregation-low-copy.md`). - **The dataset has a single lambda** (0.3572) and is headed for publication. Parameters that only a lambda series could identify are set from biology and checked by sensitivity, not fit. @@ -168,7 +168,7 @@ dk_cell = -(1/alpha) * log sum_g x_g exp(-alpha * dk_g) `alpha -> 0` is dilution (share-weighted mean burden); `alpha -> inf` is dominance (the worst variant sets the cost). Alpha is set from biology with a -sensitivity check, not fit (`future/estimate-dk-alpha-by-varying-lambda.md`). +sensitivity check, not fit (`planning/estimate-dk-alpha-by-varying-lambda.md`). Under dilution the average effect is a uniform shrinkage of each genotype's dk toward the population mean, by `E[1/(1+N)] = (1 - exp(-lambda))/lambda` = 0.841 at lambda = 0.357, which the hierarchical dk_geno prior mostly absorbs. @@ -336,7 +336,7 @@ Record results here when they arrive. ## Steps Keep this list current. Work the steps in order and keep this conversation's -scope to them; anything else goes into its own `future/` file or task. +scope to them; anything else goes into its own `planning/` file or task. Each step from 1 on ends with a simulation and a fit that use the same rules, checked with `tfs-summarize-calibration`. @@ -426,8 +426,7 @@ checked with `tfs-summarize-calibration`. estimator except small-K MC is accurate there. We still build MC (decision 2026-09-23): tight dk is not guaranteed for other libraries, and K is a knob. - Script: `dev/congression_estimator_study.py` (argument: a simulate - config). + Study: `planning/studies/congression-estimator/`. - [x] **3.1 Plumbing.** Done 2026-09-23: `GrowthData.bulk_fraction`, `ModelOrchestrator._build_bulk_fraction`; `congression_mask` still drives today's correction until 3.3. `f_g` (from `bulk_fraction`) and the `ln_cfu0` diff --git a/future/estimate-dk-alpha-by-varying-lambda.md b/planning/estimate-dk-alpha-by-varying-lambda.md similarity index 97% rename from future/estimate-dk-alpha-by-varying-lambda.md rename to planning/estimate-dk-alpha-by-varying-lambda.md index e4951821..86024a89 100644 --- a/future/estimate-dk-alpha-by-varying-lambda.md +++ b/planning/estimate-dk-alpha-by-varying-lambda.md @@ -7,7 +7,7 @@ revisit_when: >- After the congression physics work settles on the soft-min dk_geno rule and the current single-lambda dataset is published. related: - - future/congression-physics-plan.md + - planning/congression-physics-plan.md - src/tfscreen/simulate/selection_experiment.py - src/tfscreen/tfmodel/generative/components/transformation/_congression.py --- diff --git a/future/estimate-spike-fraction-from-growth-curvature.md b/planning/estimate-spike-fraction-from-growth-curvature.md similarity index 97% rename from future/estimate-spike-fraction-from-growth-curvature.md rename to planning/estimate-spike-fraction-from-growth-curvature.md index afec9528..77e8b901 100644 --- a/future/estimate-spike-fraction-from-growth-curvature.md +++ b/planning/estimate-spike-fraction-from-growth-curvature.md @@ -7,7 +7,7 @@ revisit_when: >- If design-computed spike/bulk fractions (f_g) look wrong for real data, or after the observable-level mixture (congression plan step 3) is in place. related: - - future/congression-physics-plan.md + - planning/congression-physics-plan.md --- **Context:** In the congression plan, each genotype's cells mix clean and diff --git a/future/plasmid-segregation-low-copy.md b/planning/plasmid-segregation-low-copy.md similarity index 97% rename from future/plasmid-segregation-low-copy.md rename to planning/plasmid-segregation-low-copy.md index ae3a08b7..63fc668c 100644 --- a/future/plasmid-segregation-low-copy.md +++ b/planning/plasmid-segregation-low-copy.md @@ -7,7 +7,7 @@ revisit_when: >- When designing or analyzing the next experiment, which moves to a low-copy plasmid. related: - - future/congression-physics-plan.md + - planning/congression-physics-plan.md - src/tfscreen/simulate/selection_experiment.py --- diff --git a/planning/studies/congression-estimator/README.md b/planning/studies/congression-estimator/README.md new file mode 100644 index 00000000..32ba0fbc --- /dev/null +++ b/planning/studies/congression-estimator/README.md @@ -0,0 +1,136 @@ +# Congression estimator study + +**Question.** In the observable-level congression mixture, how should the fit +evaluate a genotype's congressed-cell term `E_S exp(G_{g,S}(t))`, the average +over random co-resident sets S of the congressed cells' exponentiated +log-growth? And do co-residents need per-origin backgrounds? + +**Decision it fed.** Step 3.0 of +[`planning/congression-physics-plan.md`](../../congression-physics-plan.md): +the fit uses fixed Monte Carlo quadrature (K per-genotype co-resident sets, +stratified by plasmid count, drawn once), with a pooled co-resident +background. See the plan's "Fit design (step 3)". + +## How to run + +From a scratch directory (outputs are written to the working directory): + +```bash +python /path/to/tfscreen/planning/studies/congression-estimator/study.py +``` + +An optional argument replaces the simulate config. Runtime is about 2.5 min +and peak memory about 1.3 GB. + +Outputs: `study_summary.csv` (one row per dk scale x estimator x subset) and +`study_by_time.csv` (RMS per growth condition and selection time). Not +committed. + +## Inputs + +- `examples/simulate/simulate_config.yaml` (default) for the library, theta + prior, growth conditions and growth transition: 843 genotypes, thermo theta + prior, memory growth transition, 48 growth conditions, t_sel 95 to 200 min. +- Overridden in the script: `library_mixture` = the real design + (single-1 100, single-2 100, double-1-2 1000, spiked 1), + `transformation_poisson_lambda` = 0.357, seed 11. +- Cell rules as in `simulate/cell_rules.py`: max theta, activity from the max + plasmid, dilution dk. + +## Method + +For each bulk genotype g and growth condition, the observable relative to +`ln_cfu0` is + +``` +L_g = log[ w_clean exp(G_clean) + sum_o w_o E_{S~o} exp(G_{g,S}) ] +``` + +with co-residents S drawn as N ~ Poisson(lambda) | N >= 1 plasmids from +sub-library o's plasmid distribution (each sub-library is transformed +separately). "Exact" enumerates N = 1 over every genotype in the sub-library +and uses Monte Carlo for N >= 2 (16% of congressed cells). dk_geno deviations +are scaled by s; at s = 1 (the sim prior) dk_geno has SD 0.068/min, with 5th +to 95th percentiles -0.13 and 0.014/min. s = 0.015 corresponds to the bench +measurement for the current library (SD about 0.001/min). + +Estimators of each congressed term, plugged into the same mixture: + +| name | estimator | +|---|---| +| `rate_avg` | `exp(E_S[G])` | +| `cumulant2` | `exp(E_S[G] + Var_S[G] / 2)` | +| `n1_only` | exact, but every congressed cell has exactly one co-resident | +| `mcK` | K fixed co-resident sets per sub-library, shared by all genotypes | +| `pooled` | exact, but co-residents from the pooled bulk library | +| `current` | today's fit: one trajectory, theta -> `E[max(theta_g, M)]` over an unweighted all-genotype background, own dk (reference) | +| `none` | no congression (reference) | + +Error = approximate minus exact `L_g`, in natural-log `ln_cfu` units, over +genotype x condition cells within 7 ln units of wt ("detectable"). `mcK` +pools 10 independent draw sets. + +## Commit + +Produced on `abec95f`; reproduced exactly on `fc0f2b9` (no simulator changes +in between). + +## Results + +RMS error (detectable): + +| estimator | s = 0 | s = 0.015 | s = 0.03 | s = 0.1 | s = 0.3 | s = 1 | +|---|---|---|---|---|---|---| +| none | 0.041 | 0.053 | 0.097 | 0.287 | 0.758 | 1.507 | +| current | 0.019 | 0.041 | 0.093 | 0.293 | 0.770 | 1.524 | +| rate_avg | 0.006 | 0.006 | 0.008 | 0.036 | 0.206 | 1.086 | +| cumulant2 | 0.000 | 0.000 | 0.001 | 0.025 | 0.509 | 12.599 | +| n1_only | 0.003 | 0.004 | 0.010 | 0.030 | 0.080 | 0.127 | +| mc1 | 0.032 | 0.043 | 0.049 | 0.104 | 0.391 | 1.113 | +| mc2 | 0.018 | 0.028 | 0.038 | 0.075 | 0.207 | 0.515 | +| mc4 | 0.016 | 0.016 | 0.032 | 0.072 | 0.181 | 0.379 | +| mc8 | 0.013 | 0.017 | 0.020 | 0.037 | 0.136 | 0.360 | +| mc16 | 0.008 | 0.011 | 0.010 | 0.028 | 0.072 | 0.187 | +| mc32 | 0.005 | 0.006 | 0.010 | 0.019 | 0.064 | 0.142 | +| pooled | 0.002 | 0.002 | 0.002 | 0.004 | 0.008 | 0.024 | + +95th percentile |error| (detectable): + +| estimator | s = 0 | s = 0.015 | s = 0.03 | s = 0.1 | s = 0.3 | s = 1 | +|---|---|---|---|---|---|---| +| none | 0.099 | 0.105 | 0.121 | 0.376 | 1.671 | 3.882 | +| current | 0.048 | 0.064 | 0.108 | 0.414 | 1.707 | 3.900 | +| rate_avg | 0.014 | 0.016 | 0.018 | 0.057 | 0.460 | 2.418 | +| mc16 | 0.021 | 0.028 | 0.020 | 0.044 | 0.147 | 0.391 | +| mc32 | 0.013 | 0.013 | 0.020 | 0.034 | 0.113 | 0.296 | +| pooled | 0.002 | 0.002 | 0.003 | 0.006 | 0.016 | 0.053 | + +Mean error (detectable) of `mcK` is within ±0.01 at s <= 0.1 and within ±0.09 +at s = 1, for every K >= 2; `rate_avg` is biased low (-0.15 at s = 0.3, +-0.76 at s = 1). + +Error grows with selection time. At s = 0.3, `rate_avg` RMS rises from 0.20 +to 0.31 over kanR t_sel 145 to 200 min, and `mc16` from 0.07 to 0.09. + +## Conclusions + +- Once dk varies, the congression effect is large (`none`), and today's fit + rule removes almost none of it: averaging theta cannot represent a mixture + of growth rates. +- `rate_avg` is adequate only for a narrow dk spread and worsens with time; + `cumulant2` fails on heavy dk tails. +- `mcK` has near-zero mean error at every spread, with RMS falling roughly as + 1/sqrt(K). It is the only estimator that holds across the dk range. +- A pooled co-resident background is adequate. Caveat: in the sim prior, + singles and doubles have similar theta/dk distributions; real doubles may be + more often broken. +- At the measured spread for the current library (s ~ 0.015), the whole effect + is modest (0.053 RMS, 0.105 p95) and every estimator except small-K MC is + accurate. + +## Limits + +- One simulated library (843 genotypes, 2 sites) and one theta prior. +- This study shares draw sets across genotypes; the adopted fit design uses + per-genotype sets, which gives the same per-genotype error with errors + independent across genotypes. diff --git a/dev/congression_estimator_study.py b/planning/studies/congression-estimator/study.py similarity index 97% rename from dev/congression_estimator_study.py rename to planning/studies/congression-estimator/study.py index e8e2058c..ef479e60 100644 --- a/dev/congression_estimator_study.py +++ b/planning/studies/congression-estimator/study.py @@ -1,5 +1,5 @@ """ -Step 3.0 of future/congression-physics-plan.md: how should the fit evaluate +Step 3.0 of planning/congression-physics-plan.md: how should the fit evaluate the congressed class's E_S exp(G_{g,S}(t))? Ground truth comes from the simulator's own machinery (library_prediction on @@ -60,7 +60,10 @@ # Ground truth phenotypes and design # --------------------------------------------------------------------------- -cfg_path = sys.argv[1] +# Default input: the repository's example simulate config. +_REPO = __import__("pathlib").Path(__file__).resolve().parents[3] +cfg_path = (sys.argv[1] if len(sys.argv) > 1 + else str(_REPO / "examples" / "simulate" / "simulate_config.yaml")) cf = read_yaml(cfg_path) cf["transformation_poisson_lambda"] = LAM cf["library_mixture"] = dict(REAL_MIXTURE) From 7b59d75fcdabeed85d98a1e72b0877762f5ee18a Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 14:58:06 -0700 Subject: [PATCH 011/208] cleanup commit. files should have gone in with: abec95f77c10a028dbeb41fe92bb18be2671bee8 --- src/tfscreen/simulate/cell_rules.py | 2 +- src/tfscreen/tfmodel/data_class.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tfscreen/simulate/cell_rules.py b/src/tfscreen/simulate/cell_rules.py index ad1f7a9a..0d2b5a1e 100644 --- a/src/tfscreen/simulate/cell_rules.py +++ b/src/tfscreen/simulate/cell_rules.py @@ -29,7 +29,7 @@ - ``dk_geno``: ``(num_cells, max_plasmids)`` - returns ``(num_cells,)``. -See ``future/congression-physics-plan.md`` for the physics and the planned +See ``planning/congression-physics-plan.md`` for the physics and the planned rules (partition-function theta, soft-min dk). """ diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index 87734355..1206596c 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -73,7 +73,7 @@ class GrowthData: # ModelOrchestrator from the library composition table's bulk_fraction # (legacy spiked_genotypes: 0 for spiked, 1 otherwise). Library-sized; # consumers index it with batch_idx. Not yet used by the model -- see - # future/congression-physics-plan.md, step 3.3. + # planning/congression-physics-plan.md, step 3.3. bulk_fraction: Any = field(default=None) growth_shares_replicates: bool = field(pytree_node=False, default=False) From d46af88de6c14b66a235a7b1ad0f0f969928c70d Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 15:26:12 -0700 Subject: [PATCH 012/208] Fix batch-order bug in mut activity and _simple theta; add order check The full-batch training index is binding-first and reshuffled every step, so at full batch it is a permutation of the library, not the identity. Three components returned library-ordered values without slicing them through batch_idx: - activity/hierarchical_mut and activity/horseshoe_mut sliced only when batch_size < num_genotype, so at full batch every bulk genotype got another genotype's activity. Fits using them without mini-batching should be rerun. - theta/_simple indexed its per-genotype theta by the batch-relative geno_theta_idx alone. The pre-fit uses it on a binding-only subset whose index is library order and never reshuffled, so pre-fit results are unaffected, but any other use would mis-order. All three now slice through batch_idx (model and guide). The shape-based batch-safety check could not see this class of bug, since every shape is right. New find_batch_order_mismatches / find_orchestrator_batch_order_mismatches (inference/batch_safety.py) trace two orderings of the full batch with the latents held fixed and check that growth_pred, theta_growth_pred, binding_pred and theta_binding_pred permute with the index. test_batch_safety.py runs it across the component registry, epistasis and binding-only variants; only noise/beta, the documented exception, is flagged. CLAUDE.md's component rules now require unconditional slicing through batch_idx; CHANGELOG updated. Verified: the new order tests fail on the old code for exactly the three components (5 failures) and pass with the fix; full tests/tfscreen suite passes (4657 passed, 10 skipped); prefit-calibration and model smoke tests pass (28). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 20 +++ CLAUDE.md | 2 +- .../components/activity/hierarchical_mut.py | 12 +- .../components/activity/horseshoe_mut.py | 12 +- .../generative/components/theta/_simple.py | 8 +- .../tfmodel/inference/batch_safety.py | 151 +++++++++++++++++- .../components/theta/test__simple.py | 24 ++- .../tfmodel/inference/test_batch_safety.py | 113 +++++++++++++ 8 files changed, 325 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3836ff3..ee27085d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -170,6 +170,26 @@ fall into two kinds: and `ln_cfu_0` change for any config with lambda > 0.** Growth itself (`_sim_growth`) is unchanged. +- **Batch-order bug in three more components.** `activity/hierarchical_mut` + and `activity/horseshoe_mut` sliced activity to the batch only when + `batch_size < num_genotype`, and `theta/_simple` indexed its per-genotype + theta by the batch-relative `geno_theta_idx` alone. The full-batch training + index is binding-first and reshuffled every step, so at full batch these + returned library-ordered values for reordered batch positions: bulk + genotypes got other genotypes' activity (or, for `_simple` with + per-genotype curves, theta). The shape-based batch-safety check could not + see it. All three now slice through `batch_idx`. Fits using + `hierarchical_mut`/`horseshoe_mut` activity without mini-batching should be + rerun. The pre-fit's `_simple` model contains only binding genotypes, whose + index is library order and never reshuffled, so pre-fit results are + unaffected. + - New `find_batch_order_mismatches` / + `find_orchestrator_batch_order_mismatches` in + `inference/batch_safety.py`: trace two orderings of the full batch with + the latents held fixed and check that the batch-positional predictions + follow the index. `test_batch_safety.py` runs it across the component + registry and the epistasis and binding-only variants. + ## [0.4.4] - 2026-09-22 A processing and bookkeeping release: two fixes in the read-counting and diff --git a/CLAUDE.md b/CLAUDE.md index 38869998..c19624e3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -142,7 +142,7 @@ The hierarchical Bayesian inference engine. Key files: 3. Register it in `tfmodel/generative/registry.py` under the appropriate category key 4. Add a test in `tests/tfscreen/tfmodel/components//` 5. For a new `condition_growth` component: make its per-condition prior loc/scale fields accept scalar-or-array (broadcast-then-index by the condition plate) and implement `get_scale_bounds()` so the pre-fit can pin its per-condition baselines — see **Per-condition growth priors** above. -6. Per-genotype latents must be **mini-batch safe**: sample them in a library-sized plate (`pyro.plate(f"{name}_genotype_plate", data.num_genotype)`), then slice with `[..., data.batch_idx]` whenever the value is library-sized (a smaller value is an already-sliced substitution from the posterior forward pass). Never size a latent's plate with `data.batch_size`, and do not wrap latent priors/guides in `scale_vector` (only the likelihood is scaled). A batch-sized latent silently aliases genotypes onto batch positions under every numpyro autoguide, including `AutoDelta` (MAP, pre-MAP, `tfs-prefit-calibration`) — even at full batch, because the full-batch index is binding-first and reshuffled each step. `inference/batch_safety.py` detects such sites by tracing at two batch sizes; `RunInference.run_optimization` runs that check before fitting with any autoguide and refuses an unsafe model, and `tests/tfscreen/tfmodel/inference/test_batch_safety.py` enforces it registry-wide. Known exception: `noise/beta`'s `{name}_dist` (its latent is the noisy θ itself). +6. Per-genotype latents must be **mini-batch safe**: sample them in a library-sized plate (`pyro.plate(f"{name}_genotype_plate", data.num_genotype)`), then slice with `[..., data.batch_idx]` whenever the value is library-sized (a smaller value is an already-sliced substitution from the posterior forward pass). Never size a latent's plate with `data.batch_size`, and do not wrap latent priors/guides in `scale_vector` (only the likelihood is scaled). A batch-sized latent silently aliases genotypes onto batch positions under every numpyro autoguide, including `AutoDelta` (MAP, pre-MAP, `tfs-prefit-calibration`) — even at full batch, because the full-batch index is binding-first and reshuffled each step. Slice **unconditionally**: never `if data.batch_size < data.num_genotype`, and never index a library-ordered array by the batch-relative `geno_theta_idx` alone (translate through `data.batch_idx[data.geno_theta_idx]`, the `hill_geno` pattern). At full batch the index is a permutation, not the identity, so skipping the slice pairs batch positions with the wrong genotypes while every shape stays right. `inference/batch_safety.py` checks both failure modes: `find_batch_dependent_latents` traces at two batch sizes (shape; `RunInference.run_optimization` runs it before fitting with any autoguide and refuses an unsafe model), and `find_batch_order_mismatches` traces two orderings of the full batch with the latents held fixed and checks that `growth_pred`/`theta_growth_pred`/`binding_pred`/`theta_binding_pred` permute with the index (order). `tests/tfscreen/tfmodel/inference/test_batch_safety.py` enforces both registry-wide. Known exception: `noise/beta`'s `{name}_dist` (its latent is the noisy θ itself). (This applies to `components/` categories. `generative/observe/` is not a `/` registry entry — see above.) diff --git a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py index 2a0a78bc..c819e191 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py +++ b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py @@ -49,7 +49,7 @@ def define_model(name: str, Returns ------- jnp.ndarray - Activity values broadcast to shape ``(1, 1, 1, 1, 1, 1, num_genotype)``. + Activity values for the batch's genotypes, shape ``(1, 1, 1, 1, 1, 1, batch_size)``. """ mut_nnz_mut_idx = jnp.array(data.mut_nnz_mut_idx) # COO row (mutation) mut_nnz_geno_idx = jnp.array(data.mut_nnz_geno_idx) # COO col (genotype) @@ -98,8 +98,9 @@ def define_model(name: str, pyro.deterministic(name, activity) - if data.batch_size < data.num_genotype: - activity = activity[data.batch_idx] + # activity is library-ordered; always slice to the batch's genotypes. + # The full-batch index is a reshuffled permutation, not the identity. + activity = activity[data.batch_idx] return activity[None, None, None, None, None, None, :] @@ -160,8 +161,9 @@ def guide(name: str, activity = jnp.clip(jnp.exp(log_activity), max=1e30) - if data.batch_size < data.num_genotype: - activity = activity[data.batch_idx] + # activity is library-ordered; always slice to the batch's genotypes. + # The full-batch index is a reshuffled permutation, not the identity. + activity = activity[data.batch_idx] return activity[None, None, None, None, None, None, :] diff --git a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py index c6304d4a..085d4c83 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py +++ b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py @@ -67,7 +67,7 @@ def define_model(name: str, Returns ------- jnp.ndarray - Activity values broadcast to shape ``(1, 1, 1, 1, 1, 1, num_genotype)``. + Activity values for the batch's genotypes, shape ``(1, 1, 1, 1, 1, 1, batch_size)``. """ mut_nnz_mut_idx = jnp.array(data.mut_nnz_mut_idx) # COO row (mutation) mut_nnz_geno_idx = jnp.array(data.mut_nnz_geno_idx) # COO col (genotype) @@ -127,8 +127,9 @@ def define_model(name: str, activity = jnp.clip(jnp.exp(log_activity), max=1e30) pyro.deterministic(name, activity) - if data.batch_size < data.num_genotype: - activity = activity[data.batch_idx] + # activity is library-ordered; always slice to the batch's genotypes. + # The full-batch index is a reshuffled permutation, not the identity. + activity = activity[data.batch_idx] return activity[None, None, None, None, None, None, :] @@ -215,8 +216,9 @@ def guide(name: str, activity = jnp.clip(jnp.exp(log_activity), max=1e30) - if data.batch_size < data.num_genotype: - activity = activity[data.batch_idx] + # activity is library-ordered; always slice to the batch's genotypes. + # The full-batch index is a reshuffled permutation, not the identity. + activity = activity[data.batch_idx] return activity[None, None, None, None, None, None, :] diff --git a/src/tfscreen/tfmodel/generative/components/theta/_simple.py b/src/tfscreen/tfmodel/generative/components/theta/_simple.py index 37940331..0bbec238 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/_simple.py +++ b/src/tfscreen/tfmodel/generative/components/theta/_simple.py @@ -209,7 +209,7 @@ def run_model(theta_param: ThetaParam, data: DataClass) -> jnp.ndarray: theta_param : ThetaParam Output of ``define_model`` / ``guide``. data : DataClass - Must expose ``geno_theta_idx``, ``titrant_conc``, and + Must expose ``batch_idx``, ``geno_theta_idx``, ``titrant_conc``, and ``scatter_theta``. Returns @@ -222,7 +222,11 @@ def run_model(theta_param: ThetaParam, data: DataClass) -> jnp.ndarray: """ # Subset on the genotype axis using the run-time genotype map. - theta_base = theta_param.theta[..., data.geno_theta_idx] + # theta is library-ordered: translate batch-relative geno_theta_idx to + # library indices through batch_idx (the hill_geno pattern). Indexing + # by geno_theta_idx alone reads library positions as batch positions, + # which is wrong whenever batch_idx is not the identity. + theta_base = theta_param.theta[..., data.batch_idx[data.geno_theta_idx]] # Map this experiment's concentrations onto the columns of theta_base. conc_idx = jnp.searchsorted(theta_param.concentrations, data.titrant_conc) diff --git a/src/tfscreen/tfmodel/inference/batch_safety.py b/src/tfscreen/tfmodel/inference/batch_safety.py index cb6d2c82..ed955d55 100644 --- a/src/tfscreen/tfmodel/inference/batch_safety.py +++ b/src/tfscreen/tfmodel/inference/batch_safety.py @@ -16,13 +16,24 @@ :func:`find_batch_dependent_latents` finds such sites by tracing the model at two different batch sizes: a correctly written latent has the same shape in both traces, while a batch-sized one changes shape. + +A library-sized latent can still be read in the wrong *order*: the full-batch +training index is binding-first and reshuffled every step (see +``ModelOrchestrator.get_random_idx``), so a component that returns +library-ordered values without slicing them by ``batch_idx`` (for example by +slicing only when ``batch_size < num_genotype``) pairs each batch position +with the wrong genotype. Shapes are right, so the shape check cannot see it. +:func:`find_batch_order_mismatches` catches it by tracing the model under two +orderings of the same genotypes, with the latents held fixed, and checking +that the batch-positional predictions permute with the index. """ import math import jax import jax.numpy as jnp -from numpyro.handlers import seed, trace +import numpy as np +from numpyro.handlers import seed, substitute, trace def _latent_shapes(model_fn, priors, data): @@ -150,3 +161,141 @@ def find_orchestrator_batch_dependent_latents(orchestrator): idx_a=jnp.arange(num_genotype), idx_b=jnp.arange(num_genotype - 1), ) + + +# Deterministic sites whose last axis is the batch's genotype positions. +_ORDER_SITES = ("growth_pred", "theta_growth_pred", + "binding_pred", "theta_binding_pred") + + +def find_batch_order_mismatches(model_fn, priors, full_data, get_batch, + idx_a, idx_b, sites=_ORDER_SITES, + rtol=1e-5, atol=1e-6): + """ + Find batch-positional predictions that do not follow the batch order. + + Traces the model with the genotype index ``idx_a``, then again with + ``idx_b`` (a reordering of the same genotypes) while substituting every + latent sampled in the first trace. With the latents fixed, the value a + genotype gets must not depend on where it sits in the batch: for each + site in ``sites`` whose last axis has one entry per batch position, the + ``idx_b`` trace must equal the ``idx_a`` trace reordered to ``idx_b``. + + Parameters + ---------- + model_fn : callable + Numpyro model taking ``data`` and ``priors`` keyword arguments. + priors : Any + Priors pytree passed through to ``model_fn``. + full_data : Any + Full (un-batched) data pytree. + get_batch : callable + ``get_batch(full_data, idx) -> batch_data``. + idx_a, idx_b : array-like of int + Two orderings of the same genotype indices. + sites : tuple of str, optional + Deterministic sites to compare. + rtol, atol : float, optional + Tolerances for the comparison. + + Returns + ------- + dict + Maps each mismatching site to the largest absolute difference. + Empty when every compared prediction follows the batch order. + + Raises + ------ + ValueError + If ``idx_a`` and ``idx_b`` are not reorderings of the same indices. + + Notes + ----- + A latent that is itself batch-positional (``noise/beta``'s + ``{name}_dist``) is substituted in ``idx_a`` order and will show up here + as a mismatch; it is the documented exception to batch safety. + """ + + idx_a = np.asarray(idx_a, dtype=int) + idx_b = np.asarray(idx_b, dtype=int) + if (idx_a.shape != idx_b.shape + or not np.array_equal(np.sort(idx_a), np.sort(idx_b))): + raise ValueError("idx_a and idx_b must be reorderings of the same " + "genotype indices.") + + data_a = get_batch(full_data, jnp.asarray(idx_a)) + data_b = get_batch(full_data, jnp.asarray(idx_b)) + + tr_a = trace(seed(model_fn, rng_seed=0)).get_trace(data=data_a, + priors=priors) + latents = {name: site["value"] for name, site in tr_a.items() + if site["type"] == "sample" + and not site.get("is_observed", False)} + tr_b = trace(substitute(seed(model_fn, rng_seed=0), + data=latents)).get_trace(data=data_b, + priors=priors) + + position_a = {int(g): i for i, g in enumerate(idx_a)} + order = np.array([position_a[int(g)] for g in idx_b]) + + found = {} + for name in sites: + if name not in tr_a or name not in tr_b: + continue + value_a = np.asarray(tr_a[name]["value"]) + value_b = np.asarray(tr_b[name]["value"]) + if value_a.ndim == 0 or value_a.shape[-1] != len(idx_a): + continue + expected = value_a[..., order] + if expected.shape != value_b.shape: + found[name] = float("inf") + continue + if not np.allclose(expected, value_b, rtol=rtol, atol=atol, + equal_nan=True): + diff = np.abs(np.nan_to_num(expected) - np.nan_to_num(value_b)) + found[name] = float(np.max(diff)) + return found + + +def find_orchestrator_batch_order_mismatches(orchestrator, seed_value=0): + """ + Run :func:`find_batch_order_mismatches` on a ``ModelOrchestrator``. + + Uses the full-batch training layout: the pinned binding genotypes first + (``batch_idx[:num_binding]``), then every other genotype. ``idx_a`` has + the others in library order, ``idx_b`` in a random order, as + ``get_random_idx`` produces each step. + + Parameters + ---------- + orchestrator : ModelOrchestrator + Any object exposing ``jax_model``, ``priors``, ``data`` (with + ``batch_idx``, ``num_binding`` and ``not_binding_idx``) and + ``get_batch``. + seed_value : int, optional + Seed for the reordering. + + Returns + ------- + dict + See :func:`find_batch_order_mismatches`. + """ + + data = orchestrator.data + pinned = np.asarray(data.batch_idx)[:data.num_binding] + rest = np.asarray(data.not_binding_idx) + if len(rest) < 2: + return {} + + shuffled = np.random.default_rng(seed_value).permutation(rest) + if np.array_equal(shuffled, rest): + shuffled = rest[::-1] + + return find_batch_order_mismatches( + orchestrator.jax_model, + orchestrator.priors, + orchestrator.data, + orchestrator.get_batch, + idx_a=np.concatenate([pinned, rest]), + idx_b=np.concatenate([pinned, shuffled]), + ) diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py b/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py index cda478a6..eff049fc 100644 --- a/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py +++ b/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py @@ -29,7 +29,8 @@ "scatter_theta", "geno_theta_idx", "titrant_conc", -]) + "batch_idx", +], defaults=(None,)) @pytest.fixture @@ -37,8 +38,8 @@ def mock_data(): """ Two titrants, three concentrations, four genotypes. - The simple theta component does not use batch_idx/scale_vector, so - those fields are intentionally omitted. + batch_idx is the identity, so geno_theta_idx selects library genotypes + directly. scale_vector is unused and omitted. """ return MockData( num_titrant_name=2, @@ -47,6 +48,7 @@ def mock_data(): scatter_theta=1, geno_theta_idx=jnp.array([1, 3], dtype=jnp.int32), titrant_conc=jnp.array([0.0, 1.0, 10.0]), + batch_idx=jnp.arange(4, dtype=jnp.int32), ) @@ -354,6 +356,7 @@ def test_extreme_theta_values_finite_mu(mock_data): scatter_theta=0, geno_theta_idx=jnp.array([0, 1], dtype=jnp.int32), titrant_conc=jnp.array([0.0, 1.0, 10.0]), + batch_idx=jnp.arange(2, dtype=jnp.int32), ) theta_param = define_model(name="x", data=data, priors=priors) @@ -446,6 +449,21 @@ def test_run_model_3d_slices_correct_genotypes(self, mock_data, mock_priors_3d): assert jnp.allclose(out[..., col], mock_priors_3d.theta_values[..., geno_idx]) + def test_run_model_3d_follows_batch_idx(self, mock_data, mock_priors_3d): + """ + With a non-identity batch_idx (the reshuffled full-batch training + index), batch position j must read genotype batch_idx[j], not + library genotype j. + """ + data = mock_data._replace(scatter_theta=0, + batch_idx=jnp.array([2, 0, 3, 1]), + geno_theta_idx=jnp.arange(4)) + theta_param = define_model(name="pg", data=data, priors=mock_priors_3d) + out = run_model(theta_param, data) + for pos, geno in enumerate([2, 0, 3, 1]): + assert jnp.allclose(out[..., pos], + mock_priors_3d.theta_values[..., geno]) + def test_run_model_3d_concentration_mapping(self, mock_data, mock_priors_3d): """Concentration remapping must work correctly with per-genotype theta.""" theta_param = define_model(name="pg", data=mock_data, priors=mock_priors_3d) diff --git a/tests/tfscreen/tfmodel/inference/test_batch_safety.py b/tests/tfscreen/tfmodel/inference/test_batch_safety.py index 43cbf118..05bce30a 100644 --- a/tests/tfscreen/tfmodel/inference/test_batch_safety.py +++ b/tests/tfscreen/tfmodel/inference/test_batch_safety.py @@ -16,7 +16,9 @@ from tfscreen.tfmodel.inference.batch_safety import ( find_batch_dependent_latents, + find_batch_order_mismatches, find_orchestrator_batch_dependent_latents, + find_orchestrator_batch_order_mismatches, orchestrator_latent_dimension, ) from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator @@ -254,6 +256,117 @@ def test_beta_growth_noise_is_batch_dependent(): assert found == {"theta_growth_noise_dist"} +# --------------------------------------------------------------------------- +# Batch order: predictions must follow batch_idx, not library order +# --------------------------------------------------------------------------- + +def _sliced_model(data, priors): + """Library-sized latent, sliced to the batch: correct.""" + with numpyro.plate("genotype_plate", data.num_genotype): + offset = numpyro.sample("offset", dist.Normal(0.0, 1.0)) + numpyro.deterministic("growth_pred", offset[data.batch_idx]) + + +def _unsliced_at_full_batch_model(data, priors): + """Slices only when mini-batching: wrong at a reordered full batch.""" + with numpyro.plate("genotype_plate", data.num_genotype): + offset = numpyro.sample("offset", dist.Normal(0.0, 1.0)) + if data.batch_size < data.num_genotype: + offset = offset[data.batch_idx] + numpyro.deterministic("growth_pred", offset) + + +def test_order_check_passes_sliced_model(): + found = find_batch_order_mismatches(_sliced_model, None, _toy_full_data(), + _toy_get_batch, jnp.arange(5), + jnp.array([0, 3, 1, 4, 2])) + assert found == {} + + +def test_order_check_flags_unsliced_model(): + found = find_batch_order_mismatches(_unsliced_at_full_batch_model, None, + _toy_full_data(), _toy_get_batch, + jnp.arange(5), + jnp.array([0, 3, 1, 4, 2])) + assert set(found) == {"growth_pred"} + assert found["growth_pred"] > 0 + + +def test_order_check_needs_reorderings(): + with pytest.raises(ValueError, match="reorderings"): + find_batch_order_mismatches(_sliced_model, None, _toy_full_data(), + _toy_get_batch, jnp.arange(5), + jnp.array([0, 1, 2, 3, 3])) + + +# The full-batch training index keeps the binding genotypes first and +# reshuffles the rest every step, so run at full batch (batch_size=None). +# beta *growth* theta noise is the documented exception (tested below). +@pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) +def test_component_predictions_follow_batch_order(axis, variant): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + **{axis: variant}, + **_VARIANT_KWARGS.get((axis, variant), {})) + found = find_orchestrator_batch_order_mismatches(orchestrator) + assert found == {}, ( + f"{axis}={variant}: predictions do not follow a reordered full " + f"batch (largest abs difference per site): {found}" + ) + + +@pytest.mark.parametrize("theta,activity", [ + ("hill_mut", "hierarchical_mut"), + ("hill_mut", "horseshoe_mut"), + ("thermo.O2_C4_K3_U0_a.PK", "horseshoe_geno"), +]) +def test_epistasis_predictions_follow_batch_order(theta, activity): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + theta=theta, + activity=activity, + epistasis=True) + assert find_orchestrator_batch_order_mismatches(orchestrator) == {} + + +@pytest.mark.parametrize("theta", ["hill_geno", "categorical_geno"]) +def test_binding_only_predictions_follow_batch_order(theta): + orchestrator = ModelOrchestrator(None, _BINDING_CSV, + binding_only=True, + theta=theta) + assert find_orchestrator_batch_order_mismatches(orchestrator) == {} + + +def test_simple_theta_per_genotype_follows_batch_order(): + """ + The pre-fit's _simple theta holds per-genotype, library-ordered curves. + It must read them through batch_idx, not by batch position. + """ + import numpy as np + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + theta="_simple") + g = orchestrator.data.growth + values = np.random.default_rng(0).uniform( + 0.05, 0.95, (g.num_titrant_name, g.num_titrant_conc, g.num_genotype)) + priors = orchestrator.priors + orchestrator._priors = priors.replace( + theta=priors.theta.replace(theta_values=jnp.asarray(values))) + assert find_orchestrator_batch_order_mismatches(orchestrator) == {} + + +def test_beta_growth_noise_is_batch_positional(): + """ + Documented exception: beta noise's latent is the noisy theta itself, one + draw per batch position, so it does not follow a reordering. The order + check must keep flagging it. + """ + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + theta_growth_noise="beta") + assert "growth_pred" in find_orchestrator_batch_order_mismatches(orchestrator) + + # --------------------------------------------------------------------------- # orchestrator_latent_dimension # --------------------------------------------------------------------------- From 4315be2d06f145c7903e283600880e5182509b0c Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 23 Sep 2026 22:36:16 +0000 Subject: [PATCH 013/208] Stop committing test reports and badges reports/ and docs/badges/ are regenerated by every run_all_tests.sh run and cluttered diffs (reports/flake.txt alone was 7 MB). Untrack and gitignore them; the script now writes everything, badges included, under reports/ and stops on the first failing step. README.rst gets the live GitHub Actions status badge for tests.yml instead of a committed SVG. Add .flake8 excluding .claude/ (agent worktrees), build and venv dirs: ~85% of flake.txt was lint of .claude/worktrees. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01MZqUx3DNWbnCRdrZK75ifz --- .flake8 | 11 + .gitignore | 4 + CHANGELOG.md | 7 + README.rst | 4 + docs/badges/coverage-badge.svg | 1 - docs/badges/tests-badge.svg | 1 - reports/flake.txt | 52088 ------------------------------- reports/junit/junit.xml | 1 - run_all_tests.sh | 34 +- 9 files changed, 41 insertions(+), 52110 deletions(-) create mode 100644 .flake8 delete mode 100644 docs/badges/coverage-badge.svg delete mode 100644 docs/badges/tests-badge.svg delete mode 100644 reports/flake.txt delete mode 100644 reports/junit/junit.xml diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..7e9ce2e9 --- /dev/null +++ b/.flake8 @@ -0,0 +1,11 @@ +[flake8] +exclude = + .git, + .claude, + __pycache__, + build, + dist, + docs/build, + *.egg-info, + .venv, + venv diff --git a/.gitignore b/.gitignore index 6321bc4b..103b692c 100644 --- a/.gitignore +++ b/.gitignore @@ -205,3 +205,7 @@ cython_debug/ marimo/_static/ marimo/_lsp/ __marimo__/ + +# Local test/lint/coverage output from run_all_tests.sh +reports/ +docs/badges/ diff --git a/CHANGELOG.md b/CHANGELOG.md index e3836ff3..ea10cd5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,6 +84,13 @@ fall into two kinds: ### Changed +- **Test reports and badges are no longer committed.** `reports/` and + `docs/badges/` are gitignored and untracked; `run_all_tests.sh` now writes + everything, badges included, under `reports/`, and stops on the first + failing step. `README.rst` shows the live GitHub Actions status badge for + `tests.yml` instead. A new `.flake8` excludes `.claude/` (agent worktrees), + build and venv directories, which made up most of `reports/flake.txt`. + - **Co-transformed cells in the simulator now grow by cell-level physics.** A cell carrying several plasmids used to get the min/max/mean/... of its plasmids' whole `k*t` (`multi_plasmid_combine_fcn`, per marker library). diff --git a/README.rst b/README.rst index e93afdff..543a6b37 100644 --- a/README.rst +++ b/README.rst @@ -2,6 +2,10 @@ tfscreen ======== +.. image:: https://github.com/harmsm/tfscreen/actions/workflows/tests.yml/badge.svg?branch=main + :target: https://github.com/harmsm/tfscreen/actions/workflows/tests.yml + :alt: Tests + `tfscreen` is a Python library for simulating and analyzing high-throughput screens of transcription factor (TF) function. It is designed to infer the energetic effects of mutations on conformations in the TF energy landscape — information that enables interpretable predictive models of how diff --git a/docs/badges/coverage-badge.svg b/docs/badges/coverage-badge.svg deleted file mode 100644 index 88ec1f61..00000000 --- a/docs/badges/coverage-badge.svg +++ /dev/null @@ -1 +0,0 @@ -coverage: 95.69%coverage95.69% \ No newline at end of file diff --git a/docs/badges/tests-badge.svg b/docs/badges/tests-badge.svg deleted file mode 100644 index 03f23f26..00000000 --- a/docs/badges/tests-badge.svg +++ /dev/null @@ -1 +0,0 @@ -tests: 4593tests4593 \ No newline at end of file diff --git a/reports/flake.txt b/reports/flake.txt deleted file mode 100644 index d7667f0f..00000000 --- a/reports/flake.txt +++ /dev/null @@ -1,52088 +0,0 @@ -./.claude/worktrees/adoring-moore-a3dd7e/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/__init__.py:19:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/__version__.py:5:16: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:31:69: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:208:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:209:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:215:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:259:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:268:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:268:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/counts_to_lncfu.py:272:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:75:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_counts_cli.py:79:44: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:77:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:78:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:79:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/process_raw/scripts/process_presplit_cli.py:86:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:76:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:91:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:102:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:255:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:256:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:257:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:258:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:259:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:260:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:283:59: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:284:58: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:285:60: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:286:63: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:287:55: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:288:60: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:289:59: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:290:63: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:291:70: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:292:55: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:293:70: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/configure_model_cli.py:295:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (17) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/dataframe/get_scaled_cfu.py:131:14: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:40:63: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:54:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:65:68: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:70:64: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:70:65: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:77:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:81:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:85:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:100:1: E266 too many leading '#' for block comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:101:53: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:47: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:213:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:221:73: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:30: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:239:53: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:240:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:247:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:249:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:256:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/analysis/test_prediction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:45: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:48: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:44: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:96:41: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:195:71: E203 whitespace before ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:196:1: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:283:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:296:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:299:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:40: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:55: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:74: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:40: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:55: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:74: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:49: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:41: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:56: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:75: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:34: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:54: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:41: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:56: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:75: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:330:76: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E117 over-indented -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:31: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:41: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:56: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:75: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:30: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:40: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:55: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:74: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:403:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:405:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:408:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:124: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:562:9: F841 local variable 'mock_ri_class' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:44: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:581:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:146:49: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/adoring-moore-a3dd7e/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/__init__.py:19:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/__version__.py:5:16: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:31:69: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:208:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:209:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:215:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:259:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:268:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:268:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/counts_to_lncfu.py:272:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:26:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:69:44: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:104:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:113:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:136:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:137:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:138:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:139:70: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:194:15: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:204:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:207:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:216:70: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:219:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:220:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:223:54: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:226:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:233:66: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:247:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:249:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:262:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:263:45: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:267:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:290:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:296:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:297:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:297:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:302:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:303:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:304:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:305:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:306:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:318:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:319:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:324:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:326:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:328:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:328:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:335:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:335:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:336:57: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:338:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:342:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:347:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:348:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:349:9: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:349:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:357:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:357:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:357:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:361:15: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:364:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:365:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:367:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:368:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:371:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:377:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:380:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:381:20: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:403:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:405:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:406:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:410:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:411:43: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:435:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:440:65: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:451:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:458:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:459:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:460:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:464:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:467:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:467:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:471:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:476:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:481:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:482:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:487:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:492:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:492:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:496:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:497:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:506:68: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:512:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:512:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:516:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:537:67: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:546:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:553:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:554:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:554:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:565:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:567:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:568:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:568:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:571:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:574:22: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:576:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:579:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:580:67: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:581:26: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:584:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:586:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:594:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:595:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:596:26: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:600:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:602:67: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:603:70: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:604:26: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:610:27: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:612:70: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:613:26: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:614:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:618:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:621:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:621:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:623:62: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:624:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:625:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:652:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:653:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/fastq_to_counts.py:664:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:75:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_counts_cli.py:79:44: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:26:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:27:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:47:87: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:48:87: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:57:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:67:71: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:83:70: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:70: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:86:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:106:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:174:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:183:43: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:238:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:258:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:259:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:260:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:261:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:10: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:302:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:303:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:308:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:309:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:310:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:311:54: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:325:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:330:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:330:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:67: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:359:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:365:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:368:80: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:372:70: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:405:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:412:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:413:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:414:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:415:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:416:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:417:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:419:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:422:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:426:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:427:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:429:37: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:433:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:434:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:436:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_fastq_cli.py:437:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:77:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:78:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:79:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/process_raw/scripts/process_presplit_cli.py:86:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:76:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:91:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:102:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:232:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:233:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:234:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:235:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:236:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:237:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:238:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:268:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:270:59: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:271:58: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:272:60: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:273:63: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:274:55: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:275:60: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:276:59: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:277:63: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:278:70: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:279:55: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:280:70: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/configure_model_cli.py:282:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (17) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/dataframe/get_scaled_cfu.py:131:14: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:40:63: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:54:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:65:68: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:70:64: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:70:65: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:77:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:81:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:85:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:100:1: E266 too many leading '#' for block comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:101:53: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:47: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:213:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:221:73: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:30: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:222:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:239:53: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:240:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:247:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:249:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:256:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:63:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:73:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:107:1: E265 block comment should start with '# ' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:109:1: E265 block comment should start with '# ' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:111:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:121:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:123:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:137:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:142:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:155:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:170:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:191:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:217:59: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:274:9: E116 unexpected indentation (comment) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:278:67: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:296:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:347:5: F841 local variable 'f3' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:361:5: F841 local variable 'f1_as_rev_read' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:374:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:392:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:396:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:429:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:466:48: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:515:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:583:37: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:584:37: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:621:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:707:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:718:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:728:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:737:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:751:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:754:44: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:755:44: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:771:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:785:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:789:71: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:795:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:805:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:809:69: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:819:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:874:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:878:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:883:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:884:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:908:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:909:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:920:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:930:27: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:940:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:953:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:956:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:975:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:986:52: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1001:29: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1004:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1005:27: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1019:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1040:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1044:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1058:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1061:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1071:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1082:27: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1091:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1099:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_fastq_to_counts.py:1104:45: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:26: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:33: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:40: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:47: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:54: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:61: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:68: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:75: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:82: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:39:89: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:135:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:151:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:153:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:154:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:177:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:193:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:209:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:215:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:233:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:253:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:257:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:267:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:273:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:284:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:288:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:298:38: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:313:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:349:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:376:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:378:26: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:388:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:78: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/analysis/test_prediction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:45: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:48: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:44: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:41: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:202:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:214:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:216:71: E203 whitespace before ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:217:1: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:317:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:40: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:55: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:74: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:40: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:55: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:331:74: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:337:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:337:49: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:14: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:41: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:56: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:75: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:54: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:351:76: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:14: E117 over-indented -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:31: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:41: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:56: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:75: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:357:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:30: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:40: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:55: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:369:74: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:424:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:426:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:429:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:557:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:572:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:124: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:583:9: F841 local variable 'mock_ri_class' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:586:44: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:602:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:146:49: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/compassionate-curran-92f7bd/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/__init__.py:19:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/__version__.py:5:16: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_design.py:240:1: C901 'estimate_library_mixture' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:744:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:744:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:752:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:780:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:794:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:795:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:798:72: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:799:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:802:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:810:9: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:811:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:814:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:815:15: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:829:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:842:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:843:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:844:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:845:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:849:64: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:857:37: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:858:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:860:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/genetics/library_manager.py:863:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:190:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:240:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:242:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:243:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:246:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:249:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:252:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:293:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:302:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:302:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/counts_to_lncfu.py:306:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:76:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_counts_cli.py:80:44: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:82:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/process_raw/scripts/process_presplit_cli.py:91:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:70:1: C901 '_update_dataclass' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:254:1: C901 'write_configuration' is too complex (40) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:359:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:362:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:364:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:365:40: E713 test for membership should be 'not in' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:372:31: E713 test for membership should be 'not in' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:378:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:394:33: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:406:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:442:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:442:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:444:1: C901 'read_configuration' is too complex (19) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:444:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:481:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:500:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:501:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:502:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:503:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:504:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:505:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:536:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/configuration_io.py:541:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:39:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:76:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:80:25: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:80:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:80:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:81:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:85:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:85:88: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:105:63: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:106:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:120:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:125:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:210:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:213:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:213:73: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:215:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:217:61: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:218:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:221:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:222:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:224:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:227:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:229:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:239:63: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:244:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:244:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:244:68: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:245:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:246:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:247:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:247:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:247:72: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:288:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:297:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:297:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:298:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:301:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:307:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:336:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:369:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:370:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:372:23: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:374:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:457:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:531:66: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:658:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:666:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:667:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:674:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:678:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:774:82: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:779:87: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:782:84: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:935:5: C901 'ModelOrchestrator._initialize_data' is too complex (21) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:935:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:960:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:961:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:964:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:964:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:964:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:965:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:965:66: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:966:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:970:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:971:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:976:67: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:983:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E116 unexpected indentation (comment) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:987:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:990:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1019:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1031:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1039:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1061:38: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1062:41: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1062:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1063:44: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1063:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1064:40: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1064:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1065:46: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1065:71: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1067:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1074:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1094:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1094:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1094:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1101:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1147:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1148:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1149:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1150:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1193:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1194:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1195:60: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1199:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1200:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1201:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1202:38: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1204:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1215:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1215:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1218:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1219:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1224:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1225:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1226:58: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1228:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1233:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1237:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1241:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1244:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1250:86: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1259:77: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1320:57: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1329:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1341:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1342:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1343:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1344:38: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1345:39: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1352:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1353:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1354:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1430:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1431:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1433:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1506:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1526:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1528:67: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1529:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1531:68: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1532:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1533:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1534:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1551:42: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1552:43: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:40: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1553:64: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1642:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1645:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1666:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1668:9: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1752:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1757:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1771:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1781:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1791:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1805:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1808:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1837:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1849:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1873:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1879:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1880:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1881:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1882:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1883:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1884:22: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1885:32: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1886:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1887:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1888:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1889:36: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1890:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1891:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1892:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1893:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1894:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1895:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_orchestrator.py:1896:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:357:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:358:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:359:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:360:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:361:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:362:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:363:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:364:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:365:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:366:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:367:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:368:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:369:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:370:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:371:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:372:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:373:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:374:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:375:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:376:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:377:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:378:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:402:59: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:403:58: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:404:60: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:405:63: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:406:63: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:407:60: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:408:59: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:409:63: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:410:70: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:411:70: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/configure_model_cli.py:413:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:408:1: C901 '_inject_calibration_priors' is too complex (21) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:667:1: C901 '_build_csv_updates' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:736:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:737:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:738:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:914:1: C901 '_apply_priors_updates' is too complex (13) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1000:1: C901 '_apply_guesses_updates' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1152:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1156:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:164:1: C901 'setup_grid' is too complex (17) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:40:63: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:54:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:65:68: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:70:64: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:70:65: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:77:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:81:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:85:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:100:1: E266 too many leading '#' for block comment -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:104:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_configure_run_smoke.py:178:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_prefit_calibration_smoke.py:75:52: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_composition_table.py:9:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:96:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:183:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:89:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:27: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:119:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:122:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:138:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:153:18: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:28: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:165:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:171:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:433:5: E722 do not use bare 'except' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:435:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:438:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:446:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:448:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:450:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:458:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:499:32: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:601:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:604:5: F841 local variable 'mock_seed' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:613:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:618:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:626:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:634:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:637:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:645:1: E303 too many blank lines (3) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:661:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:734:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:1117:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:1117:26: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/inference/test_run_inference.py:1118:26: E201 whitespace after '[' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:107:39: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:108:40: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:109:42: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:122:48: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:123:44: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:124:41: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:222:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:224:71: E203 whitespace before ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:225:1: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:312:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:40: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:55: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:74: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:40: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:55: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:74: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:49: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:34: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:54: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:41: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:56: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:75: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:359:76: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E117 over-indented -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:31: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:41: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:56: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:75: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:30: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:40: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:55: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:74: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:432:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:434:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:437:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:124: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:591:9: F841 local variable 'mock_ri_class' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:594:44: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:100:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:128:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:138:26: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:146:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:147:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:160:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:171:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:172:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:185:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:186:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:187:60: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:215:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:216:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:217:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_base_growth.py:218:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:957:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:961:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:969:51: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:77: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:98: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:125: E231 missing whitespace after ':' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:976:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:978:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:980:86: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:992:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:997:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1005:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1013:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1024:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1027:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1034:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1041:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1049:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1054:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1065:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1074:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1078:26: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:30: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1089:25: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:34: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1092:33: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1104:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:43: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:45: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:47: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:49: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:51: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:53: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:55: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:26: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1120:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1123:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1389:9: F401 'inspect' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:1786:34: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:2030:18: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_model_orchestrator.py:2044:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/gallant-lederberg-468b50/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/__init__.py:19:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/__version__.py:5:16: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:190:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:240:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:242:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:243:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:246:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:249:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:252:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:293:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:302:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:302:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/counts_to_lncfu.py:306:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:76:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_counts_cli.py:80:44: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:82:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/process_raw/scripts/process_presplit_cli.py:91:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:295:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:333:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:370:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:433:1: C901 '_empirical_group_estimates' is too complex (15) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:462:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:463:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:493:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:510:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:519:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:529:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:532:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:535:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:550:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:553:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:554:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:566:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:580:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:629:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:630:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:646:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:654:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:655:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:661:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:678:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:716:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:255:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:256:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:257:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:258:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:259:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:260:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:283:59: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:284:58: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:285:60: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:286:63: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:287:55: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:288:60: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:289:59: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:290:63: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:291:70: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:292:55: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:293:70: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/configure_model_cli.py:295:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:40:63: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:54:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:65:68: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:70:64: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:70:65: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:77:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:81:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:85:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:100:1: E266 too many leading '#' for block comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:45: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:48: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:44: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:96:41: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:195:71: E203 whitespace before ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:196:1: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:283:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:296:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:299:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:40: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:55: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:74: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:40: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:55: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:74: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:49: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:41: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:56: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:75: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:34: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:54: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:41: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:56: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:75: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:330:76: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E117 over-indented -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:31: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:41: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:56: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:75: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:30: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:40: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:55: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:74: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:403:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:405:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:408:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:124: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:562:9: F841 local variable 'mock_ri_class' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:44: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:581:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/github-workflow-test-failures-043dec/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/__init__.py:19:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/__version__.py:5:16: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_design.py:240:1: C901 'estimate_library_mixture' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:744:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:744:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:752:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:780:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:794:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:795:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:798:72: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:799:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:802:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:810:9: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:811:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:814:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:815:15: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:829:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:842:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:843:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:844:34: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:845:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:849:64: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:857:37: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:858:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:860:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/genetics/library_manager.py:863:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:190:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:240:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:242:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:243:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:246:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:249:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:252:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:293:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:302:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:302:66: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/counts_to_lncfu.py:306:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:76:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_counts_cli.py:80:44: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:82:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/process_raw/scripts/process_presplit_cli.py:91:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/analysis/prior_predictive.py:109:33: E203 whitespace before ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:70:1: C901 '_update_dataclass' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:254:1: C901 'write_configuration' is too complex (40) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:359:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:362:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:364:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:365:40: E713 test for membership should be 'not in' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:372:31: E713 test for membership should be 'not in' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:378:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:394:33: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:406:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:442:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:442:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:444:1: C901 'read_configuration' is too complex (19) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:444:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:481:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:500:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:501:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:502:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:503:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:504:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:505:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:536:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/configuration_io.py:541:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:117:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:57: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:163:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:165:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:176:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:57: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:240:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:244:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:263:7: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:70:41: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:95:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:103:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:116:61: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:119:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:64: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:128:66: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:130:67: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:133:38: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:169:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:179:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:213:64: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:214:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:218:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:237:7: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:106: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:107:33: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:112:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:168:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:80: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:83: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:97: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:214:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:260:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:262:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:270:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:280:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:285:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:300:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:302:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:304:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:305:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:306:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:310:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:327:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:328:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:329:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:337:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:338:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:341:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:5: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:294:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:332:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:415:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:416:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:417:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:418:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:419:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:1: C901 '_empirical_group_estimates' is too complex (15) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:457:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:458:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:460:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:485:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:488:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:505:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:514:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:524:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:527:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:530:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:544:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:545:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:548:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:561:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:575:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:619:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:625:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:626:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:641:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:645:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:649:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:652:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:656:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:666:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:673:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:711:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:315:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:316:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:329:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:346:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:347:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:354:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:391:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:396:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:397:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:409:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:413:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:416:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:436:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:448:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:76:6: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:104:70: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:105:65: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:106:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:67: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:112:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:128:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:130:41: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:139:68: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:146:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:168:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:195:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/beta.py:204:48: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/noise/zero.py:109:48: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:274:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:277:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:407:41: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:446:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:499:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:537:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:541:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:542:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:544:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:559:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:565:18: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:114:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:115:24: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:115:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:145:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:146:24: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:146:44: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:287:28: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:288:28: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/model.py:295:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:83:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:92:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:92:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:93:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:94:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:95:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:96:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:97:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:101:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:107:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:107:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:128:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:144:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:156:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:231:58: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:232:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:279:5: C901 'RunInference.run_optimization' is too complex (19) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:378:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:379:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:393:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:396:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:397:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:406:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:408:53: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:443:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:454:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:459:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:463:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:473:128: E501 line too long (177 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:479:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:480:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:485:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:487:60: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:501:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:502:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:503:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:525:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:551:26: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:864:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:866:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:866:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:866:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:899:31: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:911:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:912:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:919:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:919:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:919:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:933:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:934:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:935:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:936:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:937:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:938:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:939:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:946:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:947:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1044:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1058:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1061:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1062:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1071:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1078:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1078:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1080:61: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1129:5: E303 too many blank lines (4) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1170:26: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1170:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1173:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1185:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1187:32: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1187:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1260:5: C901 'RunInference.get_map_posteriors' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1492:50: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1533:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1536:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1541:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1549:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1553:30: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1556:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1560:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/inference/run_inference.py:1566:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:39:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:76:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:80:25: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:80:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:80:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:81:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:85:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:85:88: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:105:63: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:106:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:120:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:125:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:210:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:213:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:213:73: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:215:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:217:61: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:218:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:221:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:222:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:224:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:227:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:229:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:239:63: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:244:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:244:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:244:68: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:245:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:246:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:247:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:247:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:247:72: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:288:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:297:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:297:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:298:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:301:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:307:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:336:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:369:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:370:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:372:23: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:374:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:457:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:531:66: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:658:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:666:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:667:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:674:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:678:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:774:82: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:779:87: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:782:84: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:935:5: C901 'ModelOrchestrator._initialize_data' is too complex (21) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:935:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:960:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:961:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:964:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:964:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:964:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:965:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:965:66: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:966:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:970:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:971:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:976:67: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:983:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:985:10: E116 unexpected indentation (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:987:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:990:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1019:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1031:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1039:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1061:38: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1062:41: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1062:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1063:44: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1063:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1064:40: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1064:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1065:46: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1065:71: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1067:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1074:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1094:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1094:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1094:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1101:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1147:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1148:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1149:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1150:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1193:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1194:32: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1195:60: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1199:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1200:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1201:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1202:38: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1204:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1215:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1215:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1218:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1219:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1224:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1225:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1226:58: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1228:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1233:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1237:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1241:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1244:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1250:86: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1259:77: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1320:57: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1329:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1341:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1342:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1343:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1344:38: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1345:39: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1352:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1353:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1354:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1430:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1431:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1433:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1506:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1526:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1528:67: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1529:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1531:68: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1532:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1533:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1534:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1551:42: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1552:43: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:40: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1553:64: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1642:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1645:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1666:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1668:9: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1752:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1757:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1771:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1781:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1791:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1805:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1808:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1837:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1849:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1873:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1879:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1880:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1881:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1882:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1883:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1884:22: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1885:32: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1886:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1887:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1888:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1889:36: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1890:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1891:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1892:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1893:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1894:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1895:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_orchestrator.py:1896:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:357:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:358:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:359:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:360:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:361:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:362:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:363:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:364:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:365:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:366:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:367:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:368:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:369:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:370:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:371:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:372:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:373:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:374:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:375:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:376:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:377:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:378:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:402:59: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:403:58: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:404:60: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:405:63: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:406:63: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:407:60: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:408:59: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:409:63: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:410:70: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:411:70: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/configure_model_cli.py:413:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E116 unexpected indentation (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:128:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:134:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:265:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:267:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:271:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:361:1: C901 'fit_model' is too complex (15) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:609:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:611:60: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:612:53: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:613:64: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:614:59: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:615:65: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:616:66: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:617:66: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:618:64: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:619:65: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:620:64: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:621:72: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:622:74: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/fit_model_cli.py:624:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:408:1: C901 '_inject_calibration_priors' is too complex (21) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:667:1: C901 '_build_csv_updates' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:736:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:737:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:738:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:914:1: C901 '_apply_priors_updates' is too complex (13) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1000:1: C901 '_apply_guesses_updates' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1152:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1156:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:164:1: C901 'setup_grid' is too complex (17) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:40:63: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:54:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:65:68: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:70:64: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:70:65: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:77:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:81:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:85:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:100:1: E266 too many leading '#' for block comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:104:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_configure_run_smoke.py:240:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:148:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:150:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:154:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:156:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:157:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:158:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:189:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:190:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:191:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:192:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:221:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:222:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:223:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:224:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:253:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:254:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:255:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:256:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:285:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:286:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:287:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_model_smoke.py:288:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_prefit_calibration_smoke.py:75:52: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_composition_table.py:9:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:96:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:183:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:6:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:15:1: F401 'optax' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: F811 redefinition of unused 'SVIState' from line 17 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:85:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:86:27: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:118:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:149:18: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:150:28: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:157:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:167:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:171:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:188:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:429:5: E722 do not use bare 'except' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:437:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:442:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:444:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:446:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:454:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:495:32: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:600:5: F841 local variable 'mock_seed' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:601:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:609:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:614:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:618:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:626:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:633:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:641:1: E303 too many blank lines (3) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:650:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:781:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:854:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:1261:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:1261:26: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/inference/test_run_inference.py:1262:26: E201 whitespace after '[' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:107:39: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:108:40: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:109:42: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:122:48: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:123:44: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:124:41: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:222:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:224:71: E203 whitespace before ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:225:1: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:312:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:40: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:55: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:74: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:40: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:55: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:74: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:49: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:34: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:54: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:41: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:56: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:75: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:359:76: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E117 over-indented -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:31: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:41: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:56: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:75: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:30: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:40: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:55: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:74: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:432:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:434:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:437:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:124: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:591:9: F841 local variable 'mock_ri_class' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:594:44: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:100:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:128:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:138:26: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:146:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:147:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:160:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:171:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:172:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:185:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:186:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:187:60: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:215:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:216:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:217:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_base_growth.py:218:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:957:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:961:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:969:51: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:77: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:98: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:125: E231 missing whitespace after ':' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:976:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:978:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:980:86: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:992:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:997:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1005:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1013:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1024:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1027:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1034:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1041:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1049:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1054:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1065:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1074:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1078:26: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:30: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1089:25: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:34: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1092:33: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1104:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:43: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:45: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:47: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:49: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:51: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:53: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:55: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:26: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1120:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1123:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1389:9: F401 'inspect' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:1786:34: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:2030:18: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_model_orchestrator.py:2044:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/optimistic-volhard-cc3c96/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/__init__.py:19:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/__version__.py:5:16: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:721:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:740:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:740:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:748:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:776:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:781:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:790:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:791:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:794:72: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:798:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:806:9: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:807:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:810:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:811:15: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:838:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:839:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:840:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:841:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:845:64: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:853:37: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:854:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:856:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/genetics/library_manager.py:859:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:194:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:253:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:254:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:257:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:260:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:263:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:304:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:313:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:313:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/counts_to_lncfu.py:317:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:77:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_counts_cli.py:81:44: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:85:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/process_raw/scripts/process_presplit_cli.py:92:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1051:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/analysis/prior_predictive.py:104:33: E203 whitespace before ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:68:1: C901 '_update_dataclass' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:252:1: C901 'write_configuration' is too complex (37) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:334:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:339:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:340:40: E713 test for membership should be 'not in' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:346:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:347:31: E713 test for membership should be 'not in' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:353:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:369:33: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:381:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:417:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:417:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:419:1: C901 'read_configuration' is too complex (18) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:419:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:456:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:467:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:468:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:469:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:470:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:471:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:477:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/configuration_io.py:507:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:100:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:104:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:118:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:121:57: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:126:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:164:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:166:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:170:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:178:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:192:57: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:269:7: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:66:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:71:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:76:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:96:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:99:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:105:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:117:61: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:121:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:123:64: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:39: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:129:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:131:67: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:134:38: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:135:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:146:45: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:151:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:171:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:219:64: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:220:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:243:7: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:96:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:100:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:105:106: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:108:33: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:113:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:116:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:121:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:80: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:83: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:171:97: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:175:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:178:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:179:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:183:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:199:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:219:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:267:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:284:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:287:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:292:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:311:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:314:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:317:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:320:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:334:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:335:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:352:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:358:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:362:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:374:5: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:43:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:44:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:97:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:103:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:215:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:232:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:297:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:335:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:372:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:424:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:425:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:426:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:429:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:430:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:435:1: C901 '_empirical_group_estimates' is too complex (15) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:464:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:465:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:467:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:492:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:495:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:512:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:521:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:531:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:534:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:537:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:551:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:552:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:555:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:556:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:568:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:582:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:626:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:631:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:632:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:633:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:648:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:652:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:656:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:657:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:659:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:663:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:673:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:680:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:718:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:275:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:325:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:326:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:331:15: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:348:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:349:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:356:16: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:393:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:399:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:400:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:417:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:420:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:438:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:450:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:27:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:28:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:67:6: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:88:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:89:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:94:70: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:95:65: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:96:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:97:67: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:120:41: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:129:68: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:158:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/beta.py:194:48: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:18:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:19:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:46:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:47:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/noise/zero.py:104:48: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:225:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:282:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:415:41: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:454:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:507:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:549:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:550:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:552:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:553:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:567:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:573:18: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:76:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:91:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:102:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:113:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:114:24: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:114:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:143:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:144:24: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:144:44: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:284:28: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:285:28: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/model.py:292:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:28:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:29:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:30:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:31:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:32:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:36:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:42:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:42:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:63:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:79:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:87:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:93:20: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:98:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:105:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:107:87: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:123:58: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:132:5: C901 'RunInference.run_optimization' is too complex (18) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:223:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:224:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:238:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:242:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:251:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:253:53: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:288:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:299:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:308:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:318:128: E501 line too long (177 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:324:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:325:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:332:60: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:346:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:347:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:348:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:370:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:396:26: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:703:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:705:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:705:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:705:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:738:31: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:750:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:758:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:758:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:758:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:772:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:773:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:774:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:775:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:776:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:783:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:784:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:866:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:880:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:884:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:893:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:900:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:900:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:902:61: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:951:5: E303 too many blank lines (4) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:992:26: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:992:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:995:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1007:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1009:32: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1009:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1060:5: C901 'RunInference.get_map_posteriors' is too complex (13) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1298:50: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1339:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1342:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1347:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1355:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1359:30: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1362:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1366:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/inference/run_inference.py:1372:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:38:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:75:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:79:25: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:79:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:79:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:80:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:84:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:84:88: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:104:63: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:105:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:119:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:124:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:209:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:212:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:212:73: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:214:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:215:61: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:217:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:218:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:220:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:221:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:222:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:226:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:227:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:238:63: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:243:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:243:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:243:68: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:244:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:245:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:246:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:246:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:246:72: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:287:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:296:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:296:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:297:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:300:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:306:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:367:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:369:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:371:23: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:372:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:456:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:530:66: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:657:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:660:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:665:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:666:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:673:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:677:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:773:82: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:778:87: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:781:84: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:913:5: C901 'ModelOrchestrator._initialize_data' is too complex (19) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:913:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:938:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:939:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:941:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:942:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:942:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:942:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:943:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:943:66: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:944:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:948:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:949:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:954:67: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:961:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:963:10: E116 unexpected indentation (comment) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:965:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:968:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:972:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:984:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:992:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1014:38: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1015:41: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1015:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1016:44: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1016:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1017:40: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1017:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1018:46: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1018:71: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1020:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1027:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1047:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1047:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1047:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1054:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1100:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1101:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1102:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1103:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1143:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1146:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1147:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1148:60: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1152:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1153:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1154:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1155:38: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1157:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1168:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1168:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1171:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1172:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1177:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1178:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1179:58: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1181:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1186:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1194:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1197:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1203:86: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1205:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1212:77: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1273:57: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1282:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1294:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1295:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1296:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1297:38: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1298:39: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1305:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1306:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1307:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1383:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1384:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1386:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1459:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1479:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1481:67: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1482:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1484:68: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1485:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1486:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1487:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1504:42: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1505:43: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:40: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1506:64: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1595:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1598:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1619:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1621:9: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1705:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1710:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1724:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1734:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1744:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1758:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1761:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1790:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1802:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1814:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1820:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1821:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1822:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1823:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1824:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1825:22: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1826:32: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1827:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1828:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1829:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1830:36: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1831:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1832:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1833:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1834:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1835:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_orchestrator.py:1836:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:239:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:240:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:241:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:242:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:243:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:244:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:245:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:246:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:247:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:248:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:249:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:250:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:251:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:252:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:253:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:254:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:255:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:256:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:257:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:258:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:259:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:260:22: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:281:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:283:59: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:284:58: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:285:60: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:286:63: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:287:55: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:288:60: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:289:59: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:290:63: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:291:70: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:292:55: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:293:70: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/configure_model_cli.py:295:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:97:6: E116 unexpected indentation (comment) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:120:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:126:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:245:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:247:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:514:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:516:60: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:517:53: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:518:64: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:519:66: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:520:66: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:521:64: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:522:65: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:523:64: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:524:72: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:525:74: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/fit_model_cli.py:527:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:405:1: C901 '_inject_calibration_priors' is too complex (21) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:664:1: C901 '_build_csv_updates' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:733:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:734:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:735:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:911:1: C901 '_apply_priors_updates' is too complex (13) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:997:1: C901 '_apply_guesses_updates' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1149:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1153:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/setup_grid_cli.py:163:1: C901 'setup_grid' is too complex (17) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:154:1: C901 '_read_all_losses' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:413:1: C901 '_summarize_params' is too complex (23) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:528:1: C901 '_summarize_condition_growth_params' is too complex (14) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:723:1: C901 'summarize_fit' is too complex (59) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:40:63: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:54:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:65:68: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:70:64: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:70:65: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:77:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:81:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:85:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:100:1: E266 too many leading '#' for block comment -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_configure_run_smoke.py:177:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:144:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:150:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:152:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:153:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:154:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:185:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:186:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:187:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:188:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:217:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:218:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:219:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:220:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:249:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:250:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:251:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:252:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:281:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:282:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:283:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_model_smoke.py:284:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:94:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:169:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:51:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/analysis/test_prediction.py:103:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:4:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:12:1: F401 'optax' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:13:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F811 redefinition of unused 'SVIState' from line 14 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:39:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:44:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:67:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:82:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:83:27: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:97:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:108:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:112:128: E501 line too long (139 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:115:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:123:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:146:18: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:147:28: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:154:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:158:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:161:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:164:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:185:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:421:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:426:5: E722 do not use bare 'except' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:428:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:434:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:439:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:441:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:443:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:451:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:492:32: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:594:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:597:5: F841 local variable 'mock_seed' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:598:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:606:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:611:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:615:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:619:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:623:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:627:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:630:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:638:1: E303 too many blank lines (3) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:647:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:654:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:727:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:25: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:1110:26: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/inference/test_run_inference.py:1111:26: E201 whitespace after '[' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:70:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:79:39: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:80:40: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:81:42: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:93:45: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:94:48: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:95:44: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:96:41: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:172:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:181:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:193:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:195:71: E203 whitespace before ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:196:1: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:197:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:283:17: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:296:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:299:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:40: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:55: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:304:74: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:307:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:40: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:55: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:310:74: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:316:49: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:14: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:41: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:56: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:318:75: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:34: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:324:54: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:14: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:41: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:56: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:75: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:326:128: E501 line too long (142 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:327:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:330:76: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E111 indentation is not a multiple of 4 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:14: E117 over-indented -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:31: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:41: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:56: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:75: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:128: E501 line too long (150 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:30: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:40: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:55: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:348:74: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:403:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:405:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:408:5: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:536:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:551:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:124: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:559:128: E501 line too long (130 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:562:9: F841 local variable 'mock_ri_class' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:44: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:581:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:5:1: F401 'dill' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py:6:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:969:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:972:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1237:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1419:14: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1681:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2061:21: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:80:51: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:108:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:118:26: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:126:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:127:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:140:56: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:151:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:152:59: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:165:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:166:64: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:194:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:195:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_base_growth.py:196:60: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:955:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:956:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:960:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:968:51: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:77: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:98: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:125: E231 missing whitespace after ':' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:974:128: E501 line too long (131 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (138 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:977:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:979:86: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:991:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:996:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1004:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1012:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1023:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1026:128: E501 line too long (129 > 127 characters) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1033:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1040:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1048:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1053:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1058:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1064:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1073:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1077:26: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1087:30: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:25: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1090:34: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:33: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:43: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:45: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:47: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:49: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:51: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:53: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1105:55: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1118:26: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1122:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1125:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1388:9: F401 'inspect' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:1785:34: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:2029:18: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_model_orchestrator.py:2043:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 -./.claude/worktrees/quirky-kepler-505215/tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -./notebooks/thermo_corr/.ipynb_checkpoints/plots-checkpoint.py:12:1: F401 'pandas as pd' imported but unused -./notebooks/thermo_corr/.ipynb_checkpoints/plots-checkpoint.py:69:84: E261 at least two spaces before inline comment -./notebooks/thermo_corr/.ipynb_checkpoints/plots-checkpoint.py:69:85: E262 inline comment should start with '# ' -./notebooks/thermo_corr/assemble.py:26:1: F401 'glob' imported but unused -./notebooks/thermo_corr/plots.py:12:1: F401 'pandas as pd' imported but unused -./notebooks/thermo_corr/plots.py:69:84: E261 at least two spaces before inline comment -./notebooks/thermo_corr/plots.py:69:85: E262 inline comment should start with '# ' -./notebooks/thermo_corr/test_confound.py:14:1: F401 'thermo_corr as tc' imported but unused -./notebooks/thermo_corr/test_confound.py:41:22: E228 missing whitespace around modulo operator -./notebooks/thermo_corr/test_core.py:8:1: F401 'numpy as np' imported but unused -./notebooks/thermo_corr/tiers.py:25:1: F401 'dataclasses.field' imported but unused -./notebooks/thermo_corr/tiers.py:33:1: F401 '.confound.between_group_corr' imported but unused -./scripts/generate_struct_ensemble.py:266:11: E221 multiple spaces before operator -./scripts/generate_struct_ensemble.py:272:24: E221 multiple spaces before operator -./scripts/generate_struct_ensemble.py:433:18: E221 multiple spaces before operator -./src/tfscreen/__init__.py:19:1: W391 blank line at end of file -./src/tfscreen/__version__.py:5:16: W291 trailing whitespace -./src/tfscreen/analysis/__init__.py:13:1: W391 blank line at end of file -./src/tfscreen/analysis/calibration_grid.py:492:1: C901 'summarize_calibration' is too complex (14) -./src/tfscreen/analysis/cat_response/__init__.py:2:77: W291 trailing whitespace -./src/tfscreen/analysis/cat_response/__init__.py:3:55: W291 trailing whitespace -./src/tfscreen/analysis/cat_response/cat_fit.py:148:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/analysis/cat_response/cat_fit.py:188:1: C901 'cat_fit' is too complex (28) -./src/tfscreen/analysis/cat_response/cat_fit.py:365:72: E231 missing whitespace after ',' -./src/tfscreen/analysis/cat_response/cat_fit.py:365:74: E231 missing whitespace after ',' -./src/tfscreen/analysis/cat_response/cat_fit.py:471:55: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./src/tfscreen/analysis/cat_response/cat_fit.py:473:57: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./src/tfscreen/analysis/cat_response/cat_response.py:65:1: C901 'cat_response' is too complex (16) -./src/tfscreen/analysis/compare_runs.py:626:1: C901 'compare_runs' is too complex (11) -./src/tfscreen/analysis/extract_epistasis.py:9:1: C901 'mutant_cycle_pivot' is too complex (11) -./src/tfscreen/analysis/extract_epistasis.py:9:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/analysis/extract_epistasis.py:79:25: E231 missing whitespace after ',' -./src/tfscreen/analysis/extract_epistasis.py:91:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:97:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:101:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:114:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:126:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:203:1: C901 'extract_epistasis' is too complex (16) -./src/tfscreen/analysis/extract_epistasis.py:207:37: E252 missing whitespace around parameter equals -./src/tfscreen/analysis/extract_epistasis.py:207:38: E252 missing whitespace around parameter equals -./src/tfscreen/analysis/extract_epistasis.py:285:27: E231 missing whitespace after ',' -./src/tfscreen/analysis/extract_epistasis.py:285:34: E231 missing whitespace after ',' -./src/tfscreen/analysis/extract_epistasis.py:303:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:326:55: E231 missing whitespace after ',' -./src/tfscreen/analysis/extract_epistasis.py:326:60: E231 missing whitespace after ',' -./src/tfscreen/analysis/extract_epistasis.py:326:65: E231 missing whitespace after ',' -./src/tfscreen/analysis/extract_epistasis.py:328:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:334:1: W293 blank line contains whitespace -./src/tfscreen/analysis/extract_epistasis.py:341:1: W293 blank line contains whitespace -./src/tfscreen/analysis/stats_test_suite.py:8:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/analysis/stats_test_suite.py:8:31: E231 missing whitespace after ',' -./src/tfscreen/analysis/stats_test_suite.py:8:42: E231 missing whitespace after ',' -./src/tfscreen/analysis/stats_test_suite.py:55:75: W291 trailing whitespace -./src/tfscreen/analysis/stats_test_suite.py:66:52: W291 trailing whitespace -./src/tfscreen/analysis/stats_test_suite.py:81:1: W293 blank line contains whitespace -./src/tfscreen/analysis/stats_test_suite.py:91:1: W293 blank line contains whitespace -./src/tfscreen/analysis/stats_test_suite.py:104:33: W291 trailing whitespace -./src/tfscreen/analysis/stats_test_suite.py:134:1: W293 blank line contains whitespace -./src/tfscreen/analysis/stats_test_suite.py:143:26: E231 missing whitespace after ',' -./src/tfscreen/analysis/stats_test_suite.py:144:1: W293 blank line contains whitespace -./src/tfscreen/analysis/stats_test_suite.py:148:5: E303 too many blank lines (2) -./src/tfscreen/analysis/stats_test_suite.py:149:22: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:150:15: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:151:26: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:155:21: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:156:24: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:157:24: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:158:32: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:159:21: E231 missing whitespace after ':' -./src/tfscreen/analysis/stats_test_suite.py:161:1: W293 blank line contains whitespace -./src/tfscreen/analysis/stats_test_suite.py:163:1: W391 blank line at end of file -./src/tfscreen/genetics/build_cycles.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/genetics/build_cycles.py:26:1: W293 blank line contains whitespace -./src/tfscreen/genetics/build_cycles.py:69:26: W291 trailing whitespace -./src/tfscreen/genetics/build_cycles.py:78:1: W391 blank line at end of file -./src/tfscreen/genetics/build_mut_geno_matrix.py:5:1: C901 'build_mut_geno_matrix' is too complex (17) -./src/tfscreen/genetics/combine_mutation_effects.py:8:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/genetics/combine_mutation_effects.py:11:50: W291 trailing whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:32:73: W291 trailing whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:34:71: W291 trailing whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:35:21: W291 trailing whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:65:1: W293 blank line contains whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:73:27: E261 at least two spaces before inline comment -./src/tfscreen/genetics/combine_mutation_effects.py:74:10: E111 indentation is not a multiple of 4 -./src/tfscreen/genetics/combine_mutation_effects.py:74:10: E117 over-indented -./src/tfscreen/genetics/combine_mutation_effects.py:82:1: W293 blank line contains whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:89:1: W293 blank line contains whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:103:1: W293 blank line contains whitespace -./src/tfscreen/genetics/combine_mutation_effects.py:104:25: W292 no newline at end of file -./src/tfscreen/genetics/count_mutation_backgrounds.py:8:1: C901 'count_mutation_backgrounds' is too complex (12) -./src/tfscreen/genetics/data.py:25:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:26:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:27:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:28:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:29:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:30:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:31:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:32:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:33:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:34:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:35:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:36:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:37:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:38:8: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:41:23: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:42:23: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:43:23: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:44:23: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:45:23: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:46:23: E231 missing whitespace after ':' -./src/tfscreen/genetics/data.py:46:28: W292 no newline at end of file -./src/tfscreen/genetics/expand_genotype_columns.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/genetics/expand_genotype_columns.py:16:51: W291 trailing whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:47:1: W293 blank line contains whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:64:1: W293 blank line contains whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:77:1: W293 blank line contains whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:79:5: E303 too many blank lines (2) -./src/tfscreen/genetics/expand_genotype_columns.py:87:1: W293 blank line contains whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:91:1: W293 blank line contains whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:95:41: W291 trailing whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:96:31: W291 trailing whitespace -./src/tfscreen/genetics/expand_genotype_columns.py:105:14: W292 no newline at end of file -./src/tfscreen/genetics/genotype_sorting.py:31:1: C901 '_standardize_one' is too complex (11) -./src/tfscreen/genetics/genotype_sorting.py:180:8: W291 trailing whitespace -./src/tfscreen/genetics/genotype_sorting.py:181:1: W293 blank line contains whitespace -./src/tfscreen/genetics/genotype_sorting.py:230:14: E111 indentation is not a multiple of 4 -./src/tfscreen/genetics/genotype_sorting.py:230:14: E117 over-indented -./src/tfscreen/genetics/genotype_sorting.py:265:1: W293 blank line contains whitespace -./src/tfscreen/genetics/genotype_sorting.py:268:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/genetics/genotype_sorting.py:268:32: E231 missing whitespace after ',' -./src/tfscreen/genetics/genotype_sorting.py:268:50: E231 missing whitespace after ',' -./src/tfscreen/genetics/genotype_sorting.py:287:40: W291 trailing whitespace -./src/tfscreen/genetics/genotype_sorting.py:320:76: W291 trailing whitespace -./src/tfscreen/genetics/genotype_sorting.py:321:76: W291 trailing whitespace -./src/tfscreen/genetics/genotype_sorting.py:339:1: W293 blank line contains whitespace -./src/tfscreen/genetics/genotype_sorting.py:345:1: W391 blank line at end of file -./src/tfscreen/genetics/get_single_with_wt.py:7:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/genetics/get_single_with_wt.py:46:77: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:55:59: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:58:38: E231 missing whitespace after ':' -./src/tfscreen/genetics/get_single_with_wt.py:59:38: E231 missing whitespace after ':' -./src/tfscreen/genetics/get_single_with_wt.py:60:39: E231 missing whitespace after ':' -./src/tfscreen/genetics/get_single_with_wt.py:63:11: E124 closing bracket does not match visual indentation -./src/tfscreen/genetics/get_single_with_wt.py:65:77: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:66:52: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:78:5: E303 too many blank lines (2) -./src/tfscreen/genetics/get_single_with_wt.py:80:49: E231 missing whitespace after ',' -./src/tfscreen/genetics/get_single_with_wt.py:87:77: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:90:69: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:93:37: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:94:61: W291 trailing whitespace -./src/tfscreen/genetics/get_single_with_wt.py:97:1: W293 blank line contains whitespace -./src/tfscreen/genetics/get_single_with_wt.py:103:1: W293 blank line contains whitespace -./src/tfscreen/genetics/get_single_with_wt.py:107:38: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_design.py:240:1: C901 'estimate_library_mixture' is too complex (11) -./src/tfscreen/genetics/library_manager.py:57:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/genetics/library_manager.py:76:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:82:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:91:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:94:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:158:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:159:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/genetics/library_manager.py:169:22: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:180:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:181:5: C901 'LibraryManager._parse_and_validate' is too complex (12) -./src/tfscreen/genetics/library_manager.py:219:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:226:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:235:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:244:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:250:9: E303 too many blank lines (2) -./src/tfscreen/genetics/library_manager.py:251:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:254:27: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:254:36: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:258:32: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:258:46: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:288:51: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:288:58: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:288:70: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:300:48: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:300:94: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:307:35: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:309:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:310:49: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:311:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:313:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:316:37: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:316:49: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:318:30: E701 multiple statements on one line (colon) -./src/tfscreen/genetics/library_manager.py:321:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:324:18: E128 continuation line under-indented for visual indent -./src/tfscreen/genetics/library_manager.py:373:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:378:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:380:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:386:5: E303 too many blank lines (2) -./src/tfscreen/genetics/library_manager.py:415:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:421:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:427:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:466:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:467:78: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:471:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:476:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:478:25: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:478:38: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:479:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:482:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:488:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:493:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:526:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:527:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:528:5: E303 too many blank lines (2) -./src/tfscreen/genetics/library_manager.py:555:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:560:73: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:560:82: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:561:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:562:41: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:562:55: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:562:63: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:563:39: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:563:43: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:564:34: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:564:38: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:566:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:568:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:605:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:611:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:613:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:616:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:617:5: E303 too many blank lines (2) -./src/tfscreen/genetics/library_manager.py:648:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:650:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:656:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:657:31: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:661:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:663:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:665:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:695:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:698:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:703:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:708:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:710:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:712:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:713:30: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:744:28: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:744:41: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:752:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:780:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:785:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:791:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:794:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:795:39: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:798:72: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:799:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:802:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:810:9: E303 too many blank lines (2) -./src/tfscreen/genetics/library_manager.py:811:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:814:76: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:815:15: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:829:1: W293 blank line contains whitespace -./src/tfscreen/genetics/library_manager.py:842:79: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:843:75: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:844:34: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:845:58: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:849:64: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:857:37: W291 trailing whitespace -./src/tfscreen/genetics/library_manager.py:858:27: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:860:40: E231 missing whitespace after ',' -./src/tfscreen/genetics/library_manager.py:863:1: W391 blank line at end of file -./src/tfscreen/mle/__init__.py:16:1: W391 blank line at end of file -./src/tfscreen/mle/curve_models/__init__.py:4:77: W291 trailing whitespace -./src/tfscreen/mle/curve_models/__init__.py:5:42: W291 trailing whitespace -./src/tfscreen/mle/curve_models/__init__.py:11:77: W291 trailing whitespace -./src/tfscreen/mle/curve_models/__init__.py:16:76: W291 trailing whitespace -./src/tfscreen/mle/curve_models/__init__.py:18:29: W291 trailing whitespace -./src/tfscreen/mle/curve_models/__init__.py:57:26: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:58:26: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:59:27: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:60:22: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:63:28: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:64:28: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:65:29: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:66:24: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:67:27: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:70:32: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:71:32: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:72:33: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:73:28: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:74:31: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:77:31: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:78:31: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:79:32: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:80:27: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:81:30: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:84:29: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:85:29: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:86:30: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:87:25: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:88:28: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:91:36: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:92:36: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:93:37: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:94:32: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:95:35: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:96:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/__init__.py:98:34: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:99:34: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:100:35: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:101:30: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:102:33: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:105:31: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:106:31: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:107:32: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:108:27: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:109:30: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:112:30: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:113:30: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:114:31: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:115:26: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:116:29: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:119:35: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:120:35: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:121:36: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:123:31: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:124:34: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:127:34: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:128:34: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:129:35: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:131:30: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:132:33: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:135:35: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:136:35: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:137:36: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:138:31: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:139:34: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/__init__.py:145:34: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:146:34: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:147:35: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:148:30: E231 missing whitespace after ':' -./src/tfscreen/mle/curve_models/__init__.py:149:33: E201 whitespace after '[' -./src/tfscreen/mle/curve_models/guesses.py:3:69: W291 trailing whitespace -./src/tfscreen/mle/curve_models/guesses.py:13:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:27:20: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:27:25: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:30:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:53:20: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:56:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:76:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:96:23: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:100:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:114:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:120:23: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:140:37: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:141:24: E261 at least two spaces before inline comment -./src/tfscreen/mle/curve_models/guesses.py:145:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:159:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:160:35: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:161:24: E261 at least two spaces before inline comment -./src/tfscreen/mle/curve_models/guesses.py:165:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:181:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:186:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:196:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:212:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:217:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:227:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:257:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:287:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:303:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:306:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:308:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:313:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:316:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:334:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:338:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:341:26: E225 missing whitespace around operator -./src/tfscreen/mle/curve_models/guesses.py:343:10: E261 at least two spaces before inline comment -./src/tfscreen/mle/curve_models/guesses.py:348:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:348:21: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:351:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:362:20: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:362:25: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:365:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:365:21: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:368:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:379:20: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:379:25: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:382:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:382:21: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:385:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:396:20: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:396:25: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:399:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/guesses.py:399:21: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:402:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/guesses.py:413:20: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:413:25: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/guesses.py:415:1: W391 blank line at end of file -./src/tfscreen/mle/curve_models/models.py:54:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:79:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:80:26: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:81:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:82:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:109:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:141:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:143:51: W291 trailing whitespace -./src/tfscreen/mle/curve_models/models.py:148:25: W291 trailing whitespace -./src/tfscreen/mle/curve_models/models.py:161:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:164:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:203:27: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:203:37: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:203:42: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:203:47: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:205:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:276:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:279:31: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:279:41: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:280:37: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:280:47: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:283:38: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:284:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:286:37: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:286:47: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:287:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:375:30: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:375:40: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:376:31: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:378:30: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:378:40: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:379:31: E231 missing whitespace after ',' -./src/tfscreen/mle/curve_models/models.py:383:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:386:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:425:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:428:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/curve_models/models.py:440:28: W291 trailing whitespace -./src/tfscreen/mle/curve_models/models.py:450:1: W293 blank line contains whitespace -./src/tfscreen/mle/curve_models/models.py:454:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:26:72: W291 trailing whitespace -./src/tfscreen/mle/fit_manager.py:29:56: W291 trailing whitespace -./src/tfscreen/mle/fit_manager.py:34:72: W291 trailing whitespace -./src/tfscreen/mle/fit_manager.py:36:69: W291 trailing whitespace -./src/tfscreen/mle/fit_manager.py:41:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:71:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:73:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:77:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:85:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:99:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:114:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:123:5: E301 expected 1 blank line, found 0 -./src/tfscreen/mle/fit_manager.py:186:62: E231 missing whitespace after ',' -./src/tfscreen/mle/fit_manager.py:219:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:223:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:225:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:227:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:247:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:250:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:269:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:272:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:291:24: W291 trailing whitespace -./src/tfscreen/mle/fit_manager.py:294:41: E231 missing whitespace after ',' -./src/tfscreen/mle/fit_manager.py:320:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:337:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:340:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:342:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:344:5: E303 too many blank lines (2) -./src/tfscreen/mle/fit_manager.py:344:40: E231 missing whitespace after ',' -./src/tfscreen/mle/fit_manager.py:425:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:456:1: W293 blank line contains whitespace -./src/tfscreen/mle/fit_manager.py:473:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/__init__.py:7:1: W391 blank line at end of file -./src/tfscreen/mle/fitters/least_squares.py:7:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/fitters/least_squares.py:42:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/least_squares.py:43:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/least_squares.py:44:5: E303 too many blank lines (2) -./src/tfscreen/mle/fitters/least_squares.py:44:76: W291 trailing whitespace -./src/tfscreen/mle/fitters/least_squares.py:47:38: E231 missing whitespace after ',' -./src/tfscreen/mle/fitters/least_squares.py:48:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/least_squares.py:115:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/least_squares.py:118:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/least_squares.py:119:18: F541 f-string is missing placeholders -./src/tfscreen/mle/fitters/least_squares.py:122:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/least_squares.py:126:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/least_squares.py:128:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/fitters/matrix_nls.py:13:76: W291 trailing whitespace -./src/tfscreen/mle/fitters/matrix_nls.py:43:35: E231 missing whitespace after ',' -./src/tfscreen/mle/fitters/matrix_nls.py:43:37: E231 missing whitespace after ',' -./src/tfscreen/mle/fitters/matrix_nls.py:43:39: E231 missing whitespace after ',' -./src/tfscreen/mle/fitters/matrix_nls.py:46:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_nls.py:56:52: E231 missing whitespace after ',' -./src/tfscreen/mle/fitters/matrix_nls.py:59:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_nls.py:66:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_nls.py:67:54: W292 no newline at end of file -./src/tfscreen/mle/fitters/matrix_wls.py:3:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/fitters/matrix_wls.py:27:81: W291 trailing whitespace -./src/tfscreen/mle/fitters/matrix_wls.py:30:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_wls.py:42:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_wls.py:45:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_wls.py:48:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_wls.py:52:40: W291 trailing whitespace -./src/tfscreen/mle/fitters/matrix_wls.py:54:1: W293 blank line contains whitespace -./src/tfscreen/mle/fitters/matrix_wls.py:55:52: W292 no newline at end of file -./src/tfscreen/mle/predict_with_error.py:3:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/mle/predict_with_error.py:50:36: E231 missing whitespace after ',' -./src/tfscreen/mle/predict_with_error.py:68:43: E231 missing whitespace after ',' -./src/tfscreen/mle/predict_with_error.py:72:45: E231 missing whitespace after ',' -./src/tfscreen/mle/predict_with_error.py:89:32: W292 no newline at end of file -./src/tfscreen/plot/__init__.py:36:63: W291 trailing whitespace -./src/tfscreen/plot/cat_fits.py:13:1: C901 'cat_fits' is too complex (11) -./src/tfscreen/plot/cat_fits.py:13:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/cat_fits.py:13:15: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:13:17: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:99:33: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:99:35: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:100:1: W293 blank line contains whitespace -./src/tfscreen/plot/cat_fits.py:104:1: W293 blank line contains whitespace -./src/tfscreen/plot/cat_fits.py:113:80: W291 trailing whitespace -./src/tfscreen/plot/cat_fits.py:114:1: W293 blank line contains whitespace -./src/tfscreen/plot/cat_fits.py:119:1: W293 blank line contains whitespace -./src/tfscreen/plot/cat_fits.py:120:74: W291 trailing whitespace -./src/tfscreen/plot/cat_fits.py:121:14: W291 trailing whitespace -./src/tfscreen/plot/cat_fits.py:123:33: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:123:44: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:128:22: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:128:24: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:131:23: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:131:25: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:131:31: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:137:53: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:147:34: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:147:54: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:163:34: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:163:54: E231 missing whitespace after ',' -./src/tfscreen/plot/cat_fits.py:171:26: E701 multiple statements on one line (colon) -./src/tfscreen/plot/cat_fits.py:172:26: E701 multiple statements on one line (colon) -./src/tfscreen/plot/cat_fits.py:173:12: E701 multiple statements on one line (colon) -./src/tfscreen/plot/cat_fits.py:174:12: E701 multiple statements on one line (colon) -./src/tfscreen/plot/cat_fits.py:175:12: E701 multiple statements on one line (colon) -./src/tfscreen/plot/cat_fits.py:176:12: E701 multiple statements on one line (colon) -./src/tfscreen/plot/cat_fits.py:187:1: W293 blank line contains whitespace -./src/tfscreen/plot/cat_fits.py:187:5: W292 no newline at end of file -./src/tfscreen/plot/corner.py:4:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/corner.py:11:76: W291 trailing whitespace -./src/tfscreen/plot/corner.py:12:23: W291 trailing whitespace -./src/tfscreen/plot/corner.py:17:66: W291 trailing whitespace -./src/tfscreen/plot/corner.py:19:80: W291 trailing whitespace -./src/tfscreen/plot/corner.py:38:5: E303 too many blank lines (2) -./src/tfscreen/plot/corner.py:39:38: E231 missing whitespace after ',' -./src/tfscreen/plot/corner.py:44:1: W293 blank line contains whitespace -./src/tfscreen/plot/corner.py:46:1: W293 blank line contains whitespace -./src/tfscreen/plot/corner.py:47:42: E231 missing whitespace after ',' -./src/tfscreen/plot/corner.py:51:28: E231 missing whitespace after ',' -./src/tfscreen/plot/corner.py:51:40: E231 missing whitespace after ',' -./src/tfscreen/plot/corner.py:51:48: E231 missing whitespace after ',' -./src/tfscreen/plot/corner.py:51:63: E231 missing whitespace after ',' -./src/tfscreen/plot/corner.py:51:73: W291 trailing whitespace -./src/tfscreen/plot/corner.py:54:45: E231 missing whitespace after ',' -./src/tfscreen/plot/corner.py:55:1: W293 blank line contains whitespace -./src/tfscreen/plot/corner.py:59:1: W293 blank line contains whitespace -./src/tfscreen/plot/corner.py:64:15: W292 no newline at end of file -./src/tfscreen/plot/default_styles.py:17:28: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:17:38: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:17:48: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:18:28: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:18:38: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:18:48: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:19:23: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:19:27: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:19:31: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:19:35: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:27:8: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:28:16: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:29:16: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:33:9: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:34:12: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:38:8: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:39:16: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:40:16: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:44:12: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:45:9: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:46:17: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:47:14: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:54:9: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:55:12: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:56:13: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:56:16: E261 at least two spaces before inline comment -./src/tfscreen/plot/default_styles.py:58:41: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:59:40: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:59:44: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:59:48: E231 missing whitespace after ',' -./src/tfscreen/plot/default_styles.py:62:18: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:63:17: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:63:32: E261 at least two spaces before inline comment -./src/tfscreen/plot/default_styles.py:64:22: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:65:20: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:66:33: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:70:18: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:71:17: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:72:22: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:73:20: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:74:33: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:79:18: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:79:21: W291 trailing whitespace -./src/tfscreen/plot/default_styles.py:80:17: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:81:22: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:82:20: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:83:33: E231 missing whitespace after ':' -./src/tfscreen/plot/default_styles.py:84:2: W292 no newline at end of file -./src/tfscreen/plot/err_vs_mag.py:11:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/err_vs_mag.py:18:5: E125 continuation line with same indent as next logical line -./src/tfscreen/plot/err_vs_mag.py:20:34: W291 trailing whitespace -./src/tfscreen/plot/err_vs_mag.py:33:55: W291 trailing whitespace -./src/tfscreen/plot/err_vs_mag.py:43:33: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:44:30: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:49:31: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:49:42: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:55:5: E303 too many blank lines (3) -./src/tfscreen/plot/err_vs_mag.py:57:1: W293 blank line contains whitespace -./src/tfscreen/plot/err_vs_mag.py:61:1: W293 blank line contains whitespace -./src/tfscreen/plot/err_vs_mag.py:62:19: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:62:26: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:62:29: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:62:32: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:62:37: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:62:50: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:63:22: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:64:24: E231 missing whitespace after ',' -./src/tfscreen/plot/err_vs_mag.py:66:1: W293 blank line contains whitespace -./src/tfscreen/plot/err_vs_mag.py:70:14: W292 no newline at end of file -./src/tfscreen/plot/err_zscore.py:18:5: E125 continuation line with same indent as next logical line -./src/tfscreen/plot/err_zscore.py:21:77: W291 trailing whitespace -./src/tfscreen/plot/err_zscore.py:22:37: W291 trailing whitespace -./src/tfscreen/plot/err_zscore.py:52:31: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:52:42: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:53:1: W293 blank line contains whitespace -./src/tfscreen/plot/err_zscore.py:54:33: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:54:51: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:57:44: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:58:1: W293 blank line contains whitespace -./src/tfscreen/plot/err_zscore.py:72:1: W293 blank line contains whitespace -./src/tfscreen/plot/err_zscore.py:73:25: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:73:33: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:73:43: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:74:19: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:74:27: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:74:35: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:78:1: W293 blank line contains whitespace -./src/tfscreen/plot/err_zscore.py:79:20: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:79:24: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:79:29: E231 missing whitespace after ',' -./src/tfscreen/plot/err_zscore.py:79:41: E231 missing whitespace after ',' -./src/tfscreen/plot/est_v_real_summary.py:16:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/est_v_real_summary.py:24:5: E125 continuation line with same indent as next logical line -./src/tfscreen/plot/est_v_real_summary.py:54:5: E303 too many blank lines (2) -./src/tfscreen/plot/est_v_real_summary.py:57:36: E231 missing whitespace after ',' -./src/tfscreen/plot/est_v_real_summary.py:70:1: W293 blank line contains whitespace -./src/tfscreen/plot/est_v_real_summary.py:72:5: E303 too many blank lines (2) -./src/tfscreen/plot/est_v_real_summary.py:72:29: E231 missing whitespace after ',' -./src/tfscreen/plot/est_v_real_summary.py:72:31: E231 missing whitespace after ',' -./src/tfscreen/plot/est_v_real_summary.py:72:43: E231 missing whitespace after ',' -./src/tfscreen/plot/est_v_real_summary.py:73:1: W293 blank line contains whitespace -./src/tfscreen/plot/est_v_real_summary.py:81:1: W293 blank line contains whitespace -./src/tfscreen/plot/est_v_real_summary.py:99:1: W293 blank line contains whitespace -./src/tfscreen/plot/est_v_real_summary.py:102:1: W293 blank line contains whitespace -./src/tfscreen/plot/est_v_real_summary.py:104:1: W293 blank line contains whitespace -./src/tfscreen/plot/est_v_real_summary.py:106:1: W391 blank line at end of file -./src/tfscreen/plot/geno_trajectory.py:29:1: C901 'plot_geno_trajectory' is too complex (14) -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:15:53: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:16:53: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:17:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:19:28: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:23:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:26:25: E211 whitespace before '(' -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:32:37: E127 continuation line over-indented for visual indent -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:33:37: E127 continuation line over-indented for visual indent -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:36:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:42:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/aa_v_res_heatmap.py:44:19: W292 no newline at end of file -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:16:53: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:17:53: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:18:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:20:28: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:24:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:26:34: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:27:25: E211 whitespace before '(' -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:37:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:39:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/aa_v_titrant_heatmap.py:41:19: W292 no newline at end of file -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:25: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:6:28: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:15:53: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:16:53: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:19:21: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:20:32: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:21:33: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:23:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:25:17: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:33:25: E211 whitespace before '(' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:50:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/epistasis_heatmap.py:52:19: W292 no newline at end of file -./src/tfscreen/plot/heatmap/heatmap_core.py:6:18: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:28:1: C901 '_build_heatmap_collection' is too complex (11) -./src/tfscreen/plot/heatmap/heatmap_core.py:28:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/heatmap_core.py:88:38: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:90:35: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:93:32: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:107:55: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:110:55: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:125:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:126:48: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:129:68: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:142:33: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:143:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:149:13: E221 multiple spaces before operator -./src/tfscreen/plot/heatmap/heatmap_core.py:149:28: E202 whitespace before ']' -./src/tfscreen/plot/heatmap/heatmap_core.py:151:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:154:33: E202 whitespace before ']' -./src/tfscreen/plot/heatmap/heatmap_core.py:155:16: E221 multiple spaces before operator -./src/tfscreen/plot/heatmap/heatmap_core.py:156:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:157:34: E203 whitespace before ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:157:35: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:158:34: E203 whitespace before ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:158:35: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:158:41: E202 whitespace before ']' -./src/tfscreen/plot/heatmap/heatmap_core.py:159:35: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:159:41: E202 whitespace before ']' -./src/tfscreen/plot/heatmap/heatmap_core.py:160:35: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:162:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:162:66: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:172:1: C901 '_build_color_mapper' is too complex (13) -./src/tfscreen/plot/heatmap/heatmap_core.py:172:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/heatmap_core.py:217:28: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:241:39: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:241:42: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:243:26: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:276:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:280:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:281:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/heatmap_core.py:338:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/heatmap_core.py:373:40: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:375:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:382:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:385:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:388:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/heatmap/heatmap_core.py:443:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:448:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:456:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:457:1: C901 'heatmap' is too complex (13) -./src/tfscreen/plot/heatmap/heatmap_core.py:509:76: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:528:75: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:531:75: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:561:30: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:569:53: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:570:5: F841 local variable 'e' is assigned to but never used -./src/tfscreen/plot/heatmap/heatmap_core.py:580:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:589:75: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:590:39: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:592:37: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:592:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:592:57: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:593:33: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:596:29: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:612:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:615:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:620:20: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:621:69: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:622:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:625:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:629:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:636:35: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:637:34: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/heatmap_core.py:638:32: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/heatmap_core.py:639:37: E231 missing whitespace after ':' -./src/tfscreen/plot/heatmap/heatmap_core.py:643:59: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:644:57: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:645:59: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:647:72: W291 trailing whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:661:20: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:661:34: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:661:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:661:56: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:662:20: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:662:36: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:662:45: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:662:58: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:666:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:666:49: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:671:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:672:43: E231 missing whitespace after ',' -./src/tfscreen/plot/heatmap/heatmap_core.py:679:1: W293 blank line contains whitespace -./src/tfscreen/plot/heatmap/heatmap_core.py:680:19: W292 no newline at end of file -./src/tfscreen/plot/helper.py:4:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/helper.py:28:78: W291 trailing whitespace -./src/tfscreen/plot/helper.py:29:40: W291 trailing whitespace -./src/tfscreen/plot/helper.py:31:55: W291 trailing whitespace -./src/tfscreen/plot/helper.py:46:1: W293 blank line contains whitespace -./src/tfscreen/plot/helper.py:51:40: E231 missing whitespace after ',' -./src/tfscreen/plot/helper.py:59:1: W293 blank line contains whitespace -./src/tfscreen/plot/helper.py:60:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/helper.py:62:71: W291 trailing whitespace -./src/tfscreen/plot/helper.py:64:61: W291 trailing whitespace -./src/tfscreen/plot/helper.py:69:47: E231 missing whitespace after ',' -./src/tfscreen/plot/helper.py:70:26: E231 missing whitespace after ',' -./src/tfscreen/plot/helper.py:74:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/helper.py:84:76: W291 trailing whitespace -./src/tfscreen/plot/helper.py:92:1: W293 blank line contains whitespace -./src/tfscreen/plot/helper.py:93:38: E231 missing whitespace after ',' -./src/tfscreen/plot/helper.py:99:1: W293 blank line contains whitespace -./src/tfscreen/plot/helper.py:100:17: W292 no newline at end of file -./src/tfscreen/plot/hill_fit.py:9:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/plot_theta_fits.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/plot_theta_fits.py:81:1: W293 blank line contains whitespace -./src/tfscreen/plot/plot_theta_fits.py:84:35: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:84:50: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:86:1: W293 blank line contains whitespace -./src/tfscreen/plot/plot_theta_fits.py:88:73: E225 missing whitespace around operator -./src/tfscreen/plot/plot_theta_fits.py:89:35: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:92:52: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:95:1: W293 blank line contains whitespace -./src/tfscreen/plot/plot_theta_fits.py:98:31: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:98:42: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:99:1: W293 blank line contains whitespace -./src/tfscreen/plot/plot_theta_fits.py:102:42: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:102:58: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:103:1: W293 blank line contains whitespace -./src/tfscreen/plot/plot_theta_fits.py:105:40: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:108:36: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:108:46: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:115:42: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:121:21: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:124:25: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:130:38: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:133:25: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:139:38: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:141:1: W293 blank line contains whitespace -./src/tfscreen/plot/plot_theta_fits.py:144:22: E231 missing whitespace after ',' -./src/tfscreen/plot/plot_theta_fits.py:153:1: W391 blank line at end of file -./src/tfscreen/plot/uncertainty_calibration.py:12:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/uncertainty_calibration.py:21:5: E125 continuation line with same indent as next logical line -./src/tfscreen/plot/uncertainty_calibration.py:24:63: W291 trailing whitespace -./src/tfscreen/plot/uncertainty_calibration.py:65:36: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:71:31: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:71:42: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:83:1: W293 blank line contains whitespace -./src/tfscreen/plot/uncertainty_calibration.py:84:20: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:84:30: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:87:15: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:87:18: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:87:21: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:87:31: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:87:36: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:87:49: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:89:21: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:90:19: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:90:27: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:90:30: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:90:40: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:90:45: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:90:58: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:91:25: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:91:28: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:91:38: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:91:41: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:91:46: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:91:59: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:92:1: W293 blank line contains whitespace -./src/tfscreen/plot/uncertainty_calibration.py:93:24: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:94:18: E231 missing whitespace after ',' -./src/tfscreen/plot/uncertainty_calibration.py:97:14: W292 no newline at end of file -./src/tfscreen/plot/xy_corr.py:14:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/plot/xy_corr.py:24:5: E125 continuation line with same indent as next logical line -./src/tfscreen/plot/xy_corr.py:63:47: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:64:35: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:69:31: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:69:42: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:88:17: E128 continuation line under-indented for visual indent -./src/tfscreen/plot/xy_corr.py:89:17: E128 continuation line under-indented for visual indent -./src/tfscreen/plot/xy_corr.py:91:20: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:91:28: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:91:36: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:91:44: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:91:49: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:91:62: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:91:67: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:93:23: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:94:23: E231 missing whitespace after ',' -./src/tfscreen/plot/xy_corr.py:97:14: W292 no newline at end of file -./src/tfscreen/process_raw/_counts_io.py:110:16: F541 f-string is missing placeholders -./src/tfscreen/process_raw/counts_to_lncfu.py:15:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/counts_to_lncfu.py:42:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/counts_to_lncfu.py:61:69: E231 missing whitespace after ',' -./src/tfscreen/process_raw/counts_to_lncfu.py:68:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/counts_to_lncfu.py:105:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/counts_to_lncfu.py:108:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/counts_to_lncfu.py:141:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/counts_to_lncfu.py:190:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/counts_to_lncfu.py:240:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/counts_to_lncfu.py:242:41: E231 missing whitespace after ',' -./src/tfscreen/process_raw/counts_to_lncfu.py:243:28: E231 missing whitespace after ',' -./src/tfscreen/process_raw/counts_to_lncfu.py:246:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/counts_to_lncfu.py:249:28: E231 missing whitespace after ',' -./src/tfscreen/process_raw/counts_to_lncfu.py:252:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/counts_to_lncfu.py:293:49: W291 trailing whitespace -./src/tfscreen/process_raw/counts_to_lncfu.py:302:49: E231 missing whitespace after ',' -./src/tfscreen/process_raw/counts_to_lncfu.py:302:66: E231 missing whitespace after ',' -./src/tfscreen/process_raw/counts_to_lncfu.py:303:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/counts_to_lncfu.py:306:52: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:21:14: E401 multiple imports on one line -./src/tfscreen/process_raw/fastq_to_counts.py:23:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/fastq_to_counts.py:191:44: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:226:74: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:235:29: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:258:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:259:77: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:260:75: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:261:70: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:266:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:271:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:278:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:308:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:310:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:316:15: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:328:42: E127 continuation line over-indented for visual indent -./src/tfscreen/process_raw/fastq_to_counts.py:331:42: E127 continuation line over-indented for visual indent -./src/tfscreen/process_raw/fastq_to_counts.py:332:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:340:70: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:343:76: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:344:40: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:347:54: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:350:55: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:357:66: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:371:18: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:373:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:384:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:500:73: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:506:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:507:37: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:507:46: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:512:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:513:55: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:514:55: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:515:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:516:28: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:528:50: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:529:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:532:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:534:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:536:58: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:538:32: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:538:55: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:542:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:544:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:545:32: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:545:55: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:546:57: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:548:35: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:552:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:557:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:558:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:559:9: E303 too many blank lines (2) -./src/tfscreen/process_raw/fastq_to_counts.py:559:73: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:567:5: E303 too many blank lines (2) -./src/tfscreen/process_raw/fastq_to_counts.py:567:30: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:567:38: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:571:15: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:574:79: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:575:79: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:577:74: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:578:21: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:581:54: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:587:54: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:590:77: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:591:20: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:613:77: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:615:77: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:616:77: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:620:77: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:621:43: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:645:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:650:65: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:661:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:668:74: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:669:73: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:670:78: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:674:40: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:677:34: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:677:38: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:733:35: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:733:44: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:737:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:738:40: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:747:68: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:752:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:753:33: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:753:43: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:757:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:767:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:770:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:778:34: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:778:44: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:778:54: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:778:67: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:787:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:794:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:795:37: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:795:47: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:799:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:806:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:808:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:809:30: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:809:39: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:812:76: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:815:22: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:817:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:820:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:821:67: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:822:26: E701 multiple statements on one line (colon) -./src/tfscreen/process_raw/fastq_to_counts.py:825:78: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:827:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:835:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:836:66: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:837:26: E701 multiple statements on one line (colon) -./src/tfscreen/process_raw/fastq_to_counts.py:841:49: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:843:67: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:844:70: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:845:26: E701 multiple statements on one line (colon) -./src/tfscreen/process_raw/fastq_to_counts.py:846:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:851:27: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:853:70: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:854:26: E701 multiple statements on one line (colon) -./src/tfscreen/process_raw/fastq_to_counts.py:855:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:859:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:862:29: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:862:38: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:864:62: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:865:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:866:74: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:893:50: W291 trailing whitespace -./src/tfscreen/process_raw/fastq_to_counts.py:894:50: E231 missing whitespace after ',' -./src/tfscreen/process_raw/fastq_to_counts.py:905:1: W391 blank line at end of file -./src/tfscreen/process_raw/scripts/process_counts_cli.py:15:28: E252 missing whitespace around parameter equals -./src/tfscreen/process_raw/scripts/process_counts_cli.py:15:29: E252 missing whitespace around parameter equals -./src/tfscreen/process_raw/scripts/process_counts_cli.py:16:26: E252 missing whitespace around parameter equals -./src/tfscreen/process_raw/scripts/process_counts_cli.py:16:27: E252 missing whitespace around parameter equals -./src/tfscreen/process_raw/scripts/process_counts_cli.py:17:21: E252 missing whitespace around parameter equals -./src/tfscreen/process_raw/scripts/process_counts_cli.py:17:22: E252 missing whitespace around parameter equals -./src/tfscreen/process_raw/scripts/process_counts_cli.py:18:5: E125 continuation line with same indent as next logical line -./src/tfscreen/process_raw/scripts/process_counts_cli.py:76:33: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_counts_cli.py:80:44: W292 no newline at end of file -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:74:87: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:75:87: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:76:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:84:76: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:89:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:92:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:93:78: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:123:70: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:124:70: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:134:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:143:74: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:180:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:203:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:215:45: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:25: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:244:40: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:247:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:277:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:297:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:298:22: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:299:22: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:300:22: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E111 indentation is not a multiple of 4 -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:336:10: E117 over-indented -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:341:27: E231 missing whitespace after ':' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:342:25: E231 missing whitespace after ':' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:346:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:347:69: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:348:73: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:349:72: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:350:54: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:364:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:37: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:369:54: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:387:67: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:398:71: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:404:71: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:407:80: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:411:70: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:424:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:444:29: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:451:23: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:452:23: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:453:23: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:454:23: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:455:23: E128 continuation line under-indented for visual indent -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:456:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:458:57: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:461:59: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:462:1: W293 blank line contains whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:465:38: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:466:31: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:468:37: W291 trailing whitespace -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:472:39: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:473:33: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:475:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/process_raw/scripts/process_fastq_cli.py:476:42: E231 missing whitespace after ',' -./src/tfscreen/process_raw/scripts/process_presplit_cli.py:82:34: E127 continuation line over-indented for visual indent -./src/tfscreen/process_raw/scripts/process_presplit_cli.py:83:34: E127 continuation line over-indented for visual indent -./src/tfscreen/process_raw/scripts/process_presplit_cli.py:84:34: E127 continuation line over-indented for visual indent -./src/tfscreen/process_raw/scripts/process_presplit_cli.py:91:31: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/__init__.py:29:2: W292 no newline at end of file -./src/tfscreen/simulate/binding_params.py:222:1: C901 'build_theta_gc_override_hill_mut' is too complex (15) -./src/tfscreen/simulate/binding_params.py:286:17: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:287:18: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:289:13: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:290:13: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:293:16: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:295:12: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:296:12: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:314:20: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:315:21: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:318:27: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:318:43: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:320:23: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:321:23: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:327:32: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:329:28: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:330:28: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:333:16: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:347:14: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:347:31: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:349:10: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:349:27: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:350:10: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:350:27: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:380:22: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:382:18: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:383:18: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:386:18: E221 multiple spaces before operator -./src/tfscreen/simulate/binding_params.py:388:15: E221 multiple spaces before operator -./src/tfscreen/simulate/build_sample_dataframes.py:4:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/simulate/build_sample_dataframes.py:56:1: W293 blank line contains whitespace -./src/tfscreen/simulate/build_sample_dataframes.py:68:1: W293 blank line contains whitespace -./src/tfscreen/simulate/build_sample_dataframes.py:83:1: W293 blank line contains whitespace -./src/tfscreen/simulate/build_sample_dataframes.py:87:1: W293 blank line contains whitespace -./src/tfscreen/simulate/build_sample_dataframes.py:95:21: W292 no newline at end of file -./src/tfscreen/simulate/library_prediction.py:76:1: C901 '_validate_binding_config' is too complex (13) -./src/tfscreen/simulate/library_prediction.py:212:43: E252 missing whitespace around parameter equals -./src/tfscreen/simulate/library_prediction.py:212:44: E252 missing whitespace around parameter equals -./src/tfscreen/simulate/presplit_data.py:55:15: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:56:17: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:57:16: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:58:16: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:62:20: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:63:22: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:64:21: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:83:48: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/presplit_data.py:84:14: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:85:16: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:90:17: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:103:19: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:106:19: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:107:17: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:108:16: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:111:17: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:113:25: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:115:19: E221 multiple spaces before operator -./src/tfscreen/simulate/presplit_data.py:129:19: E221 multiple spaces before operator -./src/tfscreen/simulate/run_simulation.py:12:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/simulate/run_simulation.py:17:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:18:36: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:21:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:22:23: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:22:36: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:22:53: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:22:62: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:24:47: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:25:32: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:34:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:38:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:44:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:46:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:50:38: E252 missing whitespace around parameter equals -./src/tfscreen/simulate/run_simulation.py:50:39: E252 missing whitespace around parameter equals -./src/tfscreen/simulate/run_simulation.py:51:39: E252 missing whitespace around parameter equals -./src/tfscreen/simulate/run_simulation.py:51:40: E252 missing whitespace around parameter equals -./src/tfscreen/simulate/run_simulation.py:53:74: W291 trailing whitespace -./src/tfscreen/simulate/run_simulation.py:56:78: W291 trailing whitespace -./src/tfscreen/simulate/run_simulation.py:71:77: W291 trailing whitespace -./src/tfscreen/simulate/run_simulation.py:72:74: W291 trailing whitespace -./src/tfscreen/simulate/run_simulation.py:74:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:79:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:82:46: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:83:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:88:51: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:88:62: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:91:26: E231 missing whitespace after ':' -./src/tfscreen/simulate/run_simulation.py:92:29: E231 missing whitespace after ':' -./src/tfscreen/simulate/run_simulation.py:93:33: E231 missing whitespace after ':' -./src/tfscreen/simulate/run_simulation.py:94:25: E231 missing whitespace after ':' -./src/tfscreen/simulate/run_simulation.py:95:25: E231 missing whitespace after ':' -./src/tfscreen/simulate/run_simulation.py:96:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:100:50: E231 missing whitespace after ',' -./src/tfscreen/simulate/run_simulation.py:101:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:106:1: W293 blank line contains whitespace -./src/tfscreen/simulate/run_simulation.py:107:1: W391 blank line at end of file -./src/tfscreen/simulate/sample_theta.py:170:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:171:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:172:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:173:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:174:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:175:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:176:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:177:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:178:30: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/sample_theta.py:271:19: E221 multiple spaces before operator -./src/tfscreen/simulate/scripts/setup_sim_grid_cli.py:101:1: C901 'setup_sim_grid' is too complex (17) -./src/tfscreen/simulate/scripts/simulate_cli.py:18:1: C901 'run_simulation_from_config' is too complex (15) -./src/tfscreen/simulate/scripts/simulate_cli.py:153:128: E501 line too long (153 > 127 characters) -./src/tfscreen/simulate/selection_experiment.py:42:38: E231 missing whitespace after ':' -./src/tfscreen/simulate/selection_experiment.py:43:37: E231 missing whitespace after ':' -./src/tfscreen/simulate/selection_experiment.py:44:36: E231 missing whitespace after ':' -./src/tfscreen/simulate/selection_experiment.py:45:36: E231 missing whitespace after ':' -./src/tfscreen/simulate/selection_experiment.py:46:36: E231 missing whitespace after ':' -./src/tfscreen/simulate/selection_experiment.py:73:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:74:1: C901 '_check_dict_number' is too complex (13) -./src/tfscreen/simulate/selection_experiment.py:74:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/simulate/selection_experiment.py:117:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:160:1: C901 '_check_cf' is too complex (25) -./src/tfscreen/simulate/selection_experiment.py:182:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:201:57: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:225:28: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:226:28: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:292:1: C901 '_check_lib_spec' is too complex (12) -./src/tfscreen/simulate/selection_experiment.py:292:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/simulate/selection_experiment.py:344:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:349:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:371:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:424:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:440:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:448:36: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:448:44: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:458:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/simulate/selection_experiment.py:468:78: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:511:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:515:77: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:516:75: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:526:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:529:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:575:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:586:38: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:587:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:590:53: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:594:55: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:600:32: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:605:30: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:606:53: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:610:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/simulate/selection_experiment.py:652:51: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:658:35: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:663:78: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:687:43: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:687:45: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:689:75: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:691:44: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:692:46: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:693:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:694:67: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:744:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:761:79: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:767:29: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:809:43: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:815:74: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:816:18: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:822:79: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:824:33: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:829:80: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:834:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:840:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:851:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:894:73: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:899:76: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:916:25: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1024:26: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1024:36: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1024:44: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1024:52: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1024:60: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1032:28: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1033:32: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1041:42: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1050:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1051:78: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1053:63: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1059:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1061:51: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1068:28: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1070:77: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1071:24: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1078:79: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1083:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1084:77: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1086:36: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1088:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1092:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1098:128: E501 line too long (145 > 127 characters) -./src/tfscreen/simulate/selection_experiment.py:1099:128: E501 line too long (145 > 127 characters) -./src/tfscreen/simulate/selection_experiment.py:1103:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1104:72: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1108:34: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1115:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1117:20: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1117:53: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1118:20: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1120:32: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1121:38: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1133:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1141:41: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1148:49: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1150:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1155:36: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1156:37: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1156:45: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1156:53: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1156:61: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1161:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/simulate/selection_experiment.py:1196:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1217:57: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1218:53: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1221:28: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1221:39: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1226:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1232:78: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1235:19: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1243:33: E261 at least two spaces before inline comment -./src/tfscreen/simulate/selection_experiment.py:1244:49: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1245:37: E231 missing whitespace after ':' -./src/tfscreen/simulate/selection_experiment.py:1247:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1248:76: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1250:19: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1252:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1260:77: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1261:43: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1265:41: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/selection_experiment.py:1268:49: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1292:71: W291 trailing whitespace -./src/tfscreen/simulate/selection_experiment.py:1300:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1301:76: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1306:11: F541 f-string is missing placeholders -./src/tfscreen/simulate/selection_experiment.py:1311:38: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1328:6: E114 indentation is not a multiple of 4 (comment) -./src/tfscreen/simulate/selection_experiment.py:1335:51: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1336:48: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1337:1: W293 blank line contains whitespace -./src/tfscreen/simulate/selection_experiment.py:1338:33: E231 missing whitespace after ',' -./src/tfscreen/simulate/selection_experiment.py:1341:1: W391 blank line at end of file -./src/tfscreen/simulate/sim_data_class.py:97:1: E303 too many blank lines (3) -./src/tfscreen/simulate/thermo_to_growth.py:102:36: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/thermo_to_growth.py:103:36: E127 continuation line over-indented for visual indent -./src/tfscreen/simulate/thermo_to_growth.py:289:1: C901 'thermo_to_growth' is too complex (21) -./src/tfscreen/simulate/thermo_to_growth.py:644:41: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/__init__.py:2:73: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:3:20: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:18:65: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:22:76: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:23:19: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:26:66: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:30:72: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:33:26: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:37:37: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:40:9: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:41:77: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:43:56: W291 trailing whitespace -./src/tfscreen/tfmodel/__init__.py:46:1: W391 blank line at end of file -./src/tfscreen/tfmodel/analysis/batch_sizing.py:33:34: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/batch_sizing.py:34:34: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/batch_sizing.py:35:34: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/batch_sizing.py:119:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/batch_sizing.py:120:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/batch_sizing.py:121:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/batch_sizing.py:122:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/error_calibration.py:474:32: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/error_calibration.py:511:1: C901 'summarize_sbc' is too complex (16) -./src/tfscreen/tfmodel/analysis/extraction.py:81:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/analysis/extraction.py:85:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/analysis/extraction.py:103:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/analysis/extraction.py:196:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/analysis/extraction.py:274:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/analysis/extraction.py:462:29: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/analysis/extraction.py:463:29: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/analysis/extraction.py:518:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/extraction.py:570:1: C901 'extract_growth_predictions' is too complex (11) -./src/tfscreen/tfmodel/analysis/extraction.py:669:32: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/analysis/extraction.py:688:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/extraction.py:690:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/extraction.py:691:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/predict_unmeasured.py:41:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/predict_unmeasured.py:45:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/predict_unmeasured.py:99:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/predict_unmeasured.py:120:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/analysis/prediction.py:13:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/analysis/prediction.py:165:1: C901 'copy_orchestrator' is too complex (11) -./src/tfscreen/tfmodel/analysis/prediction.py:292:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/analysis/prediction.py:399:1: C901 'predict' is too complex (29) -./src/tfscreen/tfmodel/analysis/prediction.py:542:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/analysis/prediction.py:545:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/analysis/prediction.py:550:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/analysis/prediction.py:570:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/analysis/prediction.py:572:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/analysis/prediction.py:604:58: E741 ambiguous variable name 'l' -./src/tfscreen/tfmodel/analysis/prediction.py:607:26: E111 indentation is not a multiple of 4 -./src/tfscreen/tfmodel/analysis/prediction.py:607:26: E117 over-indented -./src/tfscreen/tfmodel/analysis/prediction.py:610:25: E122 continuation line missing indentation or outdented -./src/tfscreen/tfmodel/analysis/prediction.py:616:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/analysis/prior_predictive.py:109:33: E203 whitespace before ':' -./src/tfscreen/tfmodel/configuration_io.py:21:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:39:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:70:1: C901 '_update_dataclass' is too complex (11) -./src/tfscreen/tfmodel/configuration_io.py:125:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:254:1: C901 'write_configuration' is too complex (40) -./src/tfscreen/tfmodel/configuration_io.py:359:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:362:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:364:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:365:40: E713 test for membership should be 'not in' -./src/tfscreen/tfmodel/configuration_io.py:371:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:372:31: E713 test for membership should be 'not in' -./src/tfscreen/tfmodel/configuration_io.py:378:18: W291 trailing whitespace -./src/tfscreen/tfmodel/configuration_io.py:394:33: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/configuration_io.py:406:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:442:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/configuration_io.py:442:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/configuration_io.py:444:1: C901 'read_configuration' is too complex (19) -./src/tfscreen/tfmodel/configuration_io.py:444:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/configuration_io.py:481:128: E501 line too long (139 > 127 characters) -./src/tfscreen/tfmodel/configuration_io.py:500:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:501:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:502:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:503:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:504:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:505:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/configuration_io.py:511:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:536:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/configuration_io.py:541:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/data_class.py:12:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/data_class.py:27:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/data_class.py:28:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/data_class.py:42:76: W291 trailing whitespace -./src/tfscreen/tfmodel/data_class.py:116:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/data_class.py:133:49: W291 trailing whitespace -./src/tfscreen/tfmodel/data_class.py:135:76: W291 trailing whitespace -./src/tfscreen/tfmodel/data_class.py:291:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/data_class.py:298:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/data_class.py:299:5: E266 too many leading '#' for block comment -./src/tfscreen/tfmodel/generative/components/__init__.py:3:4: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:8:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:16:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:17:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:48:46: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:51:45: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:54:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:59:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:60:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:71:46: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:74:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:78:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/fixed.py:108:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:46:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:47:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:107:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:117:39: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:120:57: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:124:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:125:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:163:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:165:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:176:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:186:57: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:204:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:240:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:244:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py:263:7: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:54:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py:112:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:9:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:23:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:24:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:63:83: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:64:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:65:38: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:70:41: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:87:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:95:39: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:98:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:103:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:104:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:116:61: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:119:79: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:120:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:37: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:122:64: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:39: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:124:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:125:39: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:126:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:128:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:130:67: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:133:38: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:157:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:165:54: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:169:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:179:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:213:64: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:214:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:218:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py:237:7: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:72:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py:141:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:7:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:14:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:15:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:19:74: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:33:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:42:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:45:51: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:48:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:52:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:53:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:63:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:66:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:70:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:82:21: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:84:47: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:93:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py:98:14: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:36:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:38:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:39:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:42:71: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:43:36: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:44:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:49:20: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:103:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:104:106: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:107:33: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:110:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:112:51: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:115:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:119:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:120:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:168:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:169:80: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:83: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:170:97: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:182:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:190:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:50: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:192:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:196:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:212:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:214:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:260:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:262:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:269:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:270:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:277:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:280:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:285:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:300:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:302:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:304:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:305:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:306:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:307:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:309:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:310:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:312:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:313:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:316:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:327:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:328:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:329:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:336:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:337:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:338:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:341:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:344:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:345:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:348:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:351:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:355:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py:367:5: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/growth/linear.py:28:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/growth/linear.py:107:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:280:40: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/growth/linear.py:304:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:318:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:324:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:326:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:327:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:328:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:329:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:330:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:331:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:332:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:333:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:334:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/linear.py:357:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/growth/power.py:25:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/growth/saturation.py:23:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:133:30: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/growth_transition/baranyi.py:135:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:14:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:15:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:23:75: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:52:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:53:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:73:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/growth_transition/instant.py:79:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:40:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:41:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:42:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:95:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:101:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:213:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:230:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:294:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:332:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:415:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:416:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:417:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:418:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:419:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:420:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:421:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:422:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:423:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:428:1: C901 '_empirical_group_estimates' is too complex (15) -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:457:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:458:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:460:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:485:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:488:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:505:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:514:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:524:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:527:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:530:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:544:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:545:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:548:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:549:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:561:46: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:575:16: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:619:45: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:624:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:625:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:626:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:641:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:645:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:649:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:650:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:652:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:656:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:666:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:673:15: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py:711:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:134:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:239:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:315:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:316:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:317:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:318:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:319:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:320:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:321:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:322:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:323:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:324:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:329:15: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:346:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:347:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:354:16: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:391:45: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:396:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:397:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:398:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:409:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:413:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:415:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:416:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:418:21: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:436:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py:448:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/noise/beta.py:10:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:76:6: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:77:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:91:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:94:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:97:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:103:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:104:70: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:105:65: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:106:71: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:107:67: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:112:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:117:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:128:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:130:41: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:139:68: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:143:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:146:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:168:26: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/noise/beta.py:185:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/beta.py:195:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/beta.py:204:48: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/noise/zero.py:8:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/zero.py:50:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/zero.py:95:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/noise/zero.py:100:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/noise/zero.py:109:48: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:125:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:217:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:274:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:277:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:407:41: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:446:27: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:499:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:537:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:541:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:542:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:544:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:545:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:559:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py:565:18: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:160:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:166:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:167:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:170:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:176:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:178:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:179:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:182:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:186:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:259:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:261:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:262:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:53: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:267:74: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:269:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:270:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:271:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:274:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:276:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:312:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:317:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:321:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:326:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:330:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:335:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:339:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:344:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:349:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:353:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:357:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:361:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:369:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:372:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:375:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:378:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:384:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:388:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:390:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:53: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:397:74: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:399:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:400:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:401:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:403:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:405:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:464:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:466:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:469:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:482:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:484:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:485:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:490:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:492:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:493:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:498:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:500:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:501:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:506:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:508:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:509:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:514:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:516:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:517:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:520:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:521:70: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:522:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:526:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:529:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:19: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:530:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:19: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:531:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:532:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:533:16: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:14: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:534:16: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:565:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:568:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:571:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:572:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:598:48: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:599:50: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:600:46: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:602:50: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:603:52: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:604:48: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:606:49: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:607:51: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:608:47: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:610:49: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:611:51: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:612:47: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:632:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:666:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:674:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:675:45: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:676:45: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:678:44: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:680:44: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:683:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:685:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:686:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:771:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:773:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:774:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:777:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:779:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:780:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:792:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:820:40: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:882:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_geno.py:885:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:193:76: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:300:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:301:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:302:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:340:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:342:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:343:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:354:38: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:356:36: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:357:36: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:367:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:369:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:370:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:373:44: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:375:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:376:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:608:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:610:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:611:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:44: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:617:73: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:619:71: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:620:71: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:700:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:702:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:705:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:712:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:714:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:715:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:748:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:750:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:751:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:755:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:756:70: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:757:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:761:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:764:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:19: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:765:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:19: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:766:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:767:21: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:768:16: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:14: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:769:16: E251 unexpected spaces around keyword / parameter equals -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:846:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1013:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1015:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1016:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1017:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1018:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1019:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1020:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1023:43: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1025:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1026:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1029:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1031:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1032:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1033:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1035:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1036:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1040:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1042:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1043:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1086:40: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1141:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1154:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/hill_mut.py:1157:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:47:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:180:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:188:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:189:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:190:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:377:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:385:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:386:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:387:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:392:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:394:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:396:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:399:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:401:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:403:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:409:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:411:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:414:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:415:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:416:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:417:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:422:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:424:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:426:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:429:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:430:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:431:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:432:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:444:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:446:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:447:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:473:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:474:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:490:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:496:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:497:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:498:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:499:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:501:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:505:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:506:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:507:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:508:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:510:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:514:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:516:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:517:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:519:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:523:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:524:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:525:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:526:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:529:128: E501 line too long (132 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:530:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:533:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:534:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:535:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:536:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:539:128: E501 line too long (132 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:540:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:600:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:603:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:607:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:610:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:614:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:633:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:634:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:635:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:643:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:644:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:645:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:646:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:647:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:648:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:649:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:650:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:651:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:652:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:653:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:654:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:655:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:656:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:657:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:660:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:661:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:662:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:663:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:664:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:665:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:666:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:667:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:668:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:669:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:670:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:671:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:797:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:798:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:799:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:801:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py:880:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:67:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:81:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:82:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:83:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:84:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:85:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:222:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:223:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:228:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:229:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:233:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:234:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:260:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:270:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:332:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:337:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:338:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:339:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:342:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:343:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:347:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:349:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:351:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:353:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:355:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:364:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:402:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:406:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:408:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:409:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:410:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:411:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:412:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:414:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:418:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:431:24: E741 ambiguous variable name 'l' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:434:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:435:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:471:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:473:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:475:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:477:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:479:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:481:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:482:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:483:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:484:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:485:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:486:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:487:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:496:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:497:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:498:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:499:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:500:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:501:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:504:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:505:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:516:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:518:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:519:5: F841 local variable 'titrant_names' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:556:25: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py:698:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:80:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:101:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:102:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:103:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:104:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:105:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:259:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:264:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:267:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:270:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:271:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:305:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:320:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:363:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:383:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:388:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:389:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:392:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:395:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:396:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:400:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:402:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:404:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:406:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:408:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:423:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:461:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:465:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:467:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:468:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:469:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:470:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:471:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:473:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:477:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:490:24: E741 ambiguous variable name 'l' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:493:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:494:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:515:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:536:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:539:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:542:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:546:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:550:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:563:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:565:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:566:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:567:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:568:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:577:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:578:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:579:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:580:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:581:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:582:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:585:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:586:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:717:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:720:5: F841 local variable 'titrant_names' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:757:25: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py:781:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:181:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:269:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:299:40: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/thermo.py:367:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:37:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:175:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:183:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:184:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:185:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:240:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:291:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:384:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:392:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:393:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:394:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:399:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:401:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:403:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:405:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:406:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:408:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:410:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:412:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:414:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:415:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:420:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:422:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:425:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:426:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:427:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:428:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:433:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:435:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:437:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:439:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:440:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:442:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:443:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:444:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:445:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:457:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:459:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:460:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:481:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:485:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:488:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:489:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:497:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:506:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:512:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:513:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:514:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:515:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:517:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:521:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:522:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:523:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:524:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:526:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:530:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:531:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:532:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:533:128: E501 line too long (138 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:535:128: E501 line too long (128 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:539:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:540:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:541:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:542:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:545:128: E501 line too long (132 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:546:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:549:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:550:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:551:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:552:128: E501 line too long (142 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:555:128: E501 line too long (132 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:556:128: E501 line too long (129 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:618:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:621:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:625:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:628:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:632:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:635:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:636:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:653:36: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:655:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:656:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:657:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:665:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:666:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:667:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:668:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:669:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:670:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:671:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:672:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:673:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:674:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:675:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:676:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:677:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:678:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:679:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:680:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:681:35: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:682:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:685:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:686:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:687:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:688:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:689:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:690:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:691:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:692:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:693:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:694:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:695:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:696:41: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:770:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:778:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:786:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:806:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:826:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:827:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:828:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:830:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py:910:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:84:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:98:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:99:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:100:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:101:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:102:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:242:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:243:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:248:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:249:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:253:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:254:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:287:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:297:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:359:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:365:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:368:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:369:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:371:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:374:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:376:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:378:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:380:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:382:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:386:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:395:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:437:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:441:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:443:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:444:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:445:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:446:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:447:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:449:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:453:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:466:24: E741 ambiguous variable name 'l' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:469:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:470:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:507:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:509:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:511:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:513:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:515:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:519:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:520:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:521:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:522:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:523:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:524:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:525:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:526:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:527:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:536:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:537:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:538:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:539:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:540:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:541:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:542:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:545:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:546:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:557:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:559:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:560:5: F841 local variable 'titrant_names' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:597:25: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:690:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:707:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:708:38: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:727:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py:746:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:85:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:100:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:101:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:102:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:103:38: E202 whitespace before ']' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:104:6: E201 whitespace after '[' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:258:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:263:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:266:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:269:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:270:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:309:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:324:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:368:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:388:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:393:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:394:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:397:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:400:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:401:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:405:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:407:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:409:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:411:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:413:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:417:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:432:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:474:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:478:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:480:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:481:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:482:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:483:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:484:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:486:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:490:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:503:24: E741 ambiguous variable name 'l' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:506:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:507:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:529:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:544:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:546:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:548:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:550:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:552:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:556:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:557:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:564:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:566:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:567:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:568:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:569:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:578:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:579:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:580:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:581:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:582:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:583:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:584:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:587:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:588:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:666:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:701:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:722:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:725:5: F841 local variable 'titrant_names' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:762:25: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U1_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py:786:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:104:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:155:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:230:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:246:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:276:40: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:336:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:353:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/thermo.py:360:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:236:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:237:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:238:31: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:276:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:288:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:299:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:304:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:535:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:543:53: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:565:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:568:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:571:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:572:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:574:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:575:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:577:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:578:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:579:36: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:581:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:582:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:583:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:591:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:592:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:593:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:594:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:595:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:596:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:597:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:598:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:599:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:602:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:603:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:604:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:605:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:606:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:607:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:608:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:609:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:679:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:684:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:696:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:699:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:704:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py:808:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:64:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:164:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:168:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:173:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:200:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:201:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:206:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:207:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:239:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:272:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:290:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:296:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:301:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:304:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:306:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:308:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:317:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:353:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:357:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:359:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:360:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:361:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:362:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:363:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:365:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:369:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:382:24: E741 ambiguous variable name 'l' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:385:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:386:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:403:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:416:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:418:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:420:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:421:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:422:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:423:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:424:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:426:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:427:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:436:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:437:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:438:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:439:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:442:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:443:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:514:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:518:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:530:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:533:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:537:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:555:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:557:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:558:5: F841 local variable 'titrant_names' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py:613:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:75:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:182:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:190:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:222:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:231:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:241:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:250:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:251:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:252:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:260:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:269:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:286:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:292:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:295:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:302:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:304:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:306:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:321:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:330:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:332:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:333:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:334:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:19: E225 missing whitespace around operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:335:59: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:336:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:19: E225 missing whitespace around operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:337:59: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:358:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:363:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:380:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:384:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:395:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:396:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:397:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:401:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:405:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:418:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:420:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:422:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:423:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:428:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:430:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:431:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:432:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:433:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:438:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:439:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:440:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:442:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:443:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:444:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:445:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:448:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:449:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:450:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:451:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:521:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:525:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:537:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:540:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:544:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:562:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:565:5: F841 local variable 'titrant_names' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U0_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py:622:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:133:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:137:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:142:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:143:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:165:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:234:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:237:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:238:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:243:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:249:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:250:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:275:40: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:342:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:356:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/thermo.py:361:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:38:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:160:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:198:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:199:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:212:34: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:221:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:222:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:227:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:264:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:266:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:268:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:269:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:271:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:273:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:275:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:276:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:278:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:280:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:281:23: E225 missing whitespace around operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:284:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:286:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:288:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:289:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:290:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:291:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:301:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:303:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:304:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:306:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:307:128: E501 line too long (135 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:308:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:309:128: E501 line too long (135 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:310:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:311:128: E501 line too long (135 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:312:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:24: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:313:128: E501 line too long (135 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:314:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:315:128: E501 line too long (140 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:316:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:317:128: E501 line too long (140 > 127 characters) -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:324:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:327:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:330:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:336:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:344:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:360:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:361:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:369:53: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:385:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:387:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:389:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:390:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:392:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:393:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:394:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:395:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:396:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:397:37: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:398:36: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:399:36: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:400:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:401:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:402:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:410:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:411:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:412:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:413:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:414:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:415:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:416:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:417:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:420:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:421:33: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:424:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:425:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:426:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:427:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:428:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:429:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:430:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:431:39: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:479:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:480:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:484:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:485:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:489:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:490:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:495:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:498:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:502:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:503:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py:608:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:43:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:108:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:111:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:115:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:135:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:136:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:141:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:142:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:171:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:205:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:223:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:229:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:234:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:236:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:238:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:240:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:241:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:242:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:247:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:264:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:276:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:277:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:281:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:283:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:284:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:285:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:286:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:287:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:289:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:293:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:306:24: E741 ambiguous variable name 'l' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:309:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:310:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:327:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:339:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:341:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:343:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:344:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:345:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:346:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:347:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:348:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:349:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:351:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:352:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:361:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:362:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:363:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:364:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:365:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:368:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:369:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:423:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:424:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:428:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:432:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:434:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:439:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:442:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:446:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:465:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:467:5: F841 local variable 'titrant_dim' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py:519:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.run_model' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:50:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.get_population_moments' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:124:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:132:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:165:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:174:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:176:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:195:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:196:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:197:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:205:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:214:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:231:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:237:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:240:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:246:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:248:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:250:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:251:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:252:19: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:262:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:272:47: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:274:47: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:278:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:291:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:294:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:296:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:297:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:298:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:19: E225 missing whitespace around operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:299:59: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:300:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:19: E225 missing whitespace around operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:301:59: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:304:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:314:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:318:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:319:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:330:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:331:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:336:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:340:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:352:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:354:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:356:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:357:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:358:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:359:31: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:362:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:363:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:364:30: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:365:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:366:22: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:375:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:376:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:377:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:378:27: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:379:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:382:29: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:383:28: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:384:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:385:32: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:437:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:438:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:442:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:446:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:449:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:454:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:457:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:461:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:480:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:483:5: F841 local variable 'titrant_names' is assigned to but never used -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.build_calc_df' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C4_K3_U1_a.thermo.compute_theta_samples' imported but unused -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py:533:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:115:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:116:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:121:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:126:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:127:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:144:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:211:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:212:8: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:215:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:216:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:221:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:227:9: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:228:6: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:249:40: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:309:17: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:323:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:324:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:328:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/thermo.py:329:15: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:99:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:110:40: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:111:48: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/features.py:112:49: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:81:7: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:96:16: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py:107:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:86:14: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:115:21: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:171:13: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/io.py:181:18: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/theta/thermo/nn.py:62:10: E221 multiple spaces before operator -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:13:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:17:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:35:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:38:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:50:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:54:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:58:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:61:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:131:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:133:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:158:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:164:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:169:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:177:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:179:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:183:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:187:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:191:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:194:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:196:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:199:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:206:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:209:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:213:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:234:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:243:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:251:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:272:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:281:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:307:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:308:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:309:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:333:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:354:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:366:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:369:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:370:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:393:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:416:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:423:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:523:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/generative/components/transformation/_congression.py:536:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/empirical.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/empirical.py:19:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/empirical.py:32:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:20:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:33:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py:58:36: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/generative/components/transformation/single.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/single.py:9:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/components/transformation/single.py:14:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/single.py:14:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/single.py:15:35: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/single.py:21:25: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/generative/components/transformation/single.py:23:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/single.py:23:21: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/single.py:24:28: W291 trailing whitespace -./src/tfscreen/tfmodel/generative/components/transformation/single.py:32:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/single.py:45:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/single.py:51:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/components/transformation/single.py:57:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/model.py:11:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/model.py:47:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/model.py:114:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:115:24: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:115:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:145:36: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:146:24: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:146:44: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/model.py:287:28: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:288:28: F541 f-string is missing placeholders -./src/tfscreen/tfmodel/generative/model.py:295:1: W391 blank line at end of file -./src/tfscreen/tfmodel/generative/observe/binding.py:9:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/observe/binding.py:42:71: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/observe/binding.py:43:75: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/observe/binding.py:44:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/observe/binding.py:44:74: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/observe/binding.py:56:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/observe/binding.py:57:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/observe/binding.py:67:11: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/observe/growth.py:8:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/observe/growth.py:66:68: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/observe/growth.py:66:89: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/generative/observe/growth.py:73:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/generative/observe/growth.py:79:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/generative/observe/growth.py:104:5: F841 local variable 'nu' is assigned to but never used -./src/tfscreen/tfmodel/generative/observe/growth.py:123:52: W292 no newline at end of file -./src/tfscreen/tfmodel/generative/registry.py:64:23: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:65:17: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:66:16: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:67:21: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:69:14: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:70:23: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:71:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:73:14: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:74:16: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:75:28: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:76:17: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:78:15: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:79:16: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:80:28: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:81:25: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:82:27: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:83:24: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:85:21: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:90:20: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:94:12: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:95:18: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:96:27: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:97:20: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:98:19: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:99:34: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:100:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:101:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:102:34: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:103:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:104:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:105:35: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:106:37: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:107:37: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:108:35: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:109:37: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:110:37: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:112:25: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:113:15: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:114:15: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:115:23: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:117:26: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:118:15: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:119:15: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:121:19: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:122:15: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:123:20: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:125:20: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:126:15: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:127:17: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:129:24: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:130:18: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:131:17: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:132:18: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:133:20: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:134:22: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:135:18: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:137:22: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:138:21: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:139:23: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/generative/registry.py:140:26: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/posteriors.py:72:1: C901 'load_posteriors' is too complex (12) -./src/tfscreen/tfmodel/inference/posteriors.py:72:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/inference/posteriors.py:117:17: F841 local variable 'e' is assigned to but never used -./src/tfscreen/tfmodel/inference/run_inference.py:83:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/inference/run_inference.py:85:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/inference/run_inference.py:92:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/inference/run_inference.py:92:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:93:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:94:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:95:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:96:1: E402 module level import not at top of file -./src/tfscreen/tfmodel/inference/run_inference.py:97:1: E302 expected 2 blank lines, found 0 -./src/tfscreen/tfmodel/inference/run_inference.py:100:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:101:69: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:107:22: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:107:28: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:122:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:128:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:130:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:144:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:156:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/inference/run_inference.py:231:58: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:232:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:279:5: C901 'RunInference.run_optimization' is too complex (19) -./src/tfscreen/tfmodel/inference/run_inference.py:378:77: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:379:73: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:393:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:396:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:397:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:406:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:408:53: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:416:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:443:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:454:48: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:459:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:463:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:473:128: E501 line too long (177 > 127 characters) -./src/tfscreen/tfmodel/inference/run_inference.py:479:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:480:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:485:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:487:60: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:501:36: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:502:50: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:503:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:525:5: C901 'RunInference._get_genotype_dim_map' is too complex (14) -./src/tfscreen/tfmodel/inference/run_inference.py:551:26: E261 at least two spaces before inline comment -./src/tfscreen/tfmodel/inference/run_inference.py:864:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:866:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/inference/run_inference.py:866:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:866:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:899:31: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:911:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:912:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:919:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/inference/run_inference.py:919:31: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:919:41: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:933:31: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:934:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:935:35: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:936:33: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:937:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:938:33: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:939:35: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/inference/run_inference.py:946:38: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:947:31: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1044:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1058:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1061:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1062:49: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1071:36: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1078:27: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1078:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1080:61: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1129:5: E303 too many blank lines (4) -./src/tfscreen/tfmodel/inference/run_inference.py:1170:26: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1170:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1173:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1185:41: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1187:32: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1187:42: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1260:5: C901 'RunInference.get_map_posteriors' is too complex (12) -./src/tfscreen/tfmodel/inference/run_inference.py:1492:50: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/inference/run_inference.py:1533:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1536:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1541:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1549:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/inference/run_inference.py:1553:30: W291 trailing whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1556:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1560:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/inference/run_inference.py:1566:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:39:1: E303 too many blank lines (3) -./src/tfscreen/tfmodel/model_orchestrator.py:73:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:76:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:80:25: E222 multiple spaces after operator -./src/tfscreen/tfmodel/model_orchestrator.py:80:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:80:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:81:42: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:85:65: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:85:88: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:105:30: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:105:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:105:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:105:63: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:106:52: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:120:25: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:124:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:125:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:127:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/model_orchestrator.py:210:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:213:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:213:73: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:215:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:216:61: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:217:61: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:218:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:219:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:221:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:222:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:223:38: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:224:38: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:227:63: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:228:73: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:229:73: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:239:63: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:244:42: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:244:52: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:244:68: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:245:29: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:246:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:247:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:247:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:247:72: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:288:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:297:33: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:297:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:298:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:301:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:307:27: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:336:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/model_orchestrator.py:368:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:369:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:370:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:372:23: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:373:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:374:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:378:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:457:12: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:531:66: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:658:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:661:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:666:52: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:667:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:674:30: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:678:38: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:774:82: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:779:87: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:782:84: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:935:5: C901 'ModelOrchestrator._initialize_data' is too complex (21) -./src/tfscreen/tfmodel/model_orchestrator.py:935:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:960:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:961:28: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:963:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:964:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:964:48: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:964:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:965:46: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:965:66: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:966:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:970:39: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:971:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:976:67: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:983:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:985:10: E114 indentation is not a multiple of 4 (comment) -./src/tfscreen/tfmodel/model_orchestrator.py:985:10: E116 unexpected indentation (comment) -./src/tfscreen/tfmodel/model_orchestrator.py:987:76: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:990:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1019:49: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1031:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1039:57: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1061:38: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1062:41: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1062:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1063:44: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1063:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1064:40: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1064:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1065:46: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1065:71: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1067:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1074:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1094:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1094:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1094:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1101:40: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1147:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:1148:32: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1149:26: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:1150:32: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1190:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1193:78: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1194:32: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1195:60: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1199:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1200:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1201:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1202:38: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1204:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1215:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1215:62: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1218:74: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1219:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1224:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1225:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1226:58: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1228:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1233:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1237:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1241:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1244:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1250:86: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1252:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1259:77: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1320:57: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1329:25: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1341:33: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1342:34: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1343:35: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1344:38: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1345:39: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1352:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1353:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1354:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:1430:25: E221 multiple spaces before operator -./src/tfscreen/tfmodel/model_orchestrator.py:1431:31: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1433:31: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/model_orchestrator.py:1506:5: C901 'ModelOrchestrator._initialize_classes' is too complex (25) -./src/tfscreen/tfmodel/model_orchestrator.py:1526:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1528:67: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1529:71: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1531:68: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1532:77: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1533:75: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1534:40: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1551:42: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1552:43: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1553:40: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1553:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1553:53: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1553:56: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/model_orchestrator.py:1553:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1642:75: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1645:69: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1666:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1668:9: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:1752:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1757:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/model_orchestrator.py:1771:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1781:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1791:75: W291 trailing whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1805:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1808:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1837:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1849:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1873:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/model_orchestrator.py:1879:25: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1880:27: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1881:31: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1882:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1883:22: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1884:22: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1885:32: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1886:23: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1887:20: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1888:29: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1889:36: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1890:28: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1891:33: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1892:34: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1893:27: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1894:28: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1895:31: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_orchestrator.py:1896:27: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/model_stats.py:790:1: C901 'format_model_stats' is too complex (12) -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:357:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:358:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:359:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:360:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:361:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:362:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:363:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:364:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:365:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:366:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:367:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:368:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:369:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:370:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:371:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:372:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:373:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:374:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:375:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:376:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:377:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:378:22: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:400:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:402:59: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:403:58: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:404:60: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:405:63: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:406:63: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:407:60: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:408:59: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:409:63: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:410:70: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:411:70: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/configure_model_cli.py:413:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E114 indentation is not a multiple of 4 (comment) -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:101:6: E116 unexpected indentation (comment) -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:124:27: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:128:35: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:130:47: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:134:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:265:39: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:267:51: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:271:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:361:1: C901 'fit_model' is too complex (15) -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:609:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:611:60: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:612:53: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:613:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:614:59: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:615:65: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:616:66: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:617:66: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:618:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:619:65: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:620:64: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:621:72: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:622:74: E231 missing whitespace after ':' -./src/tfscreen/tfmodel/scripts/fit_model_cli.py:624:1: E305 expected 2 blank lines after class or function definition, found 1 -./src/tfscreen/tfmodel/scripts/predict_growth_cli.py:65:1: C901 'predict_growth' is too complex (16) -./src/tfscreen/tfmodel/scripts/predict_growth_cli.py:193:27: E128 continuation line under-indented for visual indent -./src/tfscreen/tfmodel/scripts/predict_theta_cli.py:12:1: C901 'predict_theta' is too complex (11) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:129:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:130:23: E221 multiple spaces before operator -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:221:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:222:11: E221 multiple spaces before operator -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:227:20: E221 multiple spaces before operator -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:408:1: C901 '_inject_calibration_priors' is too complex (21) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:667:1: C901 '_build_csv_updates' is too complex (12) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:736:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:737:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:738:35: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:914:1: C901 '_apply_priors_updates' is too complex (13) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1000:1: C901 '_apply_guesses_updates' is too complex (12) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1152:1: E303 too many blank lines (3) -./src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py:1156:1: E302 expected 2 blank lines, found 3 -./src/tfscreen/tfmodel/scripts/setup_grid_cli.py:164:1: C901 'setup_grid' is too complex (17) -./src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:40:1: C901 'subset_genotypes' is too complex (23) -./src/tfscreen/tfmodel/scripts/subset_genotypes_cli.py:93:5: F841 local variable 'all_genotypes' is assigned to but never used -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:208:1: C901 '_read_all_losses' is too complex (11) -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:467:1: C901 '_summarize_params' is too complex (23) -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:582:1: C901 '_summarize_condition_growth_params' is too complex (14) -./src/tfscreen/tfmodel/scripts/summarize_fit_cli.py:777:1: C901 'summarize_fit' is too complex (59) -./src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:47:30: E127 continuation line over-indented for visual indent -./src/tfscreen/tfmodel/scripts/summarize_grid_cli.py:57:1: C901 'summarize_grid' is too complex (11) -./src/tfscreen/tfmodel/tensors/batch.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/tensors/batch.py:44:59: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:46:47: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:47:55: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:48:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:49:45: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:50:69: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:51:69: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:52:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/batch.py:53:67: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/populate_dataclass.py:6:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/tensors/populate_dataclass.py:74:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/populate_dataclass.py:86:63: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/populate_dataclass.py:95:28: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/populate_dataclass.py:101:1: W391 blank line at end of file -./src/tfscreen/tfmodel/tensors/tensor_manager.py:13:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/tfmodel/tensors/tensor_manager.py:52:22: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:52:27: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:69:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:80:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/tensors/tensor_manager.py:107:74: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:111:54: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:113:39: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:118:49: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:119:50: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:122:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:148:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:161:79: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:179:39: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:183:71: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:184:67: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:186:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:200:51: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:204:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/tensors/tensor_manager.py:236:78: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:238:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:244:43: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:256:29: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:256:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:282:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/tensors/tensor_manager.py:295:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:302:75: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:308:58: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:314:78: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:315:77: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:320:84: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:321:55: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:322:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:330:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:331:34: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:334:37: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:339:74: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:357:70: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:361:70: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:365:84: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:366:55: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:367:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:377:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:379:34: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:395:75: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:398:53: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:405:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:409:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:410:82: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:422:36: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:429:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:435:78: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:451:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:452:43: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:458:66: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:460:51: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:466:78: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:467:75: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:469:77: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:476:73: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:477:73: W291 trailing whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:487:40: E231 missing whitespace after ',' -./src/tfscreen/tfmodel/tensors/tensor_manager.py:493:5: E303 too many blank lines (2) -./src/tfscreen/tfmodel/tensors/tensor_manager.py:502:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:512:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:517:1: W293 blank line contains whitespace -./src/tfscreen/tfmodel/tensors/tensor_manager.py:528:1: W391 blank line at end of file -./src/tfscreen/util/__init__.py:79:2: W292 no newline at end of file -./src/tfscreen/util/cli/__init__.py:16:1: W391 blank line at end of file -./src/tfscreen/util/cli/generalized_main.py:1:11: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:5:1: C901 'generalized_main' is too complex (15) -./src/tfscreen/util/cli/generalized_main.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/cli/generalized_main.py:13:78: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:14:46: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:24:69: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:27:51: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:30:51: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:57:77: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:58:36: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:67:1: W293 blank line contains whitespace -./src/tfscreen/util/cli/generalized_main.py:69:30: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:74:1: W293 blank line contains whitespace -./src/tfscreen/util/cli/generalized_main.py:75:74: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:85:58: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:87:34: E231 missing whitespace after ',' -./src/tfscreen/util/cli/generalized_main.py:87:48: E231 missing whitespace after ',' -./src/tfscreen/util/cli/generalized_main.py:92:49: E231 missing whitespace after ',' -./src/tfscreen/util/cli/generalized_main.py:94:49: E231 missing whitespace after ',' -./src/tfscreen/util/cli/generalized_main.py:97:39: W291 trailing whitespace -./src/tfscreen/util/cli/generalized_main.py:104:45: E231 missing whitespace after ',' -./src/tfscreen/util/cli/generalized_main.py:104:59: E231 missing whitespace after ',' -./src/tfscreen/util/cli/generalized_main.py:104:75: E231 missing whitespace after ',' -./src/tfscreen/util/cli/generalized_main.py:105:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/__init__.py:32:2: W292 no newline at end of file -./src/tfscreen/util/dataframe/add_group_columns.py:3:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/dataframe/add_group_columns.py:8:79: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:9:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:10:82: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:12:77: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:13:77: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:25:75: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:42:74: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:43:12: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:47:36: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:52:29: E211 whitespace before '(' -./src/tfscreen/util/dataframe/add_group_columns.py:65:77: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:67:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:70:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:73:74: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:80:51: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:81:51: W291 trailing whitespace -./src/tfscreen/util/dataframe/add_group_columns.py:90:21: W292 no newline at end of file -./src/tfscreen/util/dataframe/check_columns.py:4:1: E303 too many blank lines (3) -./src/tfscreen/util/dataframe/check_columns.py:4:21: E231 missing whitespace after ',' -./src/tfscreen/util/dataframe/check_columns.py:35:30: W292 no newline at end of file -./src/tfscreen/util/dataframe/chunk_by_group.py:3:1: F811 redefinition of unused 'np' from line 1 -./src/tfscreen/util/dataframe/chunk_by_group.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/dataframe/chunk_by_group.py:74:44: W292 no newline at end of file -./src/tfscreen/util/dataframe/df_to_arrays.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/dataframe/df_to_arrays.py:63:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:65:49: E231 missing whitespace after ',' -./src/tfscreen/util/dataframe/df_to_arrays.py:66:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:67:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:68:5: E303 too many blank lines (2) -./src/tfscreen/util/dataframe/df_to_arrays.py:84:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:89:74: W291 trailing whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:90:76: W291 trailing whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:91:22: W291 trailing whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:100:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:105:36: E261 at least two spaces before inline comment -./src/tfscreen/util/dataframe/df_to_arrays.py:111:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/df_to_arrays.py:112:24: W292 no newline at end of file -./src/tfscreen/util/dataframe/expand_on_conditions.py:4:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/dataframe/expand_on_conditions.py:26:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/expand_on_conditions.py:62:1: W391 blank line at end of file -./src/tfscreen/util/dataframe/get_group_mean_std.py:3:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/dataframe/get_group_mean_std.py:56:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/get_group_mean_std.py:61:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/get_group_mean_std.py:80:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/get_group_mean_std.py:95:37: W292 no newline at end of file -./src/tfscreen/util/dataframe/get_scaled_cfu.py:9:14: W291 trailing whitespace -./src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: C901 'get_scaled_cfu' is too complex (21) -./src/tfscreen/util/dataframe/get_scaled_cfu.py:13:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/dataframe/get_scaled_cfu.py:70:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/get_scaled_cfu.py:75:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/get_scaled_cfu.py:102:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/get_scaled_cfu.py:156:1: W293 blank line contains whitespace -./src/tfscreen/util/dataframe/get_scaled_cfu.py:157:14: W292 no newline at end of file -./src/tfscreen/util/io/read_dataframe.py:7:1: C901 'read_dataframe' is too complex (16) -./src/tfscreen/util/io/read_dataframe.py:7:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/io/read_dataframe.py:79:1: W293 blank line contains whitespace -./src/tfscreen/util/io/read_dataframe.py:84:27: E127 continuation line over-indented for visual indent -./src/tfscreen/util/io/read_dataframe.py:85:1: W293 blank line contains whitespace -./src/tfscreen/util/io/read_dataframe.py:102:14: W292 no newline at end of file -./src/tfscreen/util/io/read_yaml.py:31:1: C901 'read_yaml' is too complex (12) -./src/tfscreen/util/numerical/array_search.py:7:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/numerical/array_search.py:48:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/numerical/array_search.py:80:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/array_search.py:82:31: E261 at least two spaces before inline comment -./src/tfscreen/util/numerical/array_search.py:90:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/array_search.py:97:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/array_search.py:98:37: W292 no newline at end of file -./src/tfscreen/util/numerical/broadcast_args.py:4:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/numerical/broadcast_args.py:52:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/broadcast_args.py:90:1: W391 blank line at end of file -./src/tfscreen/util/numerical/padding.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/numerical/padding.py:29:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/padding.py:34:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/padding.py:37:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/padding.py:41:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/padding.py:43:48: W291 trailing whitespace -./src/tfscreen/util/numerical/padding.py:44:36: W291 trailing whitespace -./src/tfscreen/util/numerical/padding.py:46:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/padding.py:50:30: E203 whitespace before ':' -./src/tfscreen/util/numerical/padding.py:52:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/padding.py:53:21: W292 no newline at end of file -./src/tfscreen/util/numerical/transform.py:10:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/numerical/transform.py:189:36: W292 no newline at end of file -./src/tfscreen/util/numerical/xfill.py:3:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/numerical/xfill.py:39:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/xfill.py:65:14: E111 indentation is not a multiple of 4 -./src/tfscreen/util/numerical/xfill.py:65:14: E117 over-indented -./src/tfscreen/util/numerical/xfill.py:65:29: E261 at least two spaces before inline comment -./src/tfscreen/util/numerical/xfill.py:88:20: W292 no newline at end of file -./src/tfscreen/util/numerical/zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/numerical/zero_truncated_poisson.py:45:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/zero_truncated_poisson.py:50:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/zero_truncated_poisson.py:57:22: E231 missing whitespace after ',' -./src/tfscreen/util/numerical/zero_truncated_poisson.py:66:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/zero_truncated_poisson.py:69:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/zero_truncated_poisson.py:70:71: W291 trailing whitespace -./src/tfscreen/util/numerical/zero_truncated_poisson.py:71:34: W291 trailing whitespace -./src/tfscreen/util/numerical/zero_truncated_poisson.py:73:1: W293 blank line contains whitespace -./src/tfscreen/util/numerical/zero_truncated_poisson.py:74:23: W292 no newline at end of file -./src/tfscreen/util/validation/check.py:37:1: C901 'check_number' is too complex (12) -./src/tfscreen/util/validation/check.py:37:1: E302 expected 2 blank lines, found 1 -./src/tfscreen/util/validation/check.py:92:1: W293 blank line contains whitespace -./src/tfscreen/util/validation/check.py:118:18: W292 no newline at end of file -./tests/conftest.py:9:1: E302 expected 2 blank lines, found 1 -./tests/conftest.py:40:63: E231 missing whitespace after ',' -./tests/conftest.py:54:49: E231 missing whitespace after ',' -./tests/conftest.py:60:9: F841 local variable 'patterns' is assigned to but never used -./tests/conftest.py:65:68: E231 missing whitespace after ',' -./tests/conftest.py:70:64: E231 missing whitespace after ',' -./tests/conftest.py:70:65: F541 f-string is missing placeholders -./tests/conftest.py:77:58: E231 missing whitespace after ',' -./tests/conftest.py:81:58: E231 missing whitespace after ',' -./tests/conftest.py:85:38: E231 missing whitespace after ',' -./tests/conftest.py:94:1: E302 expected 2 blank lines, found 1 -./tests/conftest.py:100:1: E266 too many leading '#' for block comment -./tests/conftest.py:101:1: E302 expected 2 blank lines, found 1 -./tests/conftest.py:107:1: E302 expected 2 blank lines, found 1 -./tests/fixtures/generate_nuts_reference.py:37:9: E221 multiple spaces before operator -./tests/fixtures/generate_nuts_reference.py:38:9: E221 multiple spaces before operator -./tests/fixtures/generate_nuts_reference.py:42:11: E221 multiple spaces before operator -./tests/fixtures/generate_nuts_reference.py:46:5: E221 multiple spaces before operator -./tests/fixtures/generate_nuts_reference.py:47:11: E221 multiple spaces before operator -./tests/fixtures/generate_nuts_reference.py:48:12: E221 multiple spaces before operator -./tests/fixtures/generate_nuts_reference.py:49:11: E221 multiple spaces before operator -./tests/fixtures/generate_nuts_reference.py:69:5: F401 'jax' imported but unused -./tests/fixtures/generate_nuts_reference.py:78:14: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:28:9: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:29:8: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:30:9: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:34:1: E402 module level import not at top of file -./tests/fixtures/generate_reference_posteriors.py:35:1: E402 module level import not at top of file -./tests/fixtures/generate_reference_posteriors.py:37:11: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:42:5: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:43:10: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:44:11: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:103:39: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:104:38: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:105:39: E221 multiple spaces before operator -./tests/fixtures/generate_reference_posteriors.py:106:39: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:10:1: F401 'math' imported but unused -./tests/scripts/test_generate_struct_ensemble.py:26:14: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:28:16: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:29:14: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:30:13: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:128:18: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:129:18: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:136:11: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:141:14: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:223:9: F841 local variable 'logP_raw' is assigned to but never used -./tests/scripts/test_generate_struct_ensemble.py:223:17: E221 multiple spaces before operator -./tests/scripts/test_generate_struct_ensemble.py:225:9: F841 local variable 'nums_raw' is assigned to but never used -./tests/scripts/test_generate_struct_ensemble.py:225:17: E221 multiple spaces before operator -./tests/smoke-tests/conftest.py:5:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/conftest.py:10:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/conftest.py:15:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/conftest.py:20:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_configure_run_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_configure_run_smoke.py:33:31: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_configure_run_smoke.py:34:31: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_configure_run_smoke.py:102:31: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_configure_run_smoke.py:103:31: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_configure_run_smoke.py:104:31: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_configure_run_smoke.py:240:16: E221 multiple spaces before operator -./tests/smoke-tests/test_model_smoke.py:3:1: F401 'shutil' imported but unused -./tests/smoke-tests/test_model_smoke.py:4:1: F401 'jax.numpy as jnp' imported but unused -./tests/smoke-tests/test_model_smoke.py:11:71: W291 trailing whitespace -./tests/smoke-tests/test_model_smoke.py:12:71: W291 trailing whitespace -./tests/smoke-tests/test_model_smoke.py:13:42: W291 trailing whitespace -./tests/smoke-tests/test_model_smoke.py:17:27: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:18:25: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:19:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:20:28: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:21:18: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:22:19: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:23:18: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:24:29: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:25:30: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:29:27: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:30:25: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:31:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:32:28: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:33:18: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:34:19: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:35:29: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:36:30: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:40:27: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:41:25: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:42:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:43:28: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:44:19: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:48:27: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:49:25: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:52:27: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:56:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:57:18: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:58:19: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:59:20: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:63:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:64:18: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:65:19: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:66:20: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:70:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:71:20: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:75:18: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:76:24: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:77:23: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:81:29: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:82:24: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:83:28: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:87:28: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:91:28: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:95:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:96:20: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:100:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:101:20: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:105:16: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:106:20: E231 missing whitespace after ':' -./tests/smoke-tests/test_model_smoke.py:110:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_model_smoke.py:112:43: W291 trailing whitespace -./tests/smoke-tests/test_model_smoke.py:113:44: W291 trailing whitespace -./tests/smoke-tests/test_model_smoke.py:118:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:119:68: W291 trailing whitespace -./tests/smoke-tests/test_model_smoke.py:123:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:128:25: E261 at least two spaces before inline comment -./tests/smoke-tests/test_model_smoke.py:131:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:134:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:141:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:148:31: E261 at least two spaces before inline comment -./tests/smoke-tests/test_model_smoke.py:150:1: W293 blank line contains whitespace -./tests/smoke-tests/test_model_smoke.py:154:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_model_smoke.py:156:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:157:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:158:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:189:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:190:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:191:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:192:43: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:221:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:222:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:223:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:224:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:253:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:254:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:255:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:256:40: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:285:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:286:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:287:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_model_smoke.py:288:41: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_posteriors_smoke.py:3:1: F401 'jax.numpy as jnp' imported but unused -./tests/smoke-tests/test_posteriors_smoke.py:4:1: F401 'numpy as np' imported but unused -./tests/smoke-tests/test_posteriors_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_posteriors_smoke.py:11:58: W291 trailing whitespace -./tests/smoke-tests/test_posteriors_smoke.py:12:59: W291 trailing whitespace -./tests/smoke-tests/test_posteriors_smoke.py:18:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:28:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:31:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:33:59: W291 trailing whitespace -./tests/smoke-tests/test_posteriors_smoke.py:39:30: W291 trailing whitespace -./tests/smoke-tests/test_posteriors_smoke.py:41:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:44:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:46:55: E261 at least two spaces before inline comment -./tests/smoke-tests/test_posteriors_smoke.py:48:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:50:80: W291 trailing whitespace -./tests/smoke-tests/test_posteriors_smoke.py:52:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:63:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:66:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:70:50: E261 at least two spaces before inline comment -./tests/smoke-tests/test_posteriors_smoke.py:72:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_posteriors_smoke.py:73:52: W291 trailing whitespace -./tests/smoke-tests/test_posteriors_smoke.py:74:53: W291 trailing whitespace -./tests/smoke-tests/test_posteriors_smoke.py:80:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:87:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:90:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:96:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:104:1: W293 blank line contains whitespace -./tests/smoke-tests/test_posteriors_smoke.py:109:30: E261 at least two spaces before inline comment -./tests/smoke-tests/test_posteriors_smoke.py:110:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:4:1: F401 'numpy as np' imported but unused -./tests/smoke-tests/test_prediction_smoke.py:5:1: F401 'jax.numpy as jnp' imported but unused -./tests/smoke-tests/test_prediction_smoke.py:10:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_prediction_smoke.py:11:44: W291 trailing whitespace -./tests/smoke-tests/test_prediction_smoke.py:12:28: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_prediction_smoke.py:12:46: W291 trailing whitespace -./tests/smoke-tests/test_prediction_smoke.py:13:28: E127 continuation line over-indented for visual indent -./tests/smoke-tests/test_prediction_smoke.py:18:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:26:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:29:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:35:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:43:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:46:42: E261 at least two spaces before inline comment -./tests/smoke-tests/test_prediction_smoke.py:47:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:49:39: E261 at least two spaces before inline comment -./tests/smoke-tests/test_prediction_smoke.py:50:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:58:25: E261 at least two spaces before inline comment -./tests/smoke-tests/test_prediction_smoke.py:60:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:62:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:65:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:69:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:81:33: E261 at least two spaces before inline comment -./tests/smoke-tests/test_prediction_smoke.py:85:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:99:1: W293 blank line contains whitespace -./tests/smoke-tests/test_prediction_smoke.py:107:50: W291 trailing whitespace -./tests/smoke-tests/test_prefit_calibration_smoke.py:75:52: E128 continuation line under-indented for visual indent -./tests/smoke-tests/test_run_growth_analysis_smoke.py:21:1: E302 expected 2 blank lines, found 1 -./tests/smoke-tests/test_run_growth_analysis_smoke.py:27:1: W293 blank line contains whitespace -./tests/smoke-tests/test_run_growth_analysis_smoke.py:37:1: W293 blank line contains whitespace -./tests/smoke-tests/test_run_growth_analysis_smoke.py:45:1: W293 blank line contains whitespace -./tests/smoke-tests/test_run_growth_analysis_smoke.py:48:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/cat_response/test_cat_assess.py:7:1: F401 'scipy.stats.norm' imported but unused -./tests/tfscreen/analysis/test_calibration_grid.py:9:1: E402 module level import not at top of file -./tests/tfscreen/analysis/test_calibration_grid.py:10:1: E402 module level import not at top of file -./tests/tfscreen/analysis/test_calibration_grid.py:11:1: E402 module level import not at top of file -./tests/tfscreen/analysis/test_calibration_grid.py:12:1: E402 module level import not at top of file -./tests/tfscreen/analysis/test_calibration_grid.py:14:1: E402 module level import not at top of file -./tests/tfscreen/analysis/test_extract_epistasis.py:16:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_extract_epistasis.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_extract_epistasis.py:34:35: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:35:32: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:36:32: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:37:32: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:40:58: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:41:50: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:42:52: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:43:45: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:46:43: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:63:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_extract_epistasis.py:72:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:92:52: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:93:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:107:52: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:108:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:112:52: E261 at least two spaces before inline comment -./tests/tfscreen/analysis/test_extract_epistasis.py:121:65: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:122:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:125:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:137:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:140:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:143:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:151:52: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:152:28: E261 at least two spaces before inline comment -./tests/tfscreen/analysis/test_extract_epistasis.py:156:59: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:159:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:162:76: E261 at least two spaces before inline comment -./tests/tfscreen/analysis/test_extract_epistasis.py:163:53: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:168:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_extract_epistasis.py:175:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:177:90: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:178:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:183:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:189:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:191:88: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/analysis/test_extract_epistasis.py:191:100: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:192:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:196:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:199:50: E261 at least two spaces before inline comment -./tests/tfscreen/analysis/test_extract_epistasis.py:204:91: W291 trailing whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:210:77: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:211:59: E261 at least two spaces before inline comment -./tests/tfscreen/analysis/test_extract_epistasis.py:212:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:219:85: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:220:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:226:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_extract_epistasis.py:228:74: E231 missing whitespace after ',' -./tests/tfscreen/analysis/test_extract_epistasis.py:287:9: E731 do not assign a lambda expression, use a def -./tests/tfscreen/analysis/test_extract_epistasis.py:411:79: W292 no newline at end of file -./tests/tfscreen/analysis/test_stats_test_suite.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_stats_test_suite.py:9:52: E261 at least two spaces before inline comment -./tests/tfscreen/analysis/test_stats_test_suite.py:10:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:13:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:20:41: W291 trailing whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:23:39: W291 trailing whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:31:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:32:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_stats_test_suite.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:45:49: E261 at least two spaces before inline comment -./tests/tfscreen/analysis/test_stats_test_suite.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:53:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_stats_test_suite.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:64:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_stats_test_suite.py:68:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:74:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/analysis/test_stats_test_suite.py:86:1: F401 'warnings' imported but unused -./tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/analysis/test_stats_test_suite.py:86:1: E402 module level import not at top of file -./tests/tfscreen/analysis/test_stats_test_suite.py:87:1: E302 expected 2 blank lines, found 0 -./tests/tfscreen/analysis/test_stats_test_suite.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:94:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E111 indentation is not a multiple of 4 -./tests/tfscreen/analysis/test_stats_test_suite.py:96:10: E117 over-indented -./tests/tfscreen/analysis/test_stats_test_suite.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/analysis/test_stats_test_suite.py:99:1: W391 blank line at end of file -./tests/tfscreen/genetics/test_build_cycles.py:7:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_build_cycles.py:21:38: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_build_cycles.py:23:28: E124 closing bracket does not match visual indentation -./tests/tfscreen/genetics/test_build_cycles.py:47:38: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_build_cycles.py:55:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_build_cycles.py:61:1: W391 blank line at end of file -./tests/tfscreen/genetics/test_build_mut_geno_matrix.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/genetics/test_build_mut_geno_matrix.py:77:31: E127 continuation line over-indented for visual indent -./tests/tfscreen/genetics/test_combine_mutation_effects.py:3:1: F401 'numpy as np' imported but unused -./tests/tfscreen/genetics/test_combine_mutation_effects.py:12:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_combine_mutation_effects.py:17:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_combine_mutation_effects.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_combine_mutation_effects.py:45:25: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_combine_mutation_effects.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_combine_mutation_effects.py:50:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_combine_mutation_effects.py:60:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_combine_mutation_effects.py:63:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_combine_mutation_effects.py:68:5: E731 do not assign a lambda expression, use a def -./tests/tfscreen/genetics/test_combine_mutation_effects.py:69:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_combine_mutation_effects.py:71:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_combine_mutation_effects.py:76:24: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_combine_mutation_effects.py:78:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_combine_mutation_effects.py:81:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_combine_mutation_effects.py:99:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_combine_mutation_effects.py:100:13: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_combine_mutation_effects.py:101:17: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_combine_mutation_effects.py:108:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_combine_mutation_effects.py:111:39: W292 no newline at end of file -./tests/tfscreen/genetics/test_data.py:8:1: F401 'pytest' imported but unused -./tests/tfscreen/genetics/test_expand_genotype_columns.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./tests/tfscreen/genetics/test_expand_genotype_columns.py:11:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_expand_genotype_columns.py:26:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_expand_genotype_columns.py:37:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:68:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:84:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:89:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:96:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_expand_genotype_columns.py:99:29: W292 no newline at end of file -./tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:38:30: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_genotype_sorting_argsort_genotypes.py:84:72: W292 no newline at end of file -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:13:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:35:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:42:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:48:38: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:53:1: E303 too many blank lines (4) -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:68:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:94:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:100:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:104:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:120:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:133:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_set_categorical_genotype.py:145:27: W292 no newline at end of file -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:15:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:22:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:24:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:31:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:33:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:40:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:51:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:64:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:77:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:84:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:86:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:92:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:94:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:101:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:103:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:107:52: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:109:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:115:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:117:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:127:26: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:138:59: E231 missing whitespace after ',' -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:144:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:157:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:163:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:167:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_genotype_sorting_standardize_genotypes.py:176:48: W292 no newline at end of file -./tests/tfscreen/genetics/test_get_single_with_wt.py:4:1: F401 'pandas.testing.assert_frame_equal' imported but unused -./tests/tfscreen/genetics/test_get_single_with_wt.py:13:1: E303 too many blank lines (3) -./tests/tfscreen/genetics/test_get_single_with_wt.py:15:1: E302 expected 2 blank lines, found 3 -./tests/tfscreen/genetics/test_get_single_with_wt.py:32:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_get_single_with_wt.py:42:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:74:80: W291 trailing whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:76:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:79:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:91:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:94:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:106:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:109:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:124:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:129:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:132:35: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_get_single_with_wt.py:133:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:142:72: W291 trailing whitespace -./tests/tfscreen/genetics/test_get_single_with_wt.py:145:31: W292 no newline at end of file -./tests/tfscreen/genetics/test_library_composition_table.py:9:1: F401 'numpy as np' imported but unused -./tests/tfscreen/genetics/test_library_manager.py:16:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:24:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:31:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:37:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:50:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:54:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:60:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:72:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:94:25: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:117:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:124:44: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:127:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:144:45: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:153:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:173:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:186:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:191:27: E221 multiple spaces before operator -./tests/tfscreen/genetics/test_library_manager.py:193:26: E221 multiple spaces before operator -./tests/tfscreen/genetics/test_library_manager.py:198:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:206:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:211:39: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:215:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:223:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:231:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:236:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:241:47: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:245:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:257:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:293:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:312:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:319:14: E201 whitespace after '(' -./tests/tfscreen/genetics/test_library_manager.py:319:39: E202 whitespace before ')' -./tests/tfscreen/genetics/test_library_manager.py:320:14: E201 whitespace after '(' -./tests/tfscreen/genetics/test_library_manager.py:320:55: E202 whitespace before ')' -./tests/tfscreen/genetics/test_library_manager.py:335:22: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:336:23: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:356:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:360:26: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:361:21: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:367:36: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:371:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:377:26: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:378:21: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:384:35: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:385:36: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:387:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:390:28: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:391:26: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:392:21: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:400:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:403:30: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:404:36: E114 indentation is not a multiple of 4 (comment) -./tests/tfscreen/genetics/test_library_manager.py:404:36: E116 unexpected indentation (comment) -./tests/tfscreen/genetics/test_library_manager.py:405:36: E114 indentation is not a multiple of 4 (comment) -./tests/tfscreen/genetics/test_library_manager.py:405:36: E116 unexpected indentation (comment) -./tests/tfscreen/genetics/test_library_manager.py:406:36: E114 indentation is not a multiple of 4 (comment) -./tests/tfscreen/genetics/test_library_manager.py:406:36: E116 unexpected indentation (comment) -./tests/tfscreen/genetics/test_library_manager.py:407:31: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:408:26: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:409:21: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:417:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:421:26: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:421:37: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:422:21: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:475:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:491:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:493:32: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:526:19: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:527:58: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:528:18: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:534:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:539:51: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:540:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:551:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:556:19: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:557:67: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:558:18: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:562:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:566:36: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:579:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:586:19: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:588:35: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:597:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:599:24: E201 whitespace after '{' -./tests/tfscreen/genetics/test_library_manager.py:599:75: E202 whitespace before '}' -./tests/tfscreen/genetics/test_library_manager.py:601:24: E201 whitespace after '{' -./tests/tfscreen/genetics/test_library_manager.py:601:75: E202 whitespace before '}' -./tests/tfscreen/genetics/test_library_manager.py:603:24: E201 whitespace after '{' -./tests/tfscreen/genetics/test_library_manager.py:603:75: E202 whitespace before '}' -./tests/tfscreen/genetics/test_library_manager.py:610:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:625:19: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:627:18: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:648:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:654:19: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:656:18: E222 multiple spaces after operator -./tests/tfscreen/genetics/test_library_manager.py:656:44: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:665:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:680:1: E303 too many blank lines (3) -./tests/tfscreen/genetics/test_library_manager.py:684:1: E302 expected 2 blank lines, found 3 -./tests/tfscreen/genetics/test_library_manager.py:694:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:702:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:704:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:707:48: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:708:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:720:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:734:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:747:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:751:42: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:759:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:764:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:768:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/genetics/test_library_manager.py:774:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:779:1: W293 blank line contains whitespace -./tests/tfscreen/genetics/test_library_manager.py:811:22: E261 at least two spaces before inline comment -./tests/tfscreen/genetics/test_library_manager.py:815:35: E231 missing whitespace after ':' -./tests/tfscreen/genetics/test_library_manager.py:815:49: W291 trailing whitespace -./tests/tfscreen/genetics/test_library_manager.py:840:34: W292 no newline at end of file -./tests/tfscreen/mle/curve_models/test_guesses.py:14:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_guesses.py:27:44: E261 at least two spaces before inline comment -./tests/tfscreen/mle/curve_models/test_guesses.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_guesses.py:81:32: E261 at least two spaces before inline comment -./tests/tfscreen/mle/curve_models/test_guesses.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_guesses.py:96:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_guesses.py:101:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_guesses.py:106:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_guesses.py:112:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_guesses.py:114:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_guesses.py:120:45: E261 at least two spaces before inline comment -./tests/tfscreen/mle/curve_models/test_guesses.py:121:45: E261 at least two spaces before inline comment -./tests/tfscreen/mle/curve_models/test_guesses.py:122:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_guesses.py:127:45: E261 at least two spaces before inline comment -./tests/tfscreen/mle/curve_models/test_guesses.py:128:46: E261 at least two spaces before inline comment -./tests/tfscreen/mle/curve_models/test_guesses.py:134:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/mle/curve_models/test_models.py:18:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:23:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:29:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:36:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:44:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:52:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:58:52: W291 trailing whitespace -./tests/tfscreen/mle/curve_models/test_models.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:67:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:72:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:74:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:77:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:82:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:85:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:87:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:91:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/curve_models/test_models.py:95:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:98:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:101:1: W293 blank line contains whitespace -./tests/tfscreen/mle/curve_models/test_models.py:103:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:3:1: F401 'pytest' imported but unused -./tests/tfscreen/mle/fitters/test_least_squares.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_least_squares.py:10:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_least_squares.py:14:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:18:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:22:38: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_least_squares.py:23:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:25:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:37:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_least_squares.py:42:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:43:22: E231 missing whitespace after ',' -./tests/tfscreen/mle/fitters/test_least_squares.py:43:24: E231 missing whitespace after ',' -./tests/tfscreen/mle/fitters/test_least_squares.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:52:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:65:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_least_squares.py:67:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:71:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:74:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:77:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:79:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:81:54: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_least_squares.py:83:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_least_squares.py:87:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:93:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:97:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_least_squares.py:101:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:105:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_least_squares.py:108:1: W391 blank line at end of file -./tests/tfscreen/mle/fitters/test_matrix_nls.py:3:1: F401 'pytest' imported but unused -./tests/tfscreen/mle/fitters/test_matrix_nls.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_matrix_nls.py:9:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_nls.py:19:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_nls.py:22:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_nls.py:29:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_nls.py:33:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_matrix_nls.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_nls.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_nls.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_nls.py:54:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_matrix_nls.py:60:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_matrix_wls.py:9:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:13:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:15:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:17:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:20:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_matrix_wls.py:25:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:29:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:31:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:35:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_matrix_wls.py:39:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_matrix_wls.py:40:43: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_matrix_wls.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:7:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_svd_error.py:11:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:14:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:19:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:23:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:28:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:29:32: W291 trailing whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:43:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_svd_error.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:50:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:55:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_svd_error.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:3:1: F401 'pytest' imported but unused -./tests/tfscreen/mle/fitters/test_util.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_util.py:11:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:14:34: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_util.py:15:31: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_util.py:16:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_util.py:24:29: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_util.py:26:31: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_util.py:27:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:35:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:39:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_util.py:44:18: E261 at least two spaces before inline comment -./tests/tfscreen/mle/fitters/test_util.py:45:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:48:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:52:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_util.py:58:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:67:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/fitters/test_util.py:73:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/mle/fitters/test_util.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:6:1: F401 'scipy.special.expit' imported but unused -./tests/tfscreen/mle/test_fit_manager.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:20:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:26:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:34:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:38:28: W291 trailing whitespace -./tests/tfscreen/mle/test_fit_manager.py:39:36: W291 trailing whitespace -./tests/tfscreen/mle/test_fit_manager.py:43:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:45:20: E231 missing whitespace after ',' -./tests/tfscreen/mle/test_fit_manager.py:53:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:58:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:63:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:65:20: E231 missing whitespace after ',' -./tests/tfscreen/mle/test_fit_manager.py:71:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:76:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:81:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:83:20: E231 missing whitespace after ',' -./tests/tfscreen/mle/test_fit_manager.py:93:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:99:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:106:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:109:20: E231 missing whitespace after ',' -./tests/tfscreen/mle/test_fit_manager.py:117:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:121:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:128:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:138:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:141:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:147:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:155:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:156:33: E261 at least two spaces before inline comment -./tests/tfscreen/mle/test_fit_manager.py:157:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:161:36: E261 at least two spaces before inline comment -./tests/tfscreen/mle/test_fit_manager.py:163:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_fit_manager.py:172:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:173:31: E261 at least two spaces before inline comment -./tests/tfscreen/mle/test_fit_manager.py:174:28: W291 trailing whitespace -./tests/tfscreen/mle/test_fit_manager.py:176:60: W291 trailing whitespace -./tests/tfscreen/mle/test_fit_manager.py:178:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:180:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:182:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:185:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_fit_manager.py:189:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_predict_with_error.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/mle/test_predict_with_error.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_predict_with_error.py:11:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_predict_with_error.py:16:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:19:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:26:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:28:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:35:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_predict_with_error.py:45:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:51:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/mle/test_predict_with_error.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/mle/test_predict_with_error.py:64:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:25:1: F401 'tfscreen.plot.default_styles.DEFAULT_HMAP_PATCH_KWARGS' imported but unused -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:1: F401 'tfscreen.plot.helper.get_ax_limits' imported but unused -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:31:47: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:50:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:61:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:67:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:96:36: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:125:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:138:48: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:141:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:144:48: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:145:46: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:148:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:153:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:158:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:166:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:177:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:180:48: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:184:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:192:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:203:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:208:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:211:36: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:213:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:231:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:234:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:239:48: E231 missing whitespace after ',' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:240:48: E231 missing whitespace after ',' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:260:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:272:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:274:9: E303 too many blank lines (2) -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:276:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:292:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:295:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:299:40: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:304:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:305:57: E231 missing whitespace after ',' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:314:43: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:318:57: E231 missing whitespace after ',' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:319:58: E231 missing whitespace after ',' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:320:41: E231 missing whitespace after ',' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:331:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:351:50: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:352:59: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:353:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:356:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:370:48: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:381:49: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:392:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:415:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:425:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:428:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:455:35: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:456:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:460:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:475:35: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:476:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:480:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:484:71: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:499:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:512:1: E303 too many blank lines (3) -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:514:1: E302 expected 2 blank lines, found 3 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:525:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:535:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:538:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:543:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:547:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:570:35: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:572:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:587:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:590:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:593:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:602:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:632:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:682:21: E128 continuation line under-indented for visual indent -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:694:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:698:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:701:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:704:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:717:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:720:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:724:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:727:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:729:46: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:741:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:744:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:750:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:754:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:760:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:782:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:785:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:791:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:800:10: E201 whitespace after '(' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:801:10: E201 whitespace after '(' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:802:10: E201 whitespace after '(' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:803:10: E201 whitespace after '(' -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:814:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmap_core.py:817:30: W292 no newline at end of file -./tests/tfscreen/plot/heatmap/test_heatmaps.py:4:1: F401 'numpy as np' imported but unused -./tests/tfscreen/plot/heatmap/test_heatmaps.py:11:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmaps.py:17:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmaps.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:26:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:36:57: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:37:36: W291 trailing whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:45:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmaps.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmaps.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:64:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:72:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:75:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmaps.py:85:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmaps.py:98:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:102:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:110:47: E261 at least two spaces before inline comment -./tests/tfscreen/plot/heatmap/test_heatmaps.py:111:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:113:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:117:1: W293 blank line contains whitespace -./tests/tfscreen/plot/heatmap/test_heatmaps.py:121:31: E231 missing whitespace after ',' -./tests/tfscreen/plot/heatmap/test_heatmaps.py:123:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/heatmap/test_heatmaps.py:136:1: W391 blank line at end of file -./tests/tfscreen/plot/test_cat_fits.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_cat_fits.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_cat_fits.py:12:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:20:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:23:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:26:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:29:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:32:27: W291 trailing whitespace -./tests/tfscreen/plot/test_cat_fits.py:34:40: W291 trailing whitespace -./tests/tfscreen/plot/test_cat_fits.py:35:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:37:34: W291 trailing whitespace -./tests/tfscreen/plot/test_cat_fits.py:38:26: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_cat_fits.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_cat_fits.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:59:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_cat_fits.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:73:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_cat_fits.py:82:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_cat_fits.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:6:1: F401 'unittest.mock.MagicMock' imported but unused -./tests/tfscreen/plot/test_corner.py:9:5: F401 'corner' imported but unused -./tests/tfscreen/plot/test_corner.py:16:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_corner.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_corner.py:31:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:35:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:45:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:61:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:67:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_corner.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:77:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:78:41: E261 at least two spaces before inline comment -./tests/tfscreen/plot/test_corner.py:79:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_corner.py:81:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_default_styles.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_default_styles.py:15:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_default_styles.py:27:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_err_plots.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_est_v_real_summary.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_est_v_real_summary.py:7:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_est_v_real_summary.py:13:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_est_v_real_summary.py:16:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_est_v_real_summary.py:22:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_est_v_real_summary.py:25:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_est_v_real_summary.py:30:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_geno_trajectory.py:18:1: E402 module level import not at top of file -./tests/tfscreen/plot/test_geno_trajectory.py:20:1: E402 module level import not at top of file -./tests/tfscreen/plot/test_geno_trajectory.py:159:25: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_geno_trajectory.py:304:31: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_geno_trajectory.py:305:42: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_geno_trajectory.py:320:31: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_geno_trajectory.py:321:42: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_geno_trajectory.py:488:19: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_geno_trajectory.py:516:19: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_geno_trajectory.py:544:19: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_helper.py:3:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_helper.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_helper.py:9:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_helper.py:15:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_helper.py:23:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_helper.py:30:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_helper.py:31:16: W291 trailing whitespace -./tests/tfscreen/plot/test_helper.py:33:59: W291 trailing whitespace -./tests/tfscreen/plot/test_helper.py:40:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_helper.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_helper.py:62:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_helper.py:64:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_helper.py:70:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_helper.py:74:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_hill_fit.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_hill_fit.py:3:1: F401 'numpy as np' imported but unused -./tests/tfscreen/plot/test_hill_fit.py:118:34: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_plot_theta_fits.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_plot_theta_fits.py:301:26: E741 ambiguous variable name 'l' -./tests/tfscreen/plot/test_xy_corr.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/plot/test_xy_corr.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_xy_corr.py:11:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_xy_corr.py:14:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_xy_corr.py:16:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_xy_corr.py:18:36: E261 at least two spaces before inline comment -./tests/tfscreen/plot/test_xy_corr.py:19:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_xy_corr.py:22:5: F841 local variable 'ylim' is assigned to but never used -./tests/tfscreen/plot/test_xy_corr.py:23:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_xy_corr.py:28:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_xy_corr.py:32:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_xy_corr.py:35:35: E261 at least two spaces before inline comment -./tests/tfscreen/plot/test_xy_corr.py:37:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_xy_corr.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/plot/test_xy_corr.py:42:53: W291 trailing whitespace -./tests/tfscreen/plot/test_xy_corr.py:43:72: W291 trailing whitespace -./tests/tfscreen/plot/test_xy_corr.py:49:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/plot/test_xy_corr.py:53:5: F841 local variable 'ax' is assigned to but never used -./tests/tfscreen/plot/test_xy_corr.py:149:1: W391 blank line at end of file -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:19:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:31:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:46:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:66:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:73:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:92:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:102:53: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:107:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:111:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:117:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:126:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:131:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:132:47: W291 trailing whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:139:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:143:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:148:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:209:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:218:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:226:73: W291 trailing whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:30: E231 missing whitespace after ',' -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:227:42: E231 missing whitespace after ',' -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:236:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:244:53: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:245:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:252:49: W291 trailing whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:254:46: W291 trailing whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:255:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:261:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_counts_to_lncfu.py:266:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:9:1: F401 'tfscreen.process_raw.fastq_to_counts._bktree_find' imported but unused -./tests/tfscreen/process_raw/test_fastq_to_counts.py:70:25: E128 continuation line under-indented for visual indent -./tests/tfscreen/process_raw/test_fastq_to_counts.py:80:25: E128 continuation line under-indented for visual indent -./tests/tfscreen/process_raw/test_fastq_to_counts.py:114:1: E265 block comment should start with '# ' -./tests/tfscreen/process_raw/test_fastq_to_counts.py:116:1: E265 block comment should start with '# ' -./tests/tfscreen/process_raw/test_fastq_to_counts.py:118:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:128:30: E127 continuation line over-indented for visual indent -./tests/tfscreen/process_raw/test_fastq_to_counts.py:130:30: E127 continuation line over-indented for visual indent -./tests/tfscreen/process_raw/test_fastq_to_counts.py:144:29: E127 continuation line over-indented for visual indent -./tests/tfscreen/process_raw/test_fastq_to_counts.py:149:30: E127 continuation line over-indented for visual indent -./tests/tfscreen/process_raw/test_fastq_to_counts.py:154:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:162:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/process_raw/test_fastq_to_counts.py:177:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:198:59: E231 missing whitespace after ',' -./tests/tfscreen/process_raw/test_fastq_to_counts.py:224:59: E231 missing whitespace after ',' -./tests/tfscreen/process_raw/test_fastq_to_counts.py:281:9: E116 unexpected indentation (comment) -./tests/tfscreen/process_raw/test_fastq_to_counts.py:285:67: E231 missing whitespace after ',' -./tests/tfscreen/process_raw/test_fastq_to_counts.py:294:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:303:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:354:5: F841 local variable 'f3' is assigned to but never used -./tests/tfscreen/process_raw/test_fastq_to_counts.py:368:5: F841 local variable 'f1_as_rev_read' is assigned to but never used -./tests/tfscreen/process_raw/test_fastq_to_counts.py:381:35: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:399:35: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:403:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:436:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:473:48: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:522:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:590:37: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:591:37: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:628:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:714:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:715:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:725:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:735:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:744:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:758:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:761:44: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:762:44: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:768:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:778:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:792:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:796:71: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:802:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:812:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:816:69: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:826:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:881:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:885:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:890:46: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:891:46: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:915:46: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:916:46: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:927:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:934:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:937:27: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:947:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:960:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:963:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:970:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:982:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:993:52: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1008:29: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1011:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1012:27: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1026:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1047:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1051:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1065:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1068:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1078:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1089:27: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1098:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1106:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_fastq_to_counts.py:1274:35: W292 no newline at end of file -./tests/tfscreen/process_raw/test_process_fastq_cli.py:2:1: F401 'unittest.mock.call' imported but unused -./tests/tfscreen/process_raw/test_process_fastq_cli.py:24:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:33:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:26: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:33: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:40: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:47: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:54: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:61: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:68: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:75: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:82: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:41:89: E231 missing whitespace after ':' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:57:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:74:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:79:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:86:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:101:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:119:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:136:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:196:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:198:62: E231 missing whitespace after ',' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:200:62: E231 missing whitespace after ',' -./tests/tfscreen/process_raw/test_process_fastq_cli.py:201:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:224:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:230:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:240:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:247:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:256:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:262:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:265:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:280:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:287:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:297:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:300:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:304:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:307:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:314:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:320:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:327:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:331:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:335:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:345:38: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_process_fastq_cli.py:347:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:360:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:392:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:396:128: E501 line too long (132 > 127 characters) -./tests/tfscreen/process_raw/test_process_fastq_cli.py:407:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:418:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:423:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:425:26: E261 at least two spaces before inline comment -./tests/tfscreen/process_raw/test_process_fastq_cli.py:432:1: W293 blank line contains whitespace -./tests/tfscreen/process_raw/test_process_fastq_cli.py:435:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/process_raw/test_process_fastq_cli.py:443:78: W292 no newline at end of file -./tests/tfscreen/process_raw/test_process_presplit_cli.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./tests/tfscreen/process_raw/test_process_presplit_cli.py:80:41: E127 continuation line over-indented for visual indent -./tests/tfscreen/process_raw/test_process_presplit_cli.py:88:1: E303 too many blank lines (3) -./tests/tfscreen/process_raw/test_process_presplit_cli.py:113:37: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:95:30: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:96:30: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/empirical/test_build_empirical_cli.py:183:34: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/empirical/test_fit_phenotypes.py:173:57: E128 continuation line under-indented for visual indent -./tests/tfscreen/simulate/empirical/test_library_prediction_empirical.py:9:1: F401 'tfscreen.util' imported but unused -./tests/tfscreen/simulate/empirical/test_population.py:4:1: F401 'pandas as pd' imported but unused -./tests/tfscreen/simulate/growth/test_growth_linkage.py:50:16: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_growth_linkage.py:95:16: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_growth_linkage.py:154:16: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_transition_linkage.py:60:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:70:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:83:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:90:31: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:92:31: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:100:15: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_transition_linkage.py:101:33: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:108:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:129:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:145:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:155:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:166:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:173:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:175:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:185:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:417:51: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:456:33: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:459:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:474:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:480:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:482:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:492:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:497:53: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/growth/test_transition_linkage.py:564:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_transition_linkage.py:565:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_transition_linkage.py:566:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_transition_linkage.py:567:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/growth/test_transition_linkage.py:568:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:5:1: F401 'io' imported but unused -./tests/tfscreen/simulate/test_binding_params.py:8:1: F401 'pandas as pd' imported but unused -./tests/tfscreen/simulate/test_binding_params.py:11:1: F401 'tfscreen.simulate.binding_params._logit' imported but unused -./tests/tfscreen/simulate/test_binding_params.py:83:20: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:85:16: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:86:17: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:87:25: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:89:21: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:90:21: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:91:21: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:93:19: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:206:22: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:208:32: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:218:35: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:220:32: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:232:35: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:240:35: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:305:38: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:307:37: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:316:5: F811 redefinition of unused 'pd' from line 8 -./tests/tfscreen/simulate/test_binding_params.py:319:15: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:320:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:425:43: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_binding_params.py:445:56: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_binding_params.py:446:56: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_binding_params.py:466:46: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_binding_params.py:487:38: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:488:39: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:490:37: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:508:45: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_binding_params.py:587:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:9:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:33:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:52:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_build_sample_dataframes.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_build_sample_dataframes.py:74:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:83:35: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_build_sample_dataframes.py:85:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:92:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:94:18: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_build_sample_dataframes.py:95:8: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_build_sample_dataframes.py:104:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:115:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_build_sample_dataframes.py:128:55: W292 no newline at end of file -./tests/tfscreen/simulate/test_growth_parameters_output.py:4:1: F401 'pandas as pd' imported but unused -./tests/tfscreen/simulate/test_library_prediction.py:47:41: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_library_prediction.py:293:5: F401 'numpy as np' imported but unused -./tests/tfscreen/simulate/test_library_prediction.py:441:16: E272 multiple spaces before keyword -./tests/tfscreen/simulate/test_presplit_data.py:71:36: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:83:42: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:84:42: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:86:36: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:94:36: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:102:36: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:120:36: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:121:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_presplit_data.py:137:20: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_presplit_data.py:138:48: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:139:22: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_presplit_data.py:140:48: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:142:22: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_presplit_data.py:155:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:157:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_presplit_data.py:159:36: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_report_cfu0_cli.py:5:1: F401 'pytest' imported but unused -./tests/tfscreen/simulate/test_report_cfu0_cli.py:131:26: E741 ambiguous variable name 'l' -./tests/tfscreen/simulate/test_run_simulation.py:3:1: F401 'os' imported but unused -./tests/tfscreen/simulate/test_run_simulation.py:5:1: F401 'unittest.mock.MagicMock' imported but unused -./tests/tfscreen/simulate/test_run_simulation.py:7:1: F401 'tfscreen.util' imported but unused -./tests/tfscreen/simulate/test_run_simulation.py:9:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:13:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:27:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:30:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:34:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:47:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_run_simulation.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:65:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:70:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:82:128: E501 line too long (150 > 127 characters) -./tests/tfscreen/simulate/test_run_simulation.py:101:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_run_simulation.py:110:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_run_simulation.py:113:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_run_simulation.py:116:5: F841 local variable 'results' is assigned to but never used -./tests/tfscreen/simulate/test_run_simulation.py:117:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_sample_theta.py:260:21: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_sample_theta.py:277:27: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_sample_theta.py:282:21: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_sample_theta.py:297:21: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_sample_theta.py:338:21: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_selection_experiment.py:4:1: F401 'numpy.ma' imported but unused -./tests/tfscreen/simulate/test_selection_experiment.py:6:1: F401 'scipy.stats.gmean' imported but unused -./tests/tfscreen/simulate/test_selection_experiment.py:9:1: F401 'unittest.mock.MagicMock' imported but unused -./tests/tfscreen/simulate/test_selection_experiment.py:34:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:39:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:68:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:77:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:85:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:116:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:141:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:175:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:178:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:185:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:194:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:203:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:221:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:227:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:236:51: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:237:63: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:249:16: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:251:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:251:57: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:252:69: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:272:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:276:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:280:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:283:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:286:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:289:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:293:52: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:294:64: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:303:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:306:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:314:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:320:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:322:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:326:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:332:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:335:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:337:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:338:61: E231 missing whitespace after ',' -./tests/tfscreen/simulate/test_selection_experiment.py:343:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:345:31: E231 missing whitespace after ',' -./tests/tfscreen/simulate/test_selection_experiment.py:345:32: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:368:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:373:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:380:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:383:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:385:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:390:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:400:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:406:1: E303 too many blank lines (3) -./tests/tfscreen/simulate/test_selection_experiment.py:410:1: E302 expected 2 blank lines, found 3 -./tests/tfscreen/simulate/test_selection_experiment.py:416:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:418:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:421:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:428:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:436:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:444:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:448:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:452:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:456:31: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:460:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:464:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:470:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:485:22: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:486:24: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:488:70: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:497:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:500:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:514:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:517:25: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:528:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:581:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:584:20: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:585:20: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:586:20: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:600:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:607:47: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:613:20: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:614:20: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:615:20: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:623:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:626:9: F811 redefinition of unused 'gmean' from line 6 -./tests/tfscreen/simulate/test_selection_experiment.py:634:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:638:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:645:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:652:59: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:654:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:671:41: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:685:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:693:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:709:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:717:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:724:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:732:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:743:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:744:48: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:745:48: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:751:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:754:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:762:43: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:777:31: E201 whitespace after '[' -./tests/tfscreen/simulate/test_selection_experiment.py:778:54: E202 whitespace before ']' -./tests/tfscreen/simulate/test_selection_experiment.py:779:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:783:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:785:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:786:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:795:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:797:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:801:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:809:63: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:810:75: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:811:77: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:820:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:825:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:828:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:834:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:839:25: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:845:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:849:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:851:45: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:852:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:853:48: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:856:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:864:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:869:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:873:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:879:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:883:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:886:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:889:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:893:37: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:914:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:919:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:922:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:927:41: E261 at least two spaces before inline comment -./tests/tfscreen/simulate/test_selection_experiment.py:947:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_selection_experiment.py:1178:12: F841 local variable 'k_sel' is assigned to but never used -./tests/tfscreen/simulate/test_selection_experiment.py:1193:29: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_selection_experiment.py:1195:29: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_selection_experiment.py:1217:20: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_selection_experiment.py:1232:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_selection_experiment.py:1235:14: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_selection_experiment.py:1273:69: W291 trailing whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:1285:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:1296:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:1300:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:1303:1: W293 blank line contains whitespace -./tests/tfscreen/simulate/test_selection_experiment.py:1353:18: W292 no newline at end of file -./tests/tfscreen/simulate/test_simulate_cli.py:401:11: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_simulate_cli.py:405:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_simulate_cli.py:448:11: E221 multiple spaces before operator -./tests/tfscreen/simulate/test_simulate_cli.py:453:33: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_simulate_cli.py:455:31: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_simulate_cli.py:457:33: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_simulate_cli.py:513:5: F401 'tfscreen.simulate.scripts.simulate_cli as cli_mod' imported but unused -./tests/tfscreen/simulate/test_thermo_to_growth.py:28:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_thermo_to_growth.py:32:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_thermo_to_growth.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/simulate/test_thermo_to_growth.py:96:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_thermo_to_growth.py:98:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_thermo_to_growth.py:104:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_thermo_to_growth.py:106:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_thermo_to_growth.py:195:14: E131 continuation line unaligned for hanging indent -./tests/tfscreen/simulate/test_thermo_to_growth.py:222:44: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_thermo_to_growth.py:229:35: E127 continuation line over-indented for visual indent -./tests/tfscreen/simulate/test_thermo_to_growth.py:1437:1: E402 module level import not at top of file -./tests/tfscreen/simulate/test_thermo_to_growth.py:1525:9: F841 local variable 'G_out' is assigned to but never used -./tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:123:40: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/analysis/test_batch_sizing.py:136:40: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/analysis/test_error_calibration.py:313:9: F401 'matplotlib.axes.Axes' imported but unused -./tests/tfscreen/tfmodel/analysis/test_error_calibration.py:355:9: F401 'matplotlib.axes.Axes' imported but unused -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:12:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:50:47: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:56:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:71:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:81:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:86:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:91:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:96:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_growth_predictions.py:117:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:30:128: E501 line too long (130 > 127 characters) -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:37:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:50:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:53:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:69:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:75:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py:79:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:10:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:35: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:42: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:36:49: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:36: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:43: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:50: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:56: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:62:62: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:88:36: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:176:9: F841 local variable 'q_min' is assigned to but never used -./tests/tfscreen/tfmodel/analysis/test_extract_samples.py:373:9: F841 local variable 'rng' is assigned to but never used -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:4:1: F401 'unittest.mock.call' imported but unused -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:11:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:16:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:30:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:38:71: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:43:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:65:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:71:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:73:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:79:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:93:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:99:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:101:57: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:102:35: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E111 indentation is not a multiple of 4 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:103:10: E117 over-indented -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:105:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:115:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extract_theta_curves.py:124:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:36: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:43: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:50: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:56: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:45:62: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:54:28: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:61:28: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:62:28: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:28: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:84:41: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:16: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:42: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:85:46: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:209:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:211:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:399:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:407:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:479:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:480:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:481:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_new_models.py:482:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:6:1: F401 'unittest.mock.patch' imported but unused -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:9:24: W291 trailing whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:13:1: F401 'tfscreen.tfmodel.inference.posteriors.get_posterior_samples' imported but unused -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:15:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:26:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:52:128: E501 line too long (130 > 127 characters) -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:65:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:76:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:144:51: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:208:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:232:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:235:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:241:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:250:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:294:5: F841 local variable 'first_param' is assigned to but never used -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:296:5: F841 local variable 'param_name' is assigned to but never used -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:308:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:311:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:314:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:320:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:325:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:338:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:342:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:361:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:401:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:407:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:414:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py:417:9: F841 local variable 'ds' is assigned to but never used -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:4:1: F401 'os' imported but unused -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:9:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:11:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:34:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:48:57: W291 trailing whitespace -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:50:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:51:43: W291 trailing whitespace -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:56:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:59:35: W291 trailing whitespace -./tests/tfscreen/tfmodel/analysis/test_h5_indexing.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./tests/tfscreen/tfmodel/analysis/test_prediction.py:7:1: F401 'unittest.mock.patch' imported but unused -./tests/tfscreen/tfmodel/analysis/test_prediction.py:29:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:62:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:71:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:83:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:93:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_prediction.py:100:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/analysis/test_prediction.py:104:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/analysis/test_prediction.py:114:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:29:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:64:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:66:45: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:67:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:72:19: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:73:24: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:76:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:80:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:83:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_fixed.py:113:42: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:3:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:23:17: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:27:18: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:28:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:31:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:44:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:50:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:54:29: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:55:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:76:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:82:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:89:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:97:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:103:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:106:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:111:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:118:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:120:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:121:55: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:126:19: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:127:24: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:130:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:134:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:137:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:142:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:147:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:153:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_geno.py:356:6: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/activity/test_hierarchical_mut.py:36:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:3:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:26:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:27:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:30:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:39:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:49:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:53:29: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:68:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:75:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:81:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:85:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:87:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:91:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:94:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:100:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:104:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:110:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:113:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:117:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:124:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:126:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:127:55: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:132:19: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:133:24: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:136:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:140:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:143:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:147:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:152:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:158:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:174:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_geno.py:176:42: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/activity/test_horseshoe_mut.py:36:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:23:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:29:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:36:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:49:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:54:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:64:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:66:44: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:67:49: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:72:19: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:73:24: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:76:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:80:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:83:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:94:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_fixed.py:113:41: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:4:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:78:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:82:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:120:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:121:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:183:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:197:34: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:282:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:283:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:314:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:352:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:353:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:370:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:383:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:386:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:389:21: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:393:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:409:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:410:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:411:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:412:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:415:21: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/dk_geno/test_hierarchical_geno.py:426:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.linear.LinearParams' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:34:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:70:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:152:28: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/growth/test_linear.py:154:28: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/growth/test_power.py:4:1: F401 'numpyro.handlers.substitute' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth/test_power.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.power.PowerParams' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth/test_power.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/tfmodel/generative/components/growth/test_power.py:38:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:7:1: F401 'tfscreen.tfmodel.generative.components.growth.saturation.SaturationParams' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:31:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/tfmodel/generative/components/growth/test_saturation.py:38:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:3:1: F401 'jax.numpy as jnp' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:4:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth_noise/test_normal_kt.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth_noise/test_zero.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:12:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:19:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:23:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:28:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:35:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:38:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:42:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:49:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_instant.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:99:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:100:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:101:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:102:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/growth_transition/test_memory.py:103:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:5:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:38:35: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:105:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:107:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:108:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:111:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:138:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:140:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:141:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:144:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:170:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:172:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:173:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:176:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:212:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:214:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:215:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:218:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:252:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:254:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:255:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:258:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:263:77: E202 whitespace before ']' -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:628:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:644:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:729:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:730:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:776:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:777:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:795:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:797:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:798:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:839:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:842:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:890:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:892:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:893:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:896:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:936:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:939:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:944:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:969:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:971:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:973:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:981:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:994:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:996:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:998:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1007:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1019:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1020:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1023:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1037:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1038:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1056:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1058:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1059:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1120:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1122:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1123:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1179:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1183:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1215:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1236:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1357:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py:1475:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:5:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:139:77: E202 whitespace before ']' -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:168:32: E131 continuation line unaligned for hanging indent -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:170:32: E131 continuation line unaligned for hanging indent -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:173:38: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:258:12: F541 f-string is missing placeholders -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:265:12: F541 f-string is missing placeholders -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:331:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:333:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:335:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:344:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:346:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:365:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:367:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:370:7: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:371:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:383:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:387:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:388:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:389:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:400:7: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:401:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:415:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:420:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:440:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:447:7: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:462:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:470:7: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:481:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:489:7: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:502:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:503:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:519:7: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:539:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:551:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:553:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:565:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:567:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:579:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:591:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:593:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:603:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:605:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:615:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:633:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:659:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:693:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:711:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py:730:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:20:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:35:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:45:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:60:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:66:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:69:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:77:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:85:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:100:19: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:101:25: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:104:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:109:30: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:110:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:114:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:118:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:121:65: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:122:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:125:64: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:126:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:131:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:137:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:158:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:161:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:165:58: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:166:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:170:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:175:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:183:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:192:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:197:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:201:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:206:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:211:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:215:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_beta.py:217:58: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/noise/test_logit_normal.py:6:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:3:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:5:1: F401 'collections.namedtuple' imported but unused -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:19:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:22:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:26:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:32:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:39:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:44:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:56:42: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:57:51: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:61:37: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:66:19: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:67:28: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:70:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:75:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:82:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:85:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:87:35: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:88:44: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/noise/test_zero.py:93:46: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:5:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/sample_offset/test_normal.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/sample_offset/test_zero.py:2:1: F401 'jax.numpy as jnp' imported but unused -./tests/tfscreen/tfmodel/generative/components/test_pinning.py:4:1: F401 'numpyro as pyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:6:1: F401 'tfscreen.tfmodel.generative.components.theta._simple._THETA_EPS' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test__simple.py:447:34: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:6:1: F401 'numpyro.handlers.trace' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:10:1: F401 'tfscreen.tfmodel.generative.components.theta.categorical_geno.ThetaParam' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:38:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:55:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:69:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:77:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:91:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:96:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:102:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:107:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:119:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:125:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:130:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:146:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:153:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:158:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:167:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:172:21: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:174:34: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:175:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:176:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:180:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:186:37: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:188:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:190:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:193:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:200:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:220:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py:379:44: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:4:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:5:1: F401 'numpyro.handlers.trace' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:176:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:179:36: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:180:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:205:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:248:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:252:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:253:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:278:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:279:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:285:64: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:304:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:320:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:329:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:331:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:355:38: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:357:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:358:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:477:51: E222 multiple spaces after operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:492:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:537:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:540:36: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py:541:26: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:12:1: F401 'tfscreen.tfmodel.generative.components.theta.hill_mut._population_moments' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:55:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:61:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:68:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:125:15: F841 local variable 'G' is assigned to but never used -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:136:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:15: F841 local variable 'G' is assigned to but never used -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:140:18: F841 local variable 'P' is assigned to but never used -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:246:9: F841 local variable 'M' is assigned to but never used -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:254:62: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:453:56: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:480:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:482:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:492:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:494:26: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:509:43: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:512:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:513:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:528:21: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:530:52: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:719:34: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:722:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:36: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py:730:70: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:25:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:30:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:155:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:156:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:157:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:158:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:159:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:160:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:161:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:162:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:164:36: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:166:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:167:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:204:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:205:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/test_predict_unmeasured.py:301:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:41:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:58:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:198:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:251:6: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:283:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:318:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:335:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:336:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:349:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:350:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:427:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:428:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:429:45: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:430:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:431:34: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:432:47: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:433:47: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:446:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:488:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:599:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:28: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:618:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:619:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:28: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:620:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:28: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:621:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:688:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PK.py:696:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:43:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:97:45: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:138:23: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:195:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:197:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:223:38: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:245:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:266:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:277:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:308:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:327:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:391:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:473:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:478:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:509:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:528:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:529:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:530:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:531:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:588:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:591:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:595:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:599:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:602:15: E222 multiple spaces after operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:754:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:755:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:756:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:757:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PddG.py:759:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:42:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:113:45: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:165:23: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:249:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:251:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:299:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:305:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:306:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:338:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:349:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:380:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:418:26: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:426:25: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:457:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:463:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:464:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:543:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:545:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:571:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:28: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:590:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:28: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:592:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:28: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_PnnC.py:647:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:32:14: E222 multiple spaces after operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_predict_unmeasured.py:258:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:26:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:35:6: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:219:33: E201 whitespace after '[' -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/test_thermo.py:221:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:49:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:66:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:206:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:278:6: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:279:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:280:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:281:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:295:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:302:45: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:309:46: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:324:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:363:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:364:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:381:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:382:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:397:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:398:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:424:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:425:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:512:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:523:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:524:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:526:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:527:34: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:528:47: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:529:47: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:543:39: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:544:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:545:45: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:546:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:547:34: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:548:47: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:549:47: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:562:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:609:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:610:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:620:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:712:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:748:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:767:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:768:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:769:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:770:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:798:24: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:806:24: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:815:26: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:823:26: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:833:28: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:847:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PK.py:855:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:53:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:107:45: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:147:23: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:204:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:206:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:234:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:239:38: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:272:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:285:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:294:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:305:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:351:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:380:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:399:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:433:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:438:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:531:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:536:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:567:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:586:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:587:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:588:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:589:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:616:24: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:648:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:651:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:655:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:658:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:659:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:662:15: E222 multiple spaces after operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:667:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:694:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:695:29: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:696:29: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:697:29: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:698:29: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:699:29: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PddG.py:820:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:49:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:121:45: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:163:23: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:230:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:232:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:263:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:287:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:288:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:298:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:299:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:320:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:329:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:340:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:386:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:427:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:430:26: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:447:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:453:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:454:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:544:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:546:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:572:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:591:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:592:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:593:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:594:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:621:24: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_PnnC.py:646:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:28:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:39:6: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:43:8: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:312:33: E201 whitespace after '[' -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:314:32: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:512:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:533:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:561:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/test_thermo.py:563:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:48:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:69:6: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:285:38: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:286:43: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:287:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:346:38: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:347:43: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:348:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:349:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:350:34: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:351:46: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:352:46: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:364:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:365:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:366:42: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:367:42: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:368:42: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:369:41: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PK.py:379:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:98:45: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:123:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:134:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:265:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:274:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:292:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:308:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:383:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:448:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:467:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:468:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:469:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:470:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PddG.py:504:26: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:40:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:211:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:212:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:213:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:214:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:220:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:221:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:237:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:270:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:271:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:272:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:273:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:278:27: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:279:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:280:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:281:32: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:282:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:283:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:284:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:318:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:325:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:326:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:343:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:381:38: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:383:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:491:26: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:503:28: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_PnnC.py:513:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:5:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:21:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:33:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:51:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:52:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:53:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:54:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:58:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:71:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:72:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:73:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:74:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:78:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:125:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_predict_unmeasured.py:244:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:68:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:75:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:84:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:91:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:100:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:103:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:261:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:267:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/test_thermo.py:284:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:48:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:49:25: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:62:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:69:6: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:316:38: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:317:43: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:318:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:329:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:330:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:331:43: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:351:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:352:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:353:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:354:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:356:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:357:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:403:38: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:404:43: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:405:44: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:406:35: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:407:34: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:408:46: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:409:46: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:420:37: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:421:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:422:43: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:434:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:435:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:436:42: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:437:42: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:438:42: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:439:41: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:441:41: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:451:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:453:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:509:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:552:46: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:553:45: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:554:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:557:48: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:558:47: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:559:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:561:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PK.py:567:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:47:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:100:45: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:215:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:220:38: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:229:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:253:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:265:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:266:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:275:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:286:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:310:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:311:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:323:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:340:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:365:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:432:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:433:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:461:37: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:494:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:495:23: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:496:23: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:499:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:530:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:17: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:549:40: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:550:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:18: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:551:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:19: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:29: E701 multiple statements on one line (colon) -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PddG.py:552:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:9:1: F401 'functools.partial' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:39:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:208:41: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:218:42: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:229:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:230:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:231:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:232:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:233:34: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:244:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:245:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:261:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:272:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:324:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:326:33: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:343:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:350:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:351:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:400:28: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:448:38: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:449:40: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:450:38: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:451:40: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:452:39: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:460:37: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:488:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:489:32: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:510:30: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:582:26: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:594:28: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_PnnC.py:604:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:69:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:77:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:86:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:93:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:102:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:105:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:111:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:167:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:173:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:218:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:312:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:321:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:327:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:364:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/test_thermo.py:365:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:62:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:63:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:150:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:168:9: F841 local variable 'sdata' is assigned to but never used -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:177:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:178:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_features.py:179:33: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:7:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:30:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:37:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:38:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:39:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:43:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:49:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:61:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:71:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:76:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:82:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_horseshoe.py:89:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:39:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:41:21: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:130:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:147:21: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:166:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:167:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:172:31: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:229:49: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:236:49: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:241:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:244:55: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:272:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_io.py:377:49: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:3:1: F401 'jax' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:7:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:9:1: F401 'tfscreen.tfmodel.generative.components.theta.thermo.nn._DEFAULT_HIDDEN_SIZE' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:24:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:26:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:39:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:41:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:54:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:72:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:74:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:77:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:95:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_nn.py:97:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:6:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:7:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:29:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:36:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:43:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:51:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:75:21: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:84:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta/thermo/test_prior.py:91:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/components/theta_rescale/test_logit.py:2:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:6:1: F401 'unittest.mock.patch' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:16:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:22:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:29:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:37:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:39:32: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:40:36: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:41:47: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:53:26: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:56:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:58:24: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:65:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:68:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:71:26: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:73:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:79:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:82:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:84:35: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:85:38: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:93:55: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:103:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:104:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:109:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:279:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:285:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:292:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:305:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:310:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:313:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py:329:1: W391 blank line at end of file -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:5:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:7:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:11:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:14:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:17:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:21:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:27:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:31:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:35:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:43:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:48:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py:54:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py:3:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:4:1: F401 'collections.namedtuple' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:7:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:9:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:15:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:21:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:26:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:31:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:36:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:39:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/components/transformation/test_single.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:3:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:25:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:32:22: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:36:51: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:37:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:38:26: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:52:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:69:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:73:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:79:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:83:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:87:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:92:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:95:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:105:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:108:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:115:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_binding.py:117:41: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:28:20: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:34:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:48:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:53:76: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:55:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:58:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:61:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:31: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:33: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:35: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:37: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:39: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:64:41: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:65:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:81:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:86:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:111:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:119:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:124:56: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:138:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:140:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:146:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:150:24: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:151:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:159:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:35: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:37: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:39: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:41: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:43: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:169:45: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:182:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:185:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:23: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:25: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:27: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:29: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:31: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:187:33: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:188:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:23: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:25: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:27: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:29: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:31: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:190:33: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:192:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:215:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/observe/test_observe_growth.py:297:62: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:16:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:18:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:21:1: F401 'numpyro.handlers.seed' imported but unused -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:58:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:65:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:66:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:67:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:68:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:80:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:85:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:86:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:87:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:88:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:108:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:109:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:131:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:132:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:134:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:140:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:145:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:154:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:155:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:182:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:183:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:194:15: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:216:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:231:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:232:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:234:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:235:10: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:239:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_loglikelihood.py:244:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_model.py:4:1: F401 'numpyro.handlers.seed' imported but unused -./tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.PriorsClass' imported but unused -./tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthData' imported but unused -./tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.GrowthPriors' imported but unused -./tests/tfscreen/tfmodel/generative/test_model.py:10:1: F401 'tfscreen.tfmodel.data_class.BindingPriors' imported but unused -./tests/tfscreen/tfmodel/generative/test_model.py:11:53: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:18:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/test_model.py:39:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/test_model.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:60:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/test_model.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/test_model.py:85:47: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:86:61: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:87:53: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:93:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:96:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:99:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:100:61: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:101:49: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:102:48: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:103:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:104:67: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:108:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:139:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/test_model.py:152:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:159:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:163:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:166:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:169:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:174:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:177:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:180:76: W291 trailing whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:183:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:188:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:194:25: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:198:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:204:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:206:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:208:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:211:31: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/generative/test_model.py:221:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:224:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/generative/test_model.py:233:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:236:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:242:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/generative/test_model.py:332:61: W292 no newline at end of file -./tests/tfscreen/tfmodel/generative/test_model_math.py:16:1: F401 'numpyro.handlers.seed' imported but unused -./tests/tfscreen/tfmodel/generative/test_model_math.py:130:27: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/generative/test_model_math.py:131:27: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/generative/test_reference_math.py:29:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:32:9: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:75:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:76:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:77:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:78:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:79:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:80:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:81:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:148:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:148:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:149:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:149:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:150:29: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:150:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:151:26: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:151:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:160:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:160:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:161:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:161:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:162:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:162:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:163:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:163:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:175:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:179:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:179:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:180:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:180:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:181:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:181:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:182:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:182:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:186:38: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:196:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:196:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:197:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:197:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:198:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:198:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:199:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:199:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:218:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:218:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:219:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:219:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:220:29: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:220:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:221:26: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:221:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:225:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:225:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:226:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:226:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:227:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:227:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:228:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:228:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:232:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:248:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:248:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:249:27: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:249:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:250:29: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:250:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:251:26: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:251:31: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:254:22: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:254:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:255:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:255:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:256:23: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:256:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:257:19: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:257:25: E251 unexpected spaces around keyword / parameter equals -./tests/tfscreen/tfmodel/generative/test_reference_math.py:320:29: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/generative/test_reference_math.py:354:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:410:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:411:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:412:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:422:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:429:11: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/generative/test_reference_math.py:432:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:5:1: F401 'numpyro.handlers' imported but unused -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.SVI' imported but unused -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Trace_ELBO' imported but unused -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:7:1: F401 'numpyro.infer.Predictive' imported but unused -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:11:1: F401 'jax' imported but unused -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:14:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:20:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:26:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:34:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:37:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:45:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:61:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:65:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:74:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:78:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:81:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:83:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:85:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:86:49: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:87:46: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:88:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:89:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:92:48: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:94:53: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:106:63: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:107:49: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:108:46: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:109:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:110:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:118:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:126:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:176:5: F841 local variable 'num_titrants' is assigned to but never used -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:179:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:184:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:187:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:190:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:192:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:193:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:194:48: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:195:46: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:196:24: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:197:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:199:54: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:201:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:205:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:210:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:217:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:223:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:225:5: F841 local variable 'svi' is assigned to but never used -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:226:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:230:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:235:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:237:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:239:59: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:240:52: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:241:50: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:242:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:243:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_get_posteriors_mapping.py:247:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:16:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:20:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:22:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:27:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:32:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:37:14: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/inference/test_posteriors.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:45:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:54:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:65:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:72:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:78:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:81:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_posteriors.py:86:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:95:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:101:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:108:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_posteriors.py:138:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:2:1: F401 'jax' imported but unused -./tests/tfscreen/tfmodel/inference/test_run_inference.py:5:1: F401 'pandas as pd' imported but unused -./tests/tfscreen/tfmodel/inference/test_run_inference.py:15:1: F401 'optax' imported but unused -./tests/tfscreen/tfmodel/inference/test_run_inference.py:16:1: F401 'numpyro.infer.autoguide.AutoLaplaceApproximation' imported but unused -./tests/tfscreen/tfmodel/inference/test_run_inference.py:19:1: F811 redefinition of unused 'SVIState' from line 17 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:29:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:33:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:49:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:64:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:68:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:71:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:72:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:77:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:82:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:87:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:92:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:93:27: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:100:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:107:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:118:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:122:128: E501 line too long (139 > 127 characters) -./tests/tfscreen/tfmodel/inference/test_run_inference.py:125:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:133:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:136:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:141:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:144:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:149:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:154:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:156:18: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:157:28: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:164:75: W291 trailing whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:168:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:171:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:174:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:178:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:195:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:431:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:436:5: E722 do not use bare 'except' -./tests/tfscreen/tfmodel/inference/test_run_inference.py:438:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:441:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:444:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:449:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:451:128: E501 line too long (131 > 127 characters) -./tests/tfscreen/tfmodel/inference/test_run_inference.py:453:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:461:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:502:32: E741 ambiguous variable name 'l' -./tests/tfscreen/tfmodel/inference/test_run_inference.py:604:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:607:5: F841 local variable 'mock_seed' is assigned to but never used -./tests/tfscreen/tfmodel/inference/test_run_inference.py:608:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:616:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:621:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:625:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:629:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:633:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:637:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:640:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/inference/test_run_inference.py:648:1: E303 too many blank lines (3) -./tests/tfscreen/tfmodel/inference/test_run_inference.py:657:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:788:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:861:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/inference/test_run_inference.py:1268:25: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/inference/test_run_inference.py:1268:26: E201 whitespace after '[' -./tests/tfscreen/tfmodel/inference/test_run_inference.py:1269:26: E201 whitespace after '[' -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:2:1: F401 'os' imported but unused -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:14:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:18:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:25:5: E303 too many blank lines (2) -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:27:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:62:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_checkpoint_protection.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:21:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:25:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:28:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:84:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:87:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:92:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:98:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:107:39: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:108:40: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:109:42: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:111:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:114:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:118:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:121:45: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:122:48: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:123:44: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:124:41: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:201:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:210:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:218:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:222:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:224:71: E203 whitespace before ',' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:225:1: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:226:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:312:17: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:325:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:328:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:30: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:40: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:55: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:333:74: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:336:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:30: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:40: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:55: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:339:74: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:34: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:345:49: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E111 indentation is not a multiple of 4 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:14: E117 over-indented -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:31: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:41: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:56: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:347:75: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:34: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:353:54: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E111 indentation is not a multiple of 4 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:14: E117 over-indented -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:31: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:41: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:56: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:75: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:355:128: E501 line too long (142 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:356:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:359:76: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E111 indentation is not a multiple of 4 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:14: E117 over-indented -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:31: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:41: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:56: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:75: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:365:128: E501 line too long (150 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:30: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:40: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:55: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:377:74: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:432:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:434:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:437:5: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:565:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:580:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:124: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:588:128: E501 line too long (130 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:591:9: F841 local variable 'mock_ri_class' is assigned to but never used -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:594:44: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/scripts/test_configure_and_run.py:610:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_diagnose_nan_cli.py:77:64: E203 whitespace before ',' -./tests/tfscreen/tfmodel/scripts/test_extract_params_cli.py:14:1: F401 'numpyro.infer.svi.SVIState' imported but unused -./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:16:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:88:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:100:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py:135:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:4:1: F401 'os' imported but unused -./tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:11:1: F401 'tfscreen.tfmodel.inference.checkpoint_io.resolve_param_file' imported but unused -./tests/tfscreen/tfmodel/scripts/test_predict_growth_cli.py:299:35: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:4:1: F401 'os' imported but unused -./tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:7:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py:8:1: F401 'unittest.mock.call' imported but unused -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:11:1: F401 'dataclasses' imported but unused -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:13:1: F401 'shutil' imported but unused -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:14:1: F401 'sys' imported but unused -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:22:1: F401 'jax' imported but unused -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1034:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1035:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1036:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1037:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1038:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1039:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1040:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1041:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1042:29: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1747:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1753:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1759:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1766:47: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1774:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1780:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1788:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1794:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1800:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1807:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1814:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1828:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1842:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:1854:128: E501 line too long (136 > 127 characters) -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2037:14: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2056:14: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py:2071:14: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py:5:1: F401 'unittest.mock.call' imported but unused -./tests/tfscreen/tfmodel/scripts/test_sample_prior_cli.py:3:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:84:31: E741 ambiguous variable name 'l' -./tests/tfscreen/tfmodel/scripts/test_subset_genotypes_cli.py:598:28: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:16:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:17:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:18:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:19:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:21:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:31:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1013:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1016:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1281:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1463:14: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:1725:1: E402 module level import not at top of file -./tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py:2105:21: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:78:9: F841 local variable 'data' is assigned to but never used -./tests/tfscreen/tfmodel/scripts/test_summarize_grid_cli.py:182:91: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./tests/tfscreen/tfmodel/tensors/test_batch.py:3:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch.py:4:1: F401 'collections.namedtuple' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch.py:14:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch.py:17:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:24:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch.py:27:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:33:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch.py:37:16: W291 trailing whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:42:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:53:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:58:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:61:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:80:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch.py:85:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:91:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:95:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:97:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:101:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:105:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:109:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:111:73: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/tensors/test_batch.py:113:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch.py:119:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:122:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:124:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:127:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:131:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch.py:133:71: W291 trailing whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:138:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:140:5: F841 local variable 'full_array' is assigned to but never used -./tests/tfscreen/tfmodel/tensors/test_batch.py:140:52: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/tensors/test_batch.py:141:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch.py:142:46: W292 no newline at end of file -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:3:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:5:1: F401 'numpyro.distributions as dist' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:6:1: F401 'tfscreen.tfmodel.data_class.BindingData' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:10:1: F401 'tfscreen.tfmodel.model_orchestrator.ModelOrchestrator' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:12:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:17:5: F841 local variable 'batch_size' is assigned to but never used -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:19:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:25:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:30:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:71:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:82:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:89:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:120:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:125:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:138:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:143:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:149:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:189:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_consistency.py:192:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:5:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:8:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:14:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:17:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:28:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:45:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:57:56: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/tensors/test_batch_fix.py:60:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:11:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:25:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:32:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:41:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:62:28: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:65:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:79:38: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:81:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:83:46: F541 f-string is missing placeholders -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:133:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_populate_dataclass.py:137:44: W292 no newline at end of file -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:3:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:7:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:17:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:23:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:46:37: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:49:77: W291 trailing whitespace -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:56:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:65:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:76:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:84:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:90:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:99:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:103:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:108:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:116:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:119:69: W291 trailing whitespace -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:125:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:131:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:137:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:141:44: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/tensors/test_tensor_manager.py:145:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_base_growth.py:18:1: F401 'jax.numpy as jnp' imported but unused -./tests/tfscreen/tfmodel/test_base_growth.py:19:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/test_base_growth.py:100:51: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:128:52: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:138:26: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:146:47: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:147:47: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:160:56: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:171:59: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:172:59: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:185:64: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:186:64: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:187:60: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:215:60: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:216:60: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:217:60: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_base_growth.py:218:60: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_data_class.py:11:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/test_data_class_jit.py:5:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/test_data_class_jit.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_data_class_jit.py:14:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_data_class_jit.py:24:54: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/test_data_class_jit.py:87:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_data_class_jit.py:109:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:6:1: F401 'yaml' imported but unused -./tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.call' imported but unused -./tests/tfscreen/tfmodel/test_model_orchestrator.py:8:1: F401 'unittest.mock.ANY' imported but unused -./tests/tfscreen/tfmodel/test_model_orchestrator.py:34:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:53:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:62:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:86:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:99:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:109:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:115:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:119:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:131:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:154:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:171:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:300:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:323:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:329:128: E501 line too long (129 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:331:76: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:354:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:362:128: E501 line too long (184 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:363:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:373:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:378:48: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:378:50: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:378:52: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:378:54: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:378:56: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:378:58: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:379:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:387:112: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:387:128: E501 line too long (191 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:392:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:395:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:399:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:406:128: E501 line too long (184 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:425:128: E501 line too long (198 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:430:128: E501 line too long (167 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:477:128: E501 line too long (184 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:502:18: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_model_orchestrator.py:503:18: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_model_orchestrator.py:804:128: E501 line too long (184 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:956:79: E712 comparison to False should be 'if cond is False:' or 'if not cond:' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:957:64: E712 comparison to True should be 'if cond is True:' or 'if cond:' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:961:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:969:51: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:77: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:98: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:125: E231 missing whitespace after ':' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:975:128: E501 line too long (131 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:976:128: E501 line too long (138 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:978:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:980:86: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:992:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:997:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1005:128: E501 line too long (129 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1013:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1024:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1027:128: E501 line too long (129 > 127 characters) -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1034:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1041:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1049:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1054:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1059:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1065:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1074:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1078:26: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1088:30: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1089:25: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1091:34: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1092:33: W291 trailing whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1104:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:43: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:45: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:47: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:49: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:51: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:53: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1106:55: E231 missing whitespace after ',' -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1110:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1119:26: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1120:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1123:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1126:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1389:9: F401 'inspect' imported but unused -./tests/tfscreen/tfmodel/test_model_orchestrator.py:1786:34: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/test_model_orchestrator.py:2030:18: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_model_orchestrator.py:2044:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:30:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:31:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:32:32: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:33:31: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:34:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:35:32: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_needs_mut_wiring.py:115:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_presplit.py:12:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/test_presplit.py:15:1: F401 'numpyro' imported but unused -./tests/tfscreen/tfmodel/test_presplit.py:24:1: F401 'tfscreen.tfmodel.data_class.DataClass' imported but unused -./tests/tfscreen/tfmodel/test_presplit.py:25:1: F401 'tfscreen.tfmodel.tensors.populate_dataclass.populate_dataclass' imported but unused -./tests/tfscreen/tfmodel/test_presplit.py:95:52: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_presplit.py:98:33: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_presplit.py:127:35: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_presplit.py:140:48: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_presplit.py:174:47: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_presplit.py:200:28: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_presplit.py:218:47: E127 continuation line over-indented for visual indent -./tests/tfscreen/tfmodel/test_presplit.py:230:28: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_share_replicates.py:1:1: F401 'pytest' imported but unused -./tests/tfscreen/tfmodel/test_share_replicates.py:3:1: F401 'numpy as np' imported but unused -./tests/tfscreen/tfmodel/test_share_replicates.py:7:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_share_replicates.py:10:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:33:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:36:78: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/test_share_replicates.py:41:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:58:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_share_replicates.py:66:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:5:1: F401 'jax.numpy as jnp' imported but unused -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.MagicMock' imported but unused -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:7:1: F401 'unittest.mock.patch' imported but unused -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:9:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:43:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:47:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:53:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:66:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:72:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:76:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:79:28: E261 at least two spaces before inline comment -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:80:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:83:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:88:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:92:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_spiked_genotypes.py:95:1: W293 blank line contains whitespace -./tests/tfscreen/tfmodel/test_struct_wiring.py:40:17: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:58:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_struct_wiring.py:59:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:60:32: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_struct_wiring.py:61:30: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_struct_wiring.py:62:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:63:32: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_struct_wiring.py:146:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:148:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:162:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:176:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:195:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:197:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:226:9: F401 'jax.numpy as jnp' imported but unused -./tests/tfscreen/tfmodel/test_struct_wiring.py:233:71: E272 multiple spaces before keyword -./tests/tfscreen/tfmodel/test_struct_wiring.py:247:20: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:249:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:283:5: F401 'os' imported but unused -./tests/tfscreen/tfmodel/test_struct_wiring.py:287:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:289:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:318:16: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:320:12: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:389:20: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_struct_wiring.py:390:20: E128 continuation line under-indented for visual indent -./tests/tfscreen/tfmodel/test_struct_wiring.py:401:13: E221 multiple spaces before operator -./tests/tfscreen/tfmodel/test_struct_wiring.py:448:13: E221 multiple spaces before operator -./tests/tfscreen/util/cli/test_generalized_main.py:1:1: F401 'argparse' imported but unused -./tests/tfscreen/util/cli/test_generalized_main.py:7:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/cli/test_generalized_main.py:10:9: F841 local variable 'mock_fcn' is assigned to but never used -./tests/tfscreen/util/cli/test_generalized_main.py:13:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:14:75: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:16:83: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:19:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:21:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:24:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:25:30: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:28:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:35:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:38:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:49:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:52:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:55:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:60:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:68:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:71:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:76:38: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:77:45: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:80:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:82:35: E261 at least two spaces before inline comment -./tests/tfscreen/util/cli/test_generalized_main.py:86:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:91:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:92:38: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:93:44: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:95:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:100:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:103:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:111:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:113:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:115:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:119:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:125:9: F401 'sys' imported but unused -./tests/tfscreen/util/cli/test_generalized_main.py:126:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:128:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:134:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:140:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:142:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:144:38: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:145:53: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:151:9: E306 expected 1 blank line before a nested definition, found 0 -./tests/tfscreen/util/cli/test_generalized_main.py:153:1: W293 blank line contains whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:154:39: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:155:53: W291 trailing whitespace -./tests/tfscreen/util/cli/test_generalized_main.py:157:46: E261 at least two spaces before inline comment -./tests/tfscreen/util/cli/test_generalized_main.py:159:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/util/cli/test_generalized_main.py:159:1: E402 module level import not at top of file -./tests/tfscreen/util/cli/test_generalized_main.py:161:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_add_group_columns.py:3:1: F401 'numpy as np' imported but unused -./tests/tfscreen/util/dataframe/test_add_group_columns.py:12:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_add_group_columns.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_add_group_columns.py:34:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_add_group_columns.py:40:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:43:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:55:65: E231 missing whitespace after ',' -./tests/tfscreen/util/dataframe/test_add_group_columns.py:67:46: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:74:32: E261 at least two spaces before inline comment -./tests/tfscreen/util/dataframe/test_add_group_columns.py:75:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:76:49: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:77:50: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:78:50: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:89:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:98:32: E261 at least two spaces before inline comment -./tests/tfscreen/util/dataframe/test_add_group_columns.py:102:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:105:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:112:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:115:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:117:41: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:118:42: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:119:42: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:126:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:129:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:131:41: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:132:42: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:133:42: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_add_group_columns.py:134:47: W292 no newline at end of file -./tests/tfscreen/util/dataframe/test_check_columns.py:5:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_check_columns.py:10:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_check_columns.py:23:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_check_columns.py:28:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_check_columns.py:40:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_check_columns.py:46:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_check_columns.py:49:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_check_columns.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_check_columns.py:66:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_check_columns.py:73:54: W292 no newline at end of file -./tests/tfscreen/util/dataframe/test_chunk_by_group.py:13:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_chunk_by_group.py:64:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_chunk_by_group.py:67:60: W292 no newline at end of file -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:83:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:133:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:144:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:146:77: W291 trailing whitespace -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:154:37: E261 at least two spaces before inline comment -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:157:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:160:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:162:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_df_to_arrays.py:166:37: W292 no newline at end of file -./tests/tfscreen/util/dataframe/test_expand_on_conditions.py:5:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_expand_on_conditions.py:7:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_expand_on_conditions.py:41:5: E303 too many blank lines (2) -./tests/tfscreen/util/dataframe/test_expand_on_conditions.py:78:1: W391 blank line at end of file -./tests/tfscreen/util/dataframe/test_get_group_mean_std.py:9:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_get_group_mean_std.py:74:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_get_group_mean_std.py:105:43: W292 no newline at end of file -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:61:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:65:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:74:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:77:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:84:1: E305 expected 2 blank lines after class or function definition, found 1 -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:92:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:143:1: W293 blank line contains whitespace -./tests/tfscreen/util/dataframe/test_get_scaled_cfu.py:148:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:16:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:27:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:36:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:43:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:49:1: W293 blank line contains whitespace -./tests/tfscreen/util/io/test_read_dataframe.py:53:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:59:1: W293 blank line contains whitespace -./tests/tfscreen/util/io/test_read_dataframe.py:63:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:68:49: E261 at least two spaces before inline comment -./tests/tfscreen/util/io/test_read_dataframe.py:69:1: W293 blank line contains whitespace -./tests/tfscreen/util/io/test_read_dataframe.py:74:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:85:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:92:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:109:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:116:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:124:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:133:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:139:1: W293 blank line contains whitespace -./tests/tfscreen/util/io/test_read_dataframe.py:144:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:150:1: W293 blank line contains whitespace -./tests/tfscreen/util/io/test_read_dataframe.py:151:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:162:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:171:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:179:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:192:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:200:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:207:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/io/test_read_dataframe.py:215:67: W292 no newline at end of file -./tests/tfscreen/util/numerical/test_array_search.py:78:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_array_search.py:143:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_array_search.py:167:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_array_search.py:190:37: W292 no newline at end of file -./tests/tfscreen/util/numerical/test_broadcast_args.py:6:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:18:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:28:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:36:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:42:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:47:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:64:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_broadcast_args.py:68:59: W292 no newline at end of file -./tests/tfscreen/util/numerical/test_padding.py:7:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_padding.py:12:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:20:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:24:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_padding.py:29:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:31:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:35:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_padding.py:39:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:40:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_padding.py:42:34: E261 at least two spaces before inline comment -./tests/tfscreen/util/numerical/test_padding.py:45:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:55:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_padding.py:60:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:63:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:72:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_padding.py:84:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:87:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_padding.py:90:29: E261 at least two spaces before inline comment -./tests/tfscreen/util/numerical/test_padding.py:91:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_padding.py:93:44: W292 no newline at end of file -./tests/tfscreen/util/numerical/test_transform.py:18:31: W291 trailing whitespace -./tests/tfscreen/util/numerical/test_transform.py:93:31: W291 trailing whitespace -./tests/tfscreen/util/numerical/test_xfill.py:11:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_xfill.py:13:36: E261 at least two spaces before inline comment -./tests/tfscreen/util/numerical/test_xfill.py:18:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:22:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_xfill.py:27:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:31:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_xfill.py:32:34: E261 at least two spaces before inline comment -./tests/tfscreen/util/numerical/test_xfill.py:36:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:45:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:53:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:58:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:62:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_xfill.py:68:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:72:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_xfill.py:76:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:80:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_xfill.py:84:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:88:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_xfill.py:92:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:99:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_xfill.py:101:29: E261 at least two spaces before inline comment -./tests/tfscreen/util/numerical/test_xfill.py:110:1: E302 expected 2 blank lines, found 0 -./tests/tfscreen/util/numerical/test_xfill.py:125:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:5:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:10:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:14:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:22:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:37:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:44:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:51:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:54:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:57:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:61:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:68:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:75:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:78:26: E261 at least two spaces before inline comment -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:79:1: W293 blank line contains whitespace -./tests/tfscreen/util/numerical/test_zero_truncated_poisson.py:81:1: W293 blank line contains whitespace -./tests/tfscreen/util/validation/test_check.py:8:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/validation/test_check.py:26:1: E302 expected 2 blank lines, found 1 -./tests/tfscreen/util/validation/test_check.py:75:70: W292 no newline at end of file -390 C901 'cat_fit' is too complex (28) -70 E111 indentation is not a multiple of 4 -42 E114 indentation is not a multiple of 4 (comment) -42 E116 unexpected indentation (comment) -70 E117 over-indented -7 E122 continuation line missing indentation or outdented -14 E124 closing bracket does not match visual indentation -42 E125 continuation line with same indent as next logical line -1497 E127 continuation line over-indented for visual indent -652 E128 continuation line under-indented for visual indent -21 E131 continuation line unaligned for hanging indent -322 E201 whitespace after '[' -196 E202 whitespace before ']' -42 E203 whitespace before ',' -28 E211 whitespace before '(' -12869 E221 multiple spaces before operator -182 E222 multiple spaces after operator -49 E225 missing whitespace around operator -1 E228 missing whitespace around modulo operator -7644 E231 missing whitespace after ',' -721 E251 unexpected spaces around keyword / parameter equals -98 E252 missing whitespace around parameter equals -1451 E261 at least two spaces before inline comment -2 E262 inline comment should start with '# ' -14 E265 block comment should start with '# ' -14 E266 too many leading '#' for block comment -1043 E272 multiple spaces before keyword -7 E301 expected 1 blank line, found 0 -5396 E302 expected 2 blank lines, found 1 -330 E303 too many blank lines (2) -142 E305 expected 2 blank lines after class or function definition, found 1 -203 E306 expected 1 blank line before a nested definition, found 0 -7 E401 multiple imports on one line -273 E402 module level import not at top of file -609 E501 line too long (153 > 127 characters) -301 E701 multiple statements on one line (colon) -35 E712 comparison to True should be 'if cond is True:' or 'if cond:' -14 E713 test for membership should be 'not in' -7 E722 do not use bare 'except' -14 E731 do not assign a lambda expression, use a def -147 E741 ambiguous variable name 'l' -1622 F401 'tfscreen.tfmodel.generative.components.theta.thermo.O2_C12_K5_U0_a.thermo.run_model' imported but unused -77 F541 f-string is missing placeholders -28 F811 redefinition of unused 'np' from line 1 -280 F841 local variable 'e' is assigned to but never used -3868 W291 trailing whitespace -562 W292 no newline at end of file -10397 W293 blank line contains whitespace -196 W391 blank line at end of file -52038 diff --git a/reports/junit/junit.xml b/reports/junit/junit.xml deleted file mode 100644 index 81be6508..00000000 --- a/reports/junit/junit.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/run_all_tests.sh b/run_all_tests.sh index 5099a1ed..bfd61606 100755 --- a/run_all_tests.sh +++ b/run_all_tests.sh @@ -1,17 +1,21 @@ #!/bin/bash +# +# Run the full local test suite (lint, unit tests with --runslow, smoke tests) +# and write every report into reports/, which is gitignored. CI badges come from +# GitHub Actions, so nothing here is meant to be committed. + +set -e echo "Running flake8" flake_test=`flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics` if [[ "${flake_test}" != 0 ]]; then + echo "${flake_test}" echo "flake failed" - exit + exit 1 fi rm -rf reports -mkdir reports -mkdir reports/junit -mkdir reports/coverage -mkdir reports/badges +mkdir -p reports/junit reports/coverage reports/badges echo "Running flake8, aggressive" flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics > reports/flake.txt @@ -19,21 +23,13 @@ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statist echo "Running coverage.py" coverage erase NUMBA_DISABLE_JIT=1 coverage run --branch -m pytest tests/tfscreen --runslow --junit-xml=reports/junit/junit.xml -NUMBA_DISABLE_JIT=1 pytest tests/smoke-tests --runslow +NUMBA_DISABLE_JIT=1 pytest tests/smoke-tests --runslow echo "Generating reports" -coverage html -mv htmlcov reports - -coverage xml -mv coverage.xml reports/coverage/coverage.xml - -genbadge tests -sleep 1 -genbadge coverage -sleep 1 +coverage html -d reports/htmlcov +coverage xml -o reports/coverage/coverage.xml -#wget https://github.com/harmslab/dataprob/actions/workflows/python-app.yml/badge.svg -O ghwf.svg -#wget https://readthedocs.org/projects/dataprob/badge/?version=latest -O rtd.svg +genbadge tests -o reports/badges/tests-badge.svg +genbadge coverage -o reports/badges/coverage-badge.svg -mv *.svg docs/badges +echo "Reports written to reports/" From 6338ee46516a7ae1b658e96c591eaf5304c07795 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 15:47:51 -0700 Subject: [PATCH 014/208] Let dk_geno and activity components return library-ordered values The congression mixture (step 3.3 of planning/congression-physics- plan.md) builds each congressed cell from its co-resident plasmids, looked up by library index. It needs every genotype's dk_geno and, because a cell's activity follows the plasmid that sets its theta, every genotype's activity -- not just the batch's. Every dk_geno (fixed, pinned, hierarchical_geno) and activity (fixed, hierarchical_geno, horseshoe_geno, hierarchical_mut, horseshoe_mut) component's define_model and guide take return_population=False. When True they return (tensor, population): every genotype's value in library order, from the same draw (no new sample sites), or None when the latents arrived as a batch-sized substitution (posterior forward pass). The shared helper generative/components/_population.py:: per_genotype runs exactly the old slice-then-compute path when the population is not requested. GrowthData gains external_dk_population / external_activity_population as the prediction fallback, mirroring external_theta_population. Nothing requests the population yet, so fits are unchanged. CLAUDE.md adds the rule for new dk_geno/activity components; CHANGELOG and the plan updated (3.2 done; categorical_geno's batch-ordered population theta noted for 3.3). Verified: new test_component_population.py (37 tests; every registered dk_geno/activity variant, model and guide, full and mini batch: population[batch_idx] equals the batch values, default call unchanged, wt pinned; batch-sized substitution gives None); full tests/tfscreen suite passes (4694 passed, 10 skipped); model and prediction smoke tests pass (25). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 14 ++ CLAUDE.md | 2 + planning/congression-physics-plan.md | 20 +- src/tfscreen/tfmodel/data_class.py | 11 ++ .../generative/components/_population.py | 62 ++++++ .../generative/components/activity/fixed.py | 13 +- .../components/activity/hierarchical_geno.py | 66 ++++--- .../components/activity/hierarchical_mut.py | 23 ++- .../components/activity/horseshoe_geno.py | 78 ++++---- .../components/activity/horseshoe_mut.py | 23 ++- .../generative/components/dk_geno/fixed.py | 13 +- .../components/dk_geno/hierarchical_geno.py | 67 ++++--- .../generative/components/dk_geno/pinned.py | 34 +++- .../components/test_component_population.py | 184 ++++++++++++++++++ 14 files changed, 492 insertions(+), 118 deletions(-) create mode 100644 src/tfscreen/tfmodel/generative/components/_population.py create mode 100644 tests/tfscreen/tfmodel/generative/components/test_component_population.py diff --git a/CHANGELOG.md b/CHANGELOG.md index ee27085d..e9f01204 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -82,6 +82,20 @@ fall into two kinds: class, which previously shared one flag. Not yet used by the model, so fits are unchanged. +- **Library-ordered dk_geno and activity from their components.** Every + `dk_geno` (`fixed`, `pinned`, `hierarchical_geno`) and `activity` + (`fixed`, `hierarchical_geno`, `horseshoe_geno`, `hierarchical_mut`, + `horseshoe_mut`) component's `define_model` and `guide` take + `return_population=False`. When True they return `(tensor, population)`, + where `population` holds every genotype's value in library order, computed + from the same draw (no new sample sites), or `None` when the latents arrived + as a batch-sized substitution. The shared helper is + `generative/components/_population.py::per_genotype`. New + `GrowthData.external_dk_population` / `external_activity_population` + fields are the fallback for prediction. Groundwork for the congression + mixture's co-resident lookup; nothing requests the population yet, so fits + are unchanged. + ### Changed - **Co-transformed cells in the simulator now grow by cell-level physics.** diff --git a/CLAUDE.md b/CLAUDE.md index c19624e3..fb997de4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -144,6 +144,8 @@ The hierarchical Bayesian inference engine. Key files: 5. For a new `condition_growth` component: make its per-condition prior loc/scale fields accept scalar-or-array (broadcast-then-index by the condition plate) and implement `get_scale_bounds()` so the pre-fit can pin its per-condition baselines — see **Per-condition growth priors** above. 6. Per-genotype latents must be **mini-batch safe**: sample them in a library-sized plate (`pyro.plate(f"{name}_genotype_plate", data.num_genotype)`), then slice with `[..., data.batch_idx]` whenever the value is library-sized (a smaller value is an already-sliced substitution from the posterior forward pass). Never size a latent's plate with `data.batch_size`, and do not wrap latent priors/guides in `scale_vector` (only the likelihood is scaled). A batch-sized latent silently aliases genotypes onto batch positions under every numpyro autoguide, including `AutoDelta` (MAP, pre-MAP, `tfs-prefit-calibration`) — even at full batch, because the full-batch index is binding-first and reshuffled each step. Slice **unconditionally**: never `if data.batch_size < data.num_genotype`, and never index a library-ordered array by the batch-relative `geno_theta_idx` alone (translate through `data.batch_idx[data.geno_theta_idx]`, the `hill_geno` pattern). At full batch the index is a permutation, not the identity, so skipping the slice pairs batch positions with the wrong genotypes while every shape stays right. `inference/batch_safety.py` checks both failure modes: `find_batch_dependent_latents` traces at two batch sizes (shape; `RunInference.run_optimization` runs it before fitting with any autoguide and refuses an unsafe model), and `find_batch_order_mismatches` traces two orderings of the full batch with the latents held fixed and checks that `growth_pred`/`theta_growth_pred`/`binding_pred`/`theta_binding_pred` permute with the index (order). `tests/tfscreen/tfmodel/inference/test_batch_safety.py` enforces both registry-wide. Known exception: `noise/beta`'s `{name}_dist` (its latent is the noisy θ itself). +7. A new `dk_geno` or `activity` component must accept `return_population=False` in `define_model` and `guide` and, when True, return `(tensor, population)`: the library-ordered per-genotype values from the same draw, or `None` if the latents arrived batch-sized. Build both with `generative/components/_population.py::per_genotype` (default path = the old slice-then-compute, so no extra cost when not requested). The congression mixture looks co-resident genotypes up in these by library index; `tests/tfscreen/tfmodel/generative/components/test_component_population.py` checks every registered variant. + (This applies to `components/` categories. `generative/observe/` is not a `/` registry entry — see above.) ### Per-condition growth priors diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index ef79cc0a..a33dc69a 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -434,9 +434,23 @@ checked with `tfs-summarize-calibration`. built by the orchestrator from the library table or the legacy `spiked_genotypes` list (spiked -> `f_g = 0`, others 1). No behavior change: fits identical. - - [ ] **3.2 Full-population dk_geno access** (API only), mirroring - `population_theta`: mini-batch safe, with an external reference for - prediction. Identical fits. + - [x] **3.2 Full-population dk_geno and activity access** (API only). + Done 2026-09-23. Activity was added to the step: the cell's activity + follows the theta rule, so co-residents' activity is needed too. Every + `dk_geno` and `activity` component takes `return_population=False`; + when True it also returns the library-ordered per-genotype values from + the same draw (`generative/components/_population.py::per_genotype`), or + `None` when the latents arrived as a batch-sized substitution. + `GrowthData.external_dk_population` / `external_activity_population` + are the fallback. Nothing requests the population yet, so fits are + identical. Building the external arrays in `analysis/prediction.py` + moves to 3.4. + Found for 3.3: `theta/categorical_geno` slices its latent to the batch + at sample time, so `model.py`'s full-population `calc_theta` (arange + `batch_idx`/`geno_theta_idx`) returns batch-ordered theta at full batch + and indexes past the batch under mini-batching. Harmless for today's + empirical CDF at full batch (order-free), but 3.3 needs library-ordered + population theta from every theta component; fix and test it there. - [ ] **3.3 Mixture.** Class axis ahead of the 7-D growth layout; per-class theta rescale, `calculate_growth`, `growth_transition`; logsumexp mix with `log w`. New transformation-component interface returning classes diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index 1206596c..98e0d519 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -124,6 +124,17 @@ class GrowthData: # supply this explicitly, computed against the true, unsubsetted library. external_theta_population: Any = field(default=None) + # Library-ordered dk_geno and activity for *every* genotype (shape + # (num_genotype,), or with leading sample dims), the counterparts of + # external_theta_population for the congression mixture's co-resident + # lookup (planning/congression-physics-plan.md, step 3). During training + # the dk_geno/activity components supply these themselves + # (return_population=True). A posterior forward pass that substitutes + # batch-sized latents cannot, so prediction code must pass them here. + # Not yet read by the model. + external_dk_population: Any = field(default=None) + external_activity_population: Any = field(default=None) + @dataclass(frozen=True) class BindingData: diff --git a/src/tfscreen/tfmodel/generative/components/_population.py b/src/tfscreen/tfmodel/generative/components/_population.py new file mode 100644 index 00000000..985ecc05 --- /dev/null +++ b/src/tfscreen/tfmodel/generative/components/_population.py @@ -0,0 +1,62 @@ +""" +Per-genotype values for the batch, and optionally for the whole library. + +Per-genotype components (``dk_geno``, ``activity``) sample their latents at +library size and slice them to the batch with ``batch_idx``. The congression +mixture also needs the *library-ordered* values of every genotype, so it can +look up a genotype's co-resident plasmids by index (see +``planning/congression-physics-plan.md``, step 3). :func:`per_genotype` +computes both from the same draw, without adding sample sites. +""" + +import jax.numpy as jnp + + +def per_genotype(compute, latents, data, return_population=False): + """ + Evaluate a per-genotype quantity for the batch and, optionally, the library. + + Parameters + ---------- + compute : callable + ``compute(*latents, genotype_idx) -> values``: elementwise in the + latents along their last (genotype) axis; ``genotype_idx`` gives the + library index of each entry (used, e.g., to pin wildtype). + latents : sequence of jnp.ndarray + Per-genotype latents, genotype on the last axis. Each is either + library-sized (``num_genotype``, sampled in a library plate) or an + already-sliced batch-sized substitution (the posterior forward pass). + data : GrowthData + Uses ``num_genotype``, ``batch_idx``. + return_population : bool, default False + Also return the library-ordered values. + + Returns + ------- + batch_values : jnp.ndarray + Values for the batch's genotypes, in batch order. + population : jnp.ndarray or None + Library-ordered values for every genotype, shape ``(..., + num_genotype)``. None unless ``return_population`` and every latent + is library-sized; a batch-sized substitution carries no information + about the rest of the library, so callers must fall back to an + external reference. + + Notes + ----- + With ``return_population=False`` this evaluates exactly the old batch-only + path (slice, then compute), so it costs nothing extra under + mini-batching. With ``return_population=True`` it computes on the library + and then slices; because ``compute`` is elementwise the batch values are + identical. + """ + + library_sized = all(jnp.shape(x)[-1] == data.num_genotype for x in latents) + + if return_population and library_sized: + population = compute(*latents, jnp.arange(data.num_genotype)) + return population[..., data.batch_idx], population + + sliced = [x[..., data.batch_idx] if jnp.shape(x)[-1] == data.num_genotype + else x for x in latents] + return compute(*sliced, data.batch_idx), None diff --git a/src/tfscreen/tfmodel/generative/components/activity/fixed.py b/src/tfscreen/tfmodel/generative/components/activity/fixed.py index eb076106..3b074ea8 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/fixed.py +++ b/src/tfscreen/tfmodel/generative/components/activity/fixed.py @@ -15,7 +15,8 @@ class ModelPriors: def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Defines the fixed model for genotype-specific activity. @@ -36,6 +37,9 @@ def define_model(name: str, per-genotype parameters to the full set of observations. priors : ModelPriors A Pytree of hyperparameters. (Unused in this model). + return_population : bool, default False + Also return the library-ordered per-genotype values, shape + ``(num_genotype,)``, as a ``(tensor, population)`` tuple. Returns ------- @@ -53,12 +57,15 @@ def define_model(name: str, # Broadcast to full-sized tensor activity = activity_dists[None,None,None,None,None,None,:] + if return_population: + return activity, jnp.ones(data.num_genotype, dtype=float) return activity def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Guide for the fixed activity model. @@ -73,6 +80,8 @@ def guide(name: str, # Broadcast to full-sized tensor activity = activity_dists[None,None,None,None,None,None,:] + if return_population: + return activity, jnp.ones(data.num_genotype, dtype=float) return activity def get_hyperparameters() -> Dict[str, Any]: diff --git a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py index 5698d2b7..c62a7bb3 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py +++ b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_geno.py @@ -5,6 +5,7 @@ from typing import Dict, Any, Mapping from tfscreen.tfmodel.data_class import GrowthData +from tfscreen.tfmodel.generative.components._population import per_genotype from tfscreen.tfmodel.generative.components._pinning import ( _hyper, _pinned_value, @@ -43,9 +44,19 @@ class ModelPriors: pytree_node=False, default_factory=dict ) +def _activity_values(hyper_loc, hyper_scale, wt_indexes): + """Per-genotype activity from log-space offsets; wt pinned to 1.""" + def compute(activity_offset, genotype_idx): + log_activity = hyper_loc + activity_offset * hyper_scale + activity = jnp.clip(jnp.exp(log_activity), max=1e30) + return jnp.where(jnp.isin(genotype_idx, wt_indexes), 1.0, activity) + return compute + + def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Defines the hierarchical model for genotype-specific activity. @@ -73,12 +84,18 @@ def define_model(name: str, priors : ModelPriors A Pytree (Flax dataclass) containing the hyperparameters for the pooled priors. + return_population : bool, default False + Also return the library-ordered per-genotype values (shape + ``(num_genotype,)``, or ``None`` when the latents arrived as a + batch-sized substitution), for callers that look genotypes up by + library index (the congression mixture). Returns ------- jnp.ndarray The sampled `activity` values, expanded to match the shape of - the observations via ``data.map_genotype``. + the observations via ``data.map_genotype``. With + ``return_population``, a ``(tensor, population)`` tuple. """ pinned = priors.pinned @@ -100,18 +117,13 @@ def define_model(name: str, with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): activity_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if activity_offset.shape[-1] == data.num_genotype: - activity_offset = activity_offset[..., data.batch_idx] - - # Calculate in log-space, then exponentiate - log_activity_mutant_dists = log_activity_hyper_loc + activity_offset * log_activity_hyper_scale - activity = jnp.clip(jnp.exp(log_activity_mutant_dists), max=1e30) - - # Set wildtype activity to 1.0 - is_wt_mask = jnp.isin(data.batch_idx, data.wt_indexes) - activity = jnp.where(is_wt_mask, 1.0, activity) + # Sampled at library size: slice to this batch's genotypes (a value of + # any other size is an already-sliced substitution from the posterior + # forward pass). Computed in log-space; wt activity is 1.0. + activity, population = per_genotype( + _activity_values(log_activity_hyper_loc, log_activity_hyper_scale, + data.wt_indexes), + [activity_offset], data, return_population) # Register per-genotype values for inspection pyro.deterministic(name, activity) @@ -119,11 +131,14 @@ def define_model(name: str, # Broadcast to full-sized tensor activity = activity[None,None,None,None,None,None,:] + if return_population: + return activity, population return activity def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Guide corresponding to the hierarchical activity model. @@ -169,22 +184,19 @@ def guide(name: str, with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): activity_offset = pyro.sample(f"{name}_offset", dist.Normal(offset_locs, offset_scales)) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if activity_offset.shape[-1] == data.num_genotype: - activity_offset = activity_offset[..., data.batch_idx] - - # Calculate in log-space, then exponentiate - log_activity_mutant_dists = log_activity_hyper_loc + activity_offset * log_activity_hyper_scale - activity = jnp.clip(jnp.exp(log_activity_mutant_dists), max=1e30) - - # Set wildtype activity to 1.0 - is_wt_mask = jnp.isin(data.batch_idx, data.wt_indexes) - activity = jnp.where(is_wt_mask, 1.0, activity) + # Sampled at library size: slice to this batch's genotypes (a value of + # any other size is an already-sliced substitution from the posterior + # forward pass). Computed in log-space; wt activity is 1.0. + activity, population = per_genotype( + _activity_values(log_activity_hyper_loc, log_activity_hyper_scale, + data.wt_indexes), + [activity_offset], data, return_population) # Broadcast to full-sized tensor activity = activity[None,None,None,None,None,None,:] + if return_population: + return activity, population return activity diff --git a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py index c819e191..e8ab0784 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py +++ b/src/tfscreen/tfmodel/generative/components/activity/hierarchical_mut.py @@ -34,7 +34,8 @@ class ModelPriors: def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Define the mutation-decomposed activity model. @@ -45,6 +46,9 @@ def define_model(name: str, Must have ``mut_geno_matrix`` (num_mutation x G) and ``num_mutation``. If ``num_pair > 0``, must also have ``pair_geno_matrix``. priors : ModelPriors + return_population : bool, default False + Also return the library-ordered per-genotype activity, shape + ``(num_genotype,)``, as a ``(tensor, population)`` tuple. Returns ------- @@ -100,13 +104,17 @@ def define_model(name: str, # activity is library-ordered; always slice to the batch's genotypes. # The full-batch index is a reshuffled permutation, not the identity. - activity = activity[data.batch_idx] - return activity[None, None, None, None, None, None, :] + population = activity + activity = activity[data.batch_idx][None, None, None, None, None, None, :] + if return_population: + return activity, population + return activity def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """Variational guide for the mutation-decomposed activity model.""" num_mut = data.num_mutation @@ -163,8 +171,11 @@ def guide(name: str, # activity is library-ordered; always slice to the batch's genotypes. # The full-batch index is a reshuffled permutation, not the identity. - activity = activity[data.batch_idx] - return activity[None, None, None, None, None, None, :] + population = activity + activity = activity[data.batch_idx][None, None, None, None, None, None, :] + if return_population: + return activity, population + return activity def get_hyperparameters() -> Dict[str, Any]: diff --git a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py index c5c16eef..8e82b5bf 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py +++ b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_geno.py @@ -5,6 +5,7 @@ from typing import Dict, Any from tfscreen.tfmodel.data_class import GrowthData +from tfscreen.tfmodel.generative.components._population import per_genotype @dataclass(frozen=True) class ModelPriors: @@ -20,9 +21,19 @@ class ModelPriors: global_scale_tau_scale: float +def _activity_values(global_scale_tau, wt_indexes): + """Per-genotype activity: log(activity) = z * tau * lambda; wt pinned to 1.""" + def compute(local_scale_lambda, activity_offset, genotype_idx): + log_activity = activity_offset * (global_scale_tau * local_scale_lambda) + activity = jnp.clip(jnp.exp(log_activity), max=1e30) + return jnp.where(jnp.isin(genotype_idx, wt_indexes), 1.0, activity) + return compute + + def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Defines the Horseshoe-regularized model for genotype-specific activity. @@ -49,12 +60,18 @@ def define_model(name: str, priors : ModelPriors A Pytree (Flax dataclass) containing the hyperparameters for the Horseshoe prior. + return_population : bool, default False + Also return the library-ordered per-genotype values (shape + ``(num_genotype,)``, or ``None`` when the latents arrived as a + batch-sized substitution), for callers that look genotypes up by + library index (the congression mixture). Returns ------- jnp.ndarray The sampled `activity` values, expanded to match the shape of - the observations via ``data.map_genotype``. + the observations via ``data.map_genotype``. With + ``return_population``, a ``(tensor, population)`` tuple. """ # Global scale: How big can the "slab" (real effects) be? @@ -72,24 +89,13 @@ def define_model(name: str, # Non-centered offset `z` (always Normal(0,1)) activity_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if local_scale_lambda.shape[-1] == data.num_genotype: - local_scale_lambda = local_scale_lambda[..., data.batch_idx] - if activity_offset.shape[-1] == data.num_genotype: - activity_offset = activity_offset[..., data.batch_idx] - - # Combine scales: `beta = z * (tau * lambda)` - # The mean `log(activity)` is 0.0 (i.e., activity = 1.0) - # The effective scale allows for deviations from 0.0 - effective_scale = global_scale_tau * local_scale_lambda - log_activity_mutant_dists = activity_offset * effective_scale - - activity = jnp.clip(jnp.exp(log_activity_mutant_dists), max=1e30) - - # Set wildtype activity to 1.0 - is_wt_mask = jnp.isin(data.batch_idx, data.wt_indexes) - activity = jnp.where(is_wt_mask, 1.0, activity) + # Sampled at library size: slice to this batch's genotypes (a value of + # any other size is an already-sliced substitution from the posterior + # forward pass). Combine scales, `beta = z * (tau * lambda)`, around a + # mean log(activity) of 0.0; wt activity is 1.0. + activity, population = per_genotype( + _activity_values(global_scale_tau, data.wt_indexes), + [local_scale_lambda, activity_offset], data, return_population) # Register per-genotype values for inspection pyro.deterministic(name, activity) @@ -97,12 +103,15 @@ def define_model(name: str, # Broadcast to full-sized tensor activity = activity[None,None,None,None,None,None,:] + if return_population: + return activity, population return activity def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Guide corresponding to the Horseshoe-regularized activity model. @@ -142,28 +151,19 @@ def guide(name: str, dist.Normal(activity_offset_locs, activity_offset_scales)) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if local_scale_lambda.shape[-1] == data.num_genotype: - local_scale_lambda = local_scale_lambda[..., data.batch_idx] - if activity_offset.shape[-1] == data.num_genotype: - activity_offset = activity_offset[..., data.batch_idx] - - # Combine scales: `beta = z * (tau * lambda)` - # The mean `log(activity)` is 0.0 (i.e., activity = 1.0) - # The effective scale allows for deviations from 0.0 - effective_scale = global_scale_tau * local_scale_lambda - log_activity_mutant_dists = activity_offset * effective_scale - - activity = jnp.clip(jnp.exp(log_activity_mutant_dists), max=1e30) - - # Set wildtype activity to 1.0 - is_wt_mask = jnp.isin(data.batch_idx, data.wt_indexes) - activity = jnp.where(is_wt_mask, 1.0, activity) + # Sampled at library size: slice to this batch's genotypes (a value of + # any other size is an already-sliced substitution from the posterior + # forward pass). Combine scales, `beta = z * (tau * lambda)`, around a + # mean log(activity) of 0.0; wt activity is 1.0. + activity, population = per_genotype( + _activity_values(global_scale_tau, data.wt_indexes), + [local_scale_lambda, activity_offset], data, return_population) # Broadcast to full-sized tensor activity = activity[None,None,None,None,None,None,:] + if return_population: + return activity, population return activity def get_hyperparameters() -> Dict[str, Any]: diff --git a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py index 085d4c83..c328ad14 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py +++ b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py @@ -52,7 +52,8 @@ class ModelPriors: def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Define the regularised-horseshoe mutation-decomposed activity model. @@ -63,6 +64,9 @@ def define_model(name: str, Must have ``mut_geno_matrix`` (num_mutation x G) and ``num_mutation``. If ``num_pair > 0``, must also have ``pair_geno_matrix``. priors : ModelPriors + return_population : bool, default False + Also return the library-ordered per-genotype activity, shape + ``(num_genotype,)``, as a ``(tensor, population)`` tuple. Returns ------- @@ -129,13 +133,17 @@ def define_model(name: str, # activity is library-ordered; always slice to the batch's genotypes. # The full-batch index is a reshuffled permutation, not the identity. - activity = activity[data.batch_idx] - return activity[None, None, None, None, None, None, :] + population = activity + activity = activity[data.batch_idx][None, None, None, None, None, None, :] + if return_population: + return activity, population + return activity def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """Variational guide for the regularised-horseshoe mutation-decomposed activity model.""" num_mut = data.num_mutation @@ -218,8 +226,11 @@ def guide(name: str, # activity is library-ordered; always slice to the batch's genotypes. # The full-batch index is a reshuffled permutation, not the identity. - activity = activity[data.batch_idx] - return activity[None, None, None, None, None, None, :] + population = activity + activity = activity[data.batch_idx][None, None, None, None, None, None, :] + if return_population: + return activity, population + return activity def get_hyperparameters() -> Dict[str, Any]: diff --git a/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py b/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py index 0d6b0f50..846ea975 100644 --- a/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py +++ b/src/tfscreen/tfmodel/generative/components/dk_geno/fixed.py @@ -13,7 +13,8 @@ class ModelPriors: def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ The pleiotropic effect of a genotype on growth rate independent of transcription factor occupancy. Fixed to zero. Returns a full tensor. @@ -30,6 +31,9 @@ def define_model(name: str, per-genotype parameters to the full set of observations. priors : ModelPriors A Pytree of hyperparameters. (Unused in this model). + return_population : bool, default False + Also return the library-ordered per-genotype values, shape + ``(num_genotype,)``, as a ``(tensor, population)`` tuple. Returns ------- @@ -47,11 +51,14 @@ def define_model(name: str, # Expand to full-sized tensor dk_geno = dk_geno_per_genotype[None,None,None,None,None,None,:] + if return_population: + return dk_geno, jnp.zeros(data.num_genotype, dtype=float) return dk_geno def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Guide for the fixed dk_geno model. @@ -65,6 +72,8 @@ def guide(name: str, # Expand to full-sized tensor dk_geno = dk_geno_per_genotype[None,None,None,None,None,None,:] + if return_population: + return dk_geno, jnp.zeros(data.num_genotype, dtype=float) return dk_geno def get_hyperparameters(): diff --git a/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py b/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py index 11dcebb3..d39a7035 100644 --- a/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py +++ b/src/tfscreen/tfmodel/generative/components/dk_geno/hierarchical_geno.py @@ -6,6 +6,7 @@ from typing import Mapping from tfscreen.tfmodel.data_class import GrowthData +from tfscreen.tfmodel.generative.components._population import per_genotype from tfscreen.tfmodel.generative.components._pinning import ( _hyper, _pinned_value, @@ -35,9 +36,20 @@ class ModelPriors: ) +def _dk_geno_values(hyper_loc, hyper_scale, hyper_shift, wt_indexes): + """Per-genotype dk_geno from offsets (shift - lognormal); wt pinned to 0.""" + def compute(dk_offset, genotype_idx): + lognormal = jnp.clip(jnp.exp(hyper_loc + dk_offset * hyper_scale), + max=1e30) + values = hyper_shift - lognormal + return jnp.where(jnp.isin(genotype_idx, wt_indexes), 0.0, values) + return compute + + def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ The pleiotropic effect of a genotype on growth rate independent of transcription factor occupancy. @@ -64,12 +76,18 @@ def define_model(name: str, - ``priors.hyper_loc_loc`` - ``priors.hyper_loc_scale`` - ``priors.hyper_scale_loc`` + return_population : bool, default False + Also return the library-ordered per-genotype values (shape + ``(num_genotype,)``, or ``None`` when the latents arrived as a + batch-sized substitution), for callers that look genotypes up by + library index (the congression mixture). Returns ------- jnp.ndarray full tensor with shape (num_replicate,num_time,num_treatment,num_genotype) - with dk_geno values for each position in the tensor. + with dk_geno values for each position in the tensor. With + ``return_population``, a ``(tensor, population)`` tuple. """ pinned = priors.pinned @@ -96,29 +114,28 @@ def define_model(name: str, with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): dk_geno_offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, 1.0)) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if dk_geno_offset.shape[-1] == data.num_genotype: - dk_geno_offset = dk_geno_offset[..., data.batch_idx] - - dk_geno_lognormal_values = jnp.clip(jnp.exp(dk_geno_hyper_loc + dk_geno_offset * dk_geno_hyper_scale),max=1e30) - dk_geno_per_genotype = dk_geno_hyper_shift - dk_geno_lognormal_values + # Sampled at library size: slice to this batch's genotypes (a value of + # any other size is an already-sliced substitution from the posterior + # forward pass). wt is forced to zero. + dk_geno_per_genotype, population = per_genotype( + _dk_geno_values(dk_geno_hyper_loc, dk_geno_hyper_scale, + dk_geno_hyper_shift, data.wt_indexes), + [dk_geno_offset], data, return_population) - # Force wildtype to be zero. - is_wt_mask = jnp.isin(data.batch_idx, data.wt_indexes) - dk_geno_per_genotype = jnp.where(is_wt_mask, 0.0, dk_geno_per_genotype) - # Register dists pyro.deterministic(name, dk_geno_per_genotype) # Expand to full-sized tensor dk_geno = dk_geno_per_genotype[None,None,None,None,None,None,:] + if return_population: + return dk_geno, population return dk_geno def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Guide corresponding to the hierarchical dk_geno model. @@ -173,24 +190,20 @@ def guide(name: str, with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): dk_geno_offset = pyro.sample(f"{name}_offset", dist.Normal(offset_locs, offset_scales)) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if dk_geno_offset.shape[-1] == data.num_genotype: - dk_geno_offset = dk_geno_offset[..., data.batch_idx] - # --- Deterministic Calculation --- - - # Replicate the Shift - LogNormal logic - dk_geno_lognormal_values = jnp.clip(jnp.exp(dk_geno_hyper_loc + dk_geno_offset * dk_geno_hyper_scale), max=1e30) - dk_geno_per_genotype = dk_geno_hyper_shift - dk_geno_lognormal_values - # Force wildtype to be zero - is_wt_mask = jnp.isin(data.batch_idx, data.wt_indexes) - dk_geno_per_genotype = jnp.where(is_wt_mask, 0.0, dk_geno_per_genotype) - + # Same shift - lognormal logic as the model, sliced to the batch; wt is + # forced to zero. + dk_geno_per_genotype, population = per_genotype( + _dk_geno_values(dk_geno_hyper_loc, dk_geno_hyper_scale, + dk_geno_hyper_shift, data.wt_indexes), + [dk_geno_offset], data, return_population) + # Expand to full-sized tensor dk_geno = dk_geno_per_genotype[None,None,None,None,None,None,:] + if return_population: + return dk_geno, population return dk_geno def get_hyperparameters(): diff --git a/src/tfscreen/tfmodel/generative/components/dk_geno/pinned.py b/src/tfscreen/tfmodel/generative/components/dk_geno/pinned.py index 39568cc5..42044da9 100644 --- a/src/tfscreen/tfmodel/generative/components/dk_geno/pinned.py +++ b/src/tfscreen/tfmodel/generative/components/dk_geno/pinned.py @@ -64,16 +64,30 @@ class ModelPriors: dk_geno_values: jnp.ndarray -def _compute_dk_geno(data: GrowthData, priors: ModelPriors) -> jnp.ndarray: - """Shared per-genotype dk_geno lookup, with wildtype forced to 0.""" - dk_geno_per_genotype = priors.dk_geno_values[data.batch_idx] - is_wt_mask = jnp.isin(data.batch_idx, data.wt_indexes) +def _compute_dk_geno(data: GrowthData, priors: ModelPriors, + genotype_idx=None) -> jnp.ndarray: + """ + Shared per-genotype dk_geno lookup, with wildtype forced to 0. + + ``genotype_idx`` defaults to the batch (``data.batch_idx``); pass + ``arange(num_genotype)`` for the library-ordered population. + """ + if genotype_idx is None: + genotype_idx = data.batch_idx + dk_geno_per_genotype = priors.dk_geno_values[genotype_idx] + is_wt_mask = jnp.isin(genotype_idx, data.wt_indexes) return jnp.where(is_wt_mask, 0.0, dk_geno_per_genotype) +def _population(data: GrowthData, priors: ModelPriors) -> jnp.ndarray: + """Library-ordered pinned dk_geno for every genotype.""" + return _compute_dk_geno(data, priors, jnp.arange(data.num_genotype)) + + def define_model(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ The pleiotropic effect of a genotype on growth rate independent of transcription factor occupancy, pinned to caller-supplied per-genotype @@ -93,6 +107,9 @@ def define_model(name: str, wildtype (always forced to dk_geno = 0). priors : ModelPriors Holds the pinned ``dk_geno_values``. + return_population : bool, default False + Also return the library-ordered per-genotype values, shape + ``(num_genotype,)``, as a ``(tensor, population)`` tuple. Returns ------- @@ -106,12 +123,15 @@ def define_model(name: str, dk_geno = dk_geno_per_genotype[None, None, None, None, None, None, :] + if return_population: + return dk_geno, _population(data, priors) return dk_geno def guide(name: str, data: GrowthData, - priors: ModelPriors) -> jnp.ndarray: + priors: ModelPriors, + return_population: bool = False) -> jnp.ndarray: """ Guide for the pinned dk_geno model. @@ -122,6 +142,8 @@ def guide(name: str, dk_geno = dk_geno_per_genotype[None, None, None, None, None, None, :] + if return_population: + return dk_geno, _population(data, priors) return dk_geno diff --git a/tests/tfscreen/tfmodel/generative/components/test_component_population.py b/tests/tfscreen/tfmodel/generative/components/test_component_population.py new file mode 100644 index 00000000..840e62d2 --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/components/test_component_population.py @@ -0,0 +1,184 @@ +""" +Library-ordered per-genotype values from the dk_geno and activity components +(``return_population=True``), for the congression mixture's co-resident +lookup. See ``generative/components/_population.py``. +""" + +import os +from types import SimpleNamespace + +import jax.numpy as jnp +import numpy as np +import pytest +from numpyro.handlers import seed, substitute, trace + +from tfscreen.tfmodel.generative.components._population import per_genotype +from tfscreen.tfmodel.generative.components.dk_geno import pinned +from tfscreen.tfmodel.generative.registry import model_registry +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") + + +# --------------------------------------------------------------------------- +# per_genotype helper +# --------------------------------------------------------------------------- + +def _double_plus_index(x, genotype_idx): + return 2.0 * x + genotype_idx + + +def test_per_genotype_library_sized(): + data = SimpleNamespace(num_genotype=4, batch_idx=jnp.array([2, 0])) + x = jnp.array([1.0, 2.0, 3.0, 4.0]) + batch, population = per_genotype(_double_plus_index, [x], data, + return_population=True) + np.testing.assert_allclose(population, [2.0, 5.0, 8.0, 11.0]) + np.testing.assert_allclose(batch, population[jnp.array([2, 0])]) + + +def test_per_genotype_default_is_batch_only(): + data = SimpleNamespace(num_genotype=4, batch_idx=jnp.array([2, 0])) + x = jnp.array([1.0, 2.0, 3.0, 4.0]) + batch, population = per_genotype(_double_plus_index, [x], data) + assert population is None + np.testing.assert_allclose(batch, [8.0, 2.0]) + + +def test_per_genotype_substituted_latent_has_no_population(): + """A batch-sized substitution says nothing about the rest of the library.""" + data = SimpleNamespace(num_genotype=4, batch_idx=jnp.array([2, 0])) + x = jnp.array([3.0, 1.0]) # already sliced to the batch + batch, population = per_genotype(_double_plus_index, [x], data, + return_population=True) + assert population is None + np.testing.assert_allclose(batch, [8.0, 2.0]) + + +def test_per_genotype_mixed_latents_slice_library_sized_one(): + data = SimpleNamespace(num_genotype=4, batch_idx=jnp.array([2, 0])) + library = jnp.array([1.0, 2.0, 3.0, 4.0]) + sliced = jnp.array([10.0, 20.0]) + batch, population = per_genotype(lambda a, b, idx: a + b, [library, sliced], + data, return_population=True) + assert population is None + np.testing.assert_allclose(batch, [13.0, 21.0]) + + +# --------------------------------------------------------------------------- +# Every dk_geno and activity component +# --------------------------------------------------------------------------- + +# Every registered dk_geno and activity variant, so a new component is +# covered automatically. dk_geno "pinned" needs a pins file to build an +# orchestrator and is tested on its own below. +_VARIANTS = [(axis, variant) + for axis in ("dk_geno", "activity") + for variant in sorted(model_registry[axis]) + if (axis, variant) != ("dk_geno", "pinned")] + +# wt's pinned value. +_WT_VALUE = {"dk_geno": 0.0, "activity": 1.0} + + +@pytest.fixture(scope="module") +def orchestrators(): + return {v: ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + **{v[0]: v[1]}) + for v in _VARIANTS} + + +def _shuffled_full_batch(orchestrator, seed_value=0): + data = orchestrator.data + pinned_idx = np.asarray(data.batch_idx)[:data.num_binding] + rest = np.random.default_rng(seed_value).permutation( + np.asarray(data.not_binding_idx)) + return np.concatenate([pinned_idx, rest]) + + +def _run(fn, name, data, priors, **kwargs): + """Run a component under a fixed seed; return (trace, output).""" + box = {} + + def call(): + box["out"] = fn(name, data, priors, **kwargs) + + tr = trace(seed(call, rng_seed=0)).get_trace() + return tr, box["out"] + + +@pytest.mark.parametrize("axis,variant", _VARIANTS) +@pytest.mark.parametrize("which", ["define_model", "guide"]) +@pytest.mark.parametrize("batch", ["full", "mini"]) +def test_population_matches_batch(orchestrators, axis, variant, which, batch): + orchestrator = orchestrators[(axis, variant)] + idx = _shuffled_full_batch(orchestrator) + if batch == "mini": + idx = idx[:orchestrator.data.num_binding + 3] + data = orchestrator.get_batch(orchestrator.data, jnp.asarray(idx)).growth + priors = getattr(orchestrator.priors.growth, axis) + fn = getattr(model_registry[axis][variant], which) + + _, (tensor, population) = _run(fn, axis, data, priors, + return_population=True) + _, default_tensor = _run(fn, axis, data, priors) + + num_genotype = orchestrator.data.num_genotype + assert population.shape == (num_genotype,) + batch_values = np.asarray(tensor).reshape(-1) + np.testing.assert_allclose(batch_values, + np.asarray(population)[idx], rtol=1e-6) + # The default call is unchanged: same batch values, no population. + np.testing.assert_allclose(np.asarray(default_tensor), np.asarray(tensor), + rtol=1e-6) + wt = np.asarray(data.wt_indexes) + np.testing.assert_allclose(np.asarray(population)[wt], _WT_VALUE[axis]) + + +# Components whose per-genotype latents are sampled at library size and so +# can arrive as a batch-sized substitution in the posterior forward pass. +_SUBSTITUTABLE = { + ("dk_geno", "hierarchical_geno"): ["dk_geno_offset"], + ("activity", "hierarchical_geno"): ["activity_offset"], + ("activity", "horseshoe_geno"): ["activity_local_scale", "activity_offset"], +} + + +@pytest.mark.parametrize("axis,variant", list(_SUBSTITUTABLE)) +def test_substituted_latents_give_no_population(orchestrators, axis, variant): + orchestrator = orchestrators[(axis, variant)] + idx = _shuffled_full_batch(orchestrator)[:orchestrator.data.num_binding + 3] + data = orchestrator.get_batch(orchestrator.data, jnp.asarray(idx)).growth + priors = getattr(orchestrator.priors.growth, axis) + fn = model_registry[axis][variant].define_model + + library_trace, _ = _run(fn, axis, data, priors) + values = {site: library_trace[site]["value"][..., idx] + for site in _SUBSTITUTABLE[(axis, variant)]} + + def call(): + return fn(axis, data, priors, return_population=True) + + tensor, population = substitute(seed(call, rng_seed=0), data=values)() + assert population is None + assert np.asarray(tensor).shape[-1] == len(idx) + + +@pytest.mark.parametrize("which", ["define_model", "guide"]) +def test_pinned_dk_geno_population(which): + values = jnp.array([0.5, -0.01, -0.02, 0.03]) + data = SimpleNamespace(num_genotype=4, batch_idx=jnp.array([3, 0, 2]), + wt_indexes=jnp.array([0])) + priors = pinned.get_priors(dk_geno_values=values) + tensor, population = getattr(pinned, which)("dk_geno", data, priors, + return_population=True) + np.testing.assert_allclose(population, [0.0, -0.01, -0.02, 0.03]) + np.testing.assert_allclose(np.asarray(tensor).reshape(-1), + np.asarray(population)[[3, 0, 2]]) From 69105a2dc2d31a2507b10cef2b254f14d983d4ea Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 16:09:06 -0700 Subject: [PATCH 015/208] Keep categorical_geno theta library-ordered (step 3.3a) model.py builds the congression background by calling the theta component's run_model with batch_idx = geno_theta_idx = arange(num_genotype). categorical_geno sliced its per-genotype latent to the batch when sampling, so that call returned batch-ordered theta at full batch and indexed past the batch under mini-batching (repeating the last genotype). The empirical correction's CDF is order-free, so full-batch fits were unaffected; fits combining categorical_geno, transformation=empirical and mini-batching used a corrupted background and should be rerun. theta now stays library-sized and run_model indexes it through batch_idx[geno_theta_idx] (the hill_geno pattern). The theta_theta deterministic site is now stored for every genotype. The congression mixture (step 3.3c) looks co-resident genotypes up in the population theta by library index, so it must be library-ordered for every theta component. New test_population_theta.py checks this for each theta component (model and guide; shuffled full batch and mini-batch). test_categorical_geno.py's fixtures used an inconsistent geno_theta_idx and constant values that hid indexing; they now use batch-relative indices and distinct values. Verified: the new test fails on the old code for categorical_geno only (4 cases); full tests/tfscreen suite passes (4726 passed, 10 skipped); model, posterior and prediction smoke tests pass (27). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 16 ++++ planning/congression-physics-plan.md | 13 ++- .../components/theta/categorical_geno.py | 25 +++-- .../components/theta/test_categorical_geno.py | 51 +++++----- .../generative/test_population_theta.py | 94 +++++++++++++++++++ 5 files changed, 157 insertions(+), 42 deletions(-) create mode 100644 tests/tfscreen/tfmodel/generative/test_population_theta.py diff --git a/CHANGELOG.md b/CHANGELOG.md index a80fe9f7..37886433 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -211,6 +211,22 @@ fall into two kinds: follow the index. `test_batch_safety.py` runs it across the component registry and the epistasis and binding-only variants. +- **`theta/categorical_geno` full-population theta.** The component sliced + its per-genotype latent to the batch when sampling, so the full-population + theta `generative/model.py` builds for the congression background (by + calling `run_model` with `batch_idx = geno_theta_idx = arange(num_genotype)`) + came back in batch order at full batch and indexed past the batch under + mini-batching, repeating the last genotype. The empirical correction's + background CDF is order-free, so full-batch fits were unaffected; fits + combining `categorical_geno`, `transformation=empirical` and mini-batching + used a corrupted background and should be rerun. theta now stays + library-sized and `run_model` indexes it through + `batch_idx[geno_theta_idx]` (the `hill_geno` pattern). The `theta_theta` + deterministic site is now stored for every genotype. + - New `tests/tfscreen/tfmodel/generative/test_population_theta.py` + checks, for every theta component (model and guide; shuffled full batch + and mini-batch), that the full-population theta is library-ordered. + ## [0.4.4] - 2026-09-22 A processing and bookkeeping release: two fixes in the read-counting and diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index a33dc69a..6af918de 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -448,9 +448,16 @@ checked with `tfs-summarize-calibration`. Found for 3.3: `theta/categorical_geno` slices its latent to the batch at sample time, so `model.py`'s full-population `calc_theta` (arange `batch_idx`/`geno_theta_idx`) returns batch-ordered theta at full batch - and indexes past the batch under mini-batching. Harmless for today's - empirical CDF at full batch (order-free), but 3.3 needs library-ordered - population theta from every theta component; fix and test it there. + and indexes past the batch under mini-batching. Fixed in 3.3a. + - 3.3 lands as three commits: 3.3a library-ordered population theta + (bug fix), 3.3b co-resident sets drawn into `GrowthData` (no behavior + change), 3.3c the mixture itself (breaking; includes the + `analysis/prediction.py` change, since prediction runs the model and + must supply full-library populations and the fit's co-resident sets). + - [x] **3.3a Library-ordered population theta.** Done 2026-09-23: + `categorical_geno` keeps theta library-sized and indexes through + `batch_idx[geno_theta_idx]`; `test_population_theta.py` checks every + theta component. - [ ] **3.3 Mixture.** Class axis ahead of the 7-D growth layout; per-class theta rescale, `calculate_growth`, `growth_transition`; logsumexp mix with `log w`. New transformation-component interface returning classes diff --git a/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py b/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py index 31e30eec..2c61f77b 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py +++ b/src/tfscreen/tfmodel/generative/components/theta/categorical_geno.py @@ -111,10 +111,9 @@ def define_model(name: str, dist.Normal(0.0, 1.0) ) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if logit_theta_offset.shape[-1] == data.num_genotype: - logit_theta_offset = logit_theta_offset[..., data.batch_idx] + # Kept at library size (library order); run_model selects the batch's + # genotypes through batch_idx, so the full population is available to + # callers that evaluate every genotype (the congression background). # Calculate parameters in logit-space # logit_theta_hyper_loc result from plating is (Name, Conc) if rank-minimized, @@ -204,10 +203,9 @@ def guide(name: str, dist.Normal(offset_locs, offset_scales) ) - # Sampled at library size: slice to this batch's genotypes. A value of - # any other size is an already-sliced substitution (posterior forward pass). - if logit_theta_offset.shape[-1] == data.num_genotype: - logit_theta_offset = logit_theta_offset[..., data.batch_idx] + # Kept at library size (library order); run_model selects the batch's + # genotypes through batch_idx, so the full population is available to + # callers that evaluate every genotype (the congression background). # --- 4. Reconstruction (Deterministic) --- @@ -263,8 +261,10 @@ def run_model(theta_param: ThetaParam, data: DataClass) -> jnp.ndarray: """ # 1. Select the correct genotypes for this dataset - # theta_param.theta: (Name, Conc, Genotypes) - theta_base = theta_param.theta[..., data.geno_theta_idx] + # theta_param.theta: (Name, Conc, Genotypes), library-ordered. + # geno_theta_idx is batch-relative; translating through batch_idx gives + # library indices (the hill_geno pattern). + theta_base = theta_param.theta[..., data.batch_idx[data.geno_theta_idx]] # 2. Map concentrations # We find the indices of data.titrant_conc in theta_param.concentrations. @@ -456,9 +456,8 @@ def compute_theta_samples(calc_df, param_posteriors): """ Reconstruct posterior theta samples for the categorical model. - Does NOT use the ``theta_theta`` deterministic site, which is computed - inside a forward batch and only covers ``batch_size`` genotypes in the - HDF5 file (not the full genotype set). Instead, reconstructs theta from + Does NOT use the ``theta_theta`` deterministic site (older posterior + files store it for only ``batch_size`` genotypes). Instead, reconstructs theta from its three constituent posterior arrays, all of which are correctly stored for every genotype: diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py b/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py index a308fb2d..5fd0c7f6 100644 --- a/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py +++ b/tests/tfscreen/tfmodel/generative/components/theta/test_categorical_geno.py @@ -49,8 +49,9 @@ def mock_data(): scale_vector = jnp.ones(batch_size, dtype=float) map_theta = jnp.array([0, 5, 10, 23, 1], dtype=jnp.int32) - # New required fields - geno_theta_idx = jnp.array([1, 3], dtype=jnp.int32) + # geno_theta_idx is batch-relative (as get_batch builds it); batch_idx + # maps batch positions to library genotypes. + geno_theta_idx = jnp.arange(batch_size, dtype=jnp.int32) titrant_conc = jnp.array([0.0, 1.0, 10.0]) return MockData( @@ -66,20 +67,24 @@ def mock_data(): titrant_conc=titrant_conc ) +def _distinct_offsets(mock_data): + """Library-sized offsets that differ by genotype, so indexing is visible.""" + shape = (mock_data.num_titrant_name, mock_data.num_titrant_conc, + mock_data.num_genotype) + return jnp.arange(np.prod(shape), dtype=float).reshape(shape) / 10.0 + + @pytest.fixture def model_setup(mock_data): """ - Provides a deterministic ThetaParam object (BATCHED) for testing run_model. + Provides a deterministic, library-sized ThetaParam for testing run_model. """ name = "test_theta_cat" priors = get_priors() - base_guesses = get_guesses(name, mock_data) - - batch_guesses = base_guesses.copy() - full_offsets = base_guesses[f"{name}_logit_theta_offset"] - batch_guesses[f"{name}_logit_theta_offset"] = full_offsets[..., mock_data.batch_idx] + guesses = get_guesses(name, mock_data) + guesses[f"{name}_logit_theta_offset"] = _distinct_offsets(mock_data) - substituted_model = substitute(define_model, data=batch_guesses) + substituted_model = substitute(define_model, data=guesses) theta_param = substituted_model(name=name, data=mock_data, priors=priors) @@ -123,22 +128,20 @@ def test_define_model_shapes_and_values(mock_data): name = "test_theta_cat" priors = get_priors() - base_guesses = get_guesses(name, mock_data) - batch_guesses = base_guesses.copy() - full_offsets = base_guesses[f"{name}_logit_theta_offset"] - batch_guesses[f"{name}_logit_theta_offset"] = full_offsets[..., mock_data.batch_idx] - - substituted_model = substitute(define_model, data=batch_guesses) + guesses = get_guesses(name, mock_data) + + substituted_model = substitute(define_model, data=guesses) theta_param = substituted_model(name=name, data=mock_data, priors=priors) - expected_batch_shape = ( + # theta stays library-sized (library order); run_model selects the batch. + expected_shape = ( mock_data.num_titrant_name, mock_data.num_titrant_conc, - mock_data.batch_size + mock_data.num_genotype ) - assert theta_param.theta.shape == expected_batch_shape + assert theta_param.theta.shape == expected_shape assert theta_param.mu.shape == (mock_data.num_titrant_name, mock_data.num_titrant_conc, 1) assert jnp.allclose(theta_param.theta, 0.5) assert jnp.allclose(theta_param.concentrations, mock_data.titrant_conc) @@ -151,18 +154,14 @@ def test_run_model_no_scatter(model_setup, mock_data): data = mock_data._replace(scatter_theta=0) theta_calc = run_model(theta_param, data) - # We no longer assert 'is' because run_model slices genotypes - # it should be equal if indices match full theta_param.theta - # In model_setup, theta_param.theta already has batch_size genotypes. - # mock_data.geno_theta_idx is [1, 3] which matches mock_data.batch_idx. - + # Batch position j must hold library genotype batch_idx[j]. expected_shape = ( mock_data.num_titrant_name, mock_data.num_titrant_conc, mock_data.batch_size ) assert theta_calc.shape == expected_shape - assert jnp.allclose(theta_calc, theta_param.theta) + assert jnp.allclose(theta_calc, theta_param.theta[..., mock_data.batch_idx]) def test_run_model_with_scatter(model_setup, mock_data): """ @@ -194,7 +193,7 @@ def test_run_model_concentration_mapping(model_setup, mock_data): # Check values mapping # Orig concentrations: [0.0, 1.0, 10.0] -> indices [0, 1, 2] # new_conc [1.0, 0.0] should map to indices [1, 0] - expected = theta_param.theta[:, [1, 0], :] + expected = theta_param.theta[:, [1, 0], :][..., mock_data.batch_idx] assert jnp.allclose(theta_calc, expected) def test_guide_logic_and_shapes(mock_data): @@ -212,7 +211,7 @@ def test_guide_logic_and_shapes(mock_data): expected_sample_shape = ( mock_data.num_titrant_name, mock_data.num_titrant_conc, - mock_data.batch_size + mock_data.num_genotype ) assert theta_param.theta.shape == expected_sample_shape assert theta_param.mu.shape == (mock_data.num_titrant_name, mock_data.num_titrant_conc, 1) diff --git a/tests/tfscreen/tfmodel/generative/test_population_theta.py b/tests/tfscreen/tfmodel/generative/test_population_theta.py new file mode 100644 index 00000000..3ad2df3e --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/test_population_theta.py @@ -0,0 +1,94 @@ +""" +Full-population theta must be library-ordered for every theta component. + +``generative/model.py`` evaluates theta for every genotype (the congression +background) by calling the theta component's ``run_model`` on the growth +data with ``batch_idx = geno_theta_idx = arange(num_genotype)``. The +congression mixture looks co-resident genotypes up in that result by library +index, so entry g must be genotype g, whatever batch (full and reshuffled, or +a mini-batch) the latents were sampled in. +""" + +import os + +import jax.numpy as jnp +import numpy as np +import pytest +from numpyro.handlers import seed + +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") + +# The thermo PnnC/PddG variants need structure/ddG files; they share the PK +# variants' run_model. +_THETA_VARIANTS = [ + "hill_geno", + "hill_mut", + "categorical_geno", + "_simple", + "thermo.O2_C4_K3_U0_a.PK", + "thermo.O2_C4_K3_U1_a.PK", + "thermo.O2_C12_K5_U0_a.PK", + "thermo.O2_C12_K5_U1_a.PK", +] + + +def _orchestrator(theta): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + theta=theta) + if theta == "_simple": + # Per-genotype curves, so genotype order is visible. + g = orchestrator.data.growth + values = np.random.default_rng(0).uniform( + 0.05, 0.95, + (g.num_titrant_name, g.num_titrant_conc, g.num_genotype)) + priors = orchestrator.priors + orchestrator._priors = priors.replace( + theta=priors.theta.replace(theta_values=jnp.asarray(values))) + return orchestrator + + +def _shuffled_index(orchestrator, mini): + data = orchestrator.data + pinned = np.asarray(data.batch_idx)[:data.num_binding] + rest = np.random.default_rng(1).permutation( + np.asarray(data.not_binding_idx)) + idx = np.concatenate([pinned, rest]) + return idx[:data.num_binding + 3] if mini else idx + + +@pytest.mark.parametrize("theta", _THETA_VARIANTS) +@pytest.mark.parametrize("mini", [False, True]) +@pytest.mark.parametrize("which", ["model", "guide"]) +def test_population_theta_is_library_ordered(theta, mini, which): + orchestrator = _orchestrator(theta) + if which == "guide": + # The guide model is jax_model partially applied to the guide control. + control = orchestrator.jax_model_guide.keywords + else: + control = orchestrator.main_control_kwargs + sample_theta, calc_theta, _ = control["theta"] + + idx = _shuffled_index(orchestrator, mini) + growth = orchestrator.get_batch(orchestrator.data, jnp.asarray(idx)).growth + + theta_param = seed(sample_theta, rng_seed=0)("theta", growth, + orchestrator.priors.theta) + batch_theta = np.asarray(calc_theta(theta_param, growth)) + + num_genotype = growth.num_genotype + full = jnp.arange(num_genotype) + population_data = growth.replace(batch_idx=full, geno_theta_idx=full) + population_theta = np.asarray(calc_theta(theta_param, population_data)) + + assert population_theta.shape[-1] == num_genotype + np.testing.assert_allclose(population_theta[..., idx], batch_theta, + rtol=1e-6, atol=1e-7) From 5b442fa3bf64e657381336b6cd09c001f6cd8e32 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 16:22:50 -0700 Subject: [PATCH 016/208] Draw fixed co-resident sets for the congression mixture (step 3.3b) The congression mixture (step 3.3c) approximates each congressed cell's expected growth by a fixed quadrature over co-resident plasmid sets, drawn once per genotype and never redrawn (see the plan's "Fit design (step 3)" and planning/studies/congression-estimator/). ModelOrchestrator._draw_coresident_sets fills GrowthData.coresident_idx ((num_genotype, K, N_max) library indices, -1 = empty slot) and coresident_n (co-residents per set), stratified by co-resident count. Co-residents are independent draws from _coresident_pool: the bulk share of the pool, pool_fraction * bulk_fraction, over genotypes with growth data (library genotypes with no data, mostly dropouts, are left out; __unknown__ is never drawn). The legacy spiked_genotypes path uses a uniform pool over non-spiked genotypes. New settings congression_sets (default [12, 3, 1]) and congression_seed (default 0) are validated, written to the config's components block and read back, so a refit reproduces the same draws. Not yet used by the model, so fits are unchanged. CHANGELOG, CLAUDE.md and the plan updated. Verified: new TestCoresidentSets tests (shapes and strata, pool equals the bulk share, draw frequencies follow it, __unknown__ never drawn, legacy uniform pool, empty pool, seed reproducibility, validation, library-sized under batching, configure/read_configuration round trip); full tests/tfscreen suite passes; configure, model and prefit-calibration smoke tests pass (33). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 14 ++ CLAUDE.md | 2 +- planning/congression-physics-plan.md | 11 +- src/tfscreen/tfmodel/data_class.py | 9 ++ src/tfscreen/tfmodel/model_orchestrator.py | 127 +++++++++++++++++- tests/tfscreen/tfmodel/test_library_file.py | 119 ++++++++++++++++ .../tfmodel/test_model_orchestrator.py | 2 + 7 files changed, 280 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37886433..1b9fe692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -96,6 +96,20 @@ fall into two kinds: mixture's co-resident lookup; nothing requests the population yet, so fits are unchanged. +- **Fixed co-resident sets for the congression mixture.** `ModelOrchestrator` + draws, once per genotype, K co-resident plasmid sets + (`_draw_coresident_sets`) into `GrowthData.coresident_idx` + (`(num_genotype, K, N_max)` library indices, -1 = empty slot) and + `GrowthData.coresident_n` (co-residents per set). New settings + `congression_sets` (default `[12, 3, 1]`: 12 sets with one co-resident, + 3 with two, 1 with three) and `congression_seed` (default 0) are written + to the config's `components` block, so a refit reproduces the same draws. + Co-residents are drawn from the bulk share of the pool, + `pool_fraction * bulk_fraction`, over genotypes with growth data + (`__unknown__` excluded); the legacy `spiked_genotypes` path uses a + uniform pool over non-spiked genotypes. Not yet used by the model, so fits + are unchanged. + ### Changed - **Test reports and badges are no longer committed.** `reports/` and diff --git a/CLAUDE.md b/CLAUDE.md index fb997de4..cb57159f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -184,7 +184,7 @@ Flow: `genetics.library_composition_table(library_config)` (`genetics/library_de A library-derived spiked genotype that has no growth data is **reported, not fatal** (spikes can drop out of a real dataset), unlike the hand-supplied `spiked_genotypes` list, which still raises. -`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) but is **not yet read by the model** — it is the `f_g` of the observable-level congression mixture (step 3.3 of `planning/congression-physics-plan.md`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the current backend still applies the binary `congression_mask` for the congression correction. +`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) but is **not yet read by the model** — it is the `f_g` of the observable-level congression mixture (step 3.3 of `planning/congression-physics-plan.md`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the current backend still applies the binary `congression_mask` for the congression correction. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the (upcoming) congression mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. ### Pre-fit model accounting (`tfmodel/model_stats.py`) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 6af918de..02bda8e1 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -458,7 +458,16 @@ checked with `tfs-summarize-calibration`. `categorical_geno` keeps theta library-sized and indexes through `batch_idx[geno_theta_idx]`; `test_population_theta.py` checks every theta component. - - [ ] **3.3 Mixture.** Class axis ahead of the 7-D growth layout; per-class + - [x] **3.3b Co-resident sets.** Done 2026-09-23: + `ModelOrchestrator._draw_coresident_sets` / `_coresident_pool`; + `GrowthData.coresident_idx` (num_genotype, K, N_max; -1 = empty) and + `coresident_n`; settings `congression_sets` (default [12, 3, 1]) and + `congression_seed` (default 0), recorded in the config. Pool: bulk share + (`pool_fraction * bulk_fraction`) of genotypes with growth data, + `__unknown__` excluded; legacy path uniform over non-spiked (user, + 2026-09-23). An empty pool leaves every slot -1; 3.3c must refuse a + congression model with `bulk_fraction > 0` and an empty pool. + - [ ] **3.3c Mixture.** Class axis ahead of the 7-D growth layout; per-class theta rescale, `calculate_growth`, `growth_transition`; logsumexp mix with `log w`. New transformation-component interface returning classes `(theta, activity, dk, log w)`. `single` = one class of weight 1 and must diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index 98e0d519..fe7dc698 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -76,6 +76,15 @@ class GrowthData: # planning/congression-physics-plan.md, step 3.3. bulk_fraction: Any = field(default=None) + # Fixed co-resident plasmid sets for the congression mixture, drawn once + # by ModelOrchestrator._draw_coresident_sets. coresident_idx: int, + # (num_genotype, K, N_max), library (growth-tensor) genotype indices, + # -1 = empty slot; coresident_n: int, (K,), co-residents per set. + # Library-sized; consumers index the first axis with batch_idx. Not yet + # used by the model -- see planning/congression-physics-plan.md, 3.3c. + coresident_idx: Any = field(default=None) + coresident_n: Any = field(default=None) + growth_shares_replicates: bool = field(pytree_node=False, default=False) # Optional mutation-decomposition matrices (set when using *_mut_decomp components). diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index c6b84ba6..43100de3 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -751,6 +751,26 @@ def _check_theta_transformation_compatibility(theta, transformation, binding_onl ) +def _check_congression_sets(congression_sets): + """ + Validate ``congression_sets``: a non-empty sequence of non-negative + integers with a positive sum. Returns it as a tuple of ints. + """ + try: + values = [int(v) for v in congression_sets] + exact = all(float(v) == int(v) for v in congression_sets) + except (TypeError, ValueError): + values, exact = None, False + if (not values or not exact or any(v < 0 for v in values) + or sum(values) == 0): + raise ValueError( + f"congression_sets must be a non-empty list of non-negative " + f"integers with a positive sum (entry n-1 = number of sets with " + f"n co-residents); got {congression_sets!r}." + ) + return tuple(values) + + class ModelOrchestrator: """ Manages the data wrangling and configuration for the JAX growth model. @@ -814,6 +834,14 @@ class ModelOrchestrator: ``spiked_genotypes``. batch_size : int, optional The batch size for SVI. If None (default), use full batch. + congression_sets : sequence of int, optional + Number of fixed co-resident sets drawn per genotype for the + congression mixture, by co-resident count: entry n-1 is the number of + sets with n co-resident plasmids. Default (12, 3, 1): 16 sets, with + 1, 2 or 3 co-residents. See ``_draw_coresident_sets``. + congression_seed : int, optional + Seed for drawing the co-resident sets (default 0). Recorded in the + config, so a refit reproduces the same draws. Attributes ---------- @@ -857,7 +885,9 @@ def __init__(self, thermo_data=None, binding_weight=None, presplit_df=None, - base_growth_df=None): + base_growth_df=None, + congression_sets=(12, 3, 1), + congression_seed=0): self._ln_cfu_df = growth_df self._binding_df = binding_df @@ -889,6 +919,8 @@ def __init__(self, self._epistasis = epistasis self._thermo_data = thermo_data self._binding_weight = binding_weight + self._congression_sets = _check_congression_sets(congression_sets) + self._congression_seed = int(congression_seed) _check_theta_transformation_compatibility( self._theta, self._transformation, binding_only=self._binding_only @@ -1040,6 +1072,7 @@ def _initialize_data(self): mask[spiked_idx] = False bulk_fraction = self._build_bulk_fraction(mask) + coresident_idx, coresident_n = self._draw_coresident_sets(mask) wt_mask = np.zeros(sizes["num_genotype"], dtype=bool) wt_mask[wt_loc[0]] = True @@ -1065,7 +1098,9 @@ def _initialize_data(self): "ln_cfu0_spiked_mask":jnp.array(~mask,dtype=bool), "ln_cfu0_wt_mask":jnp.array(wt_mask,dtype=bool), "ln_cfu0_library_masks":jnp.array(_library_masks,dtype=bool), - "bulk_fraction":jnp.array(bulk_fraction,dtype=float)} + "bulk_fraction":jnp.array(bulk_fraction,dtype=float), + "coresident_idx":jnp.array(coresident_idx,dtype=jnp.int32), + "coresident_n":jnp.array(coresident_n,dtype=jnp.int32)} # Grab the titrant concentration and log_titrant_conc (1D array from # the tensor labels along dimension 6) @@ -1913,6 +1948,92 @@ def _build_bulk_fraction(self, spiked_free_mask): ) return values + def _coresident_pool(self, spiked_free_mask): + """ + Probability of each genotype (growth-tensor order) being drawn as a + co-resident plasmid. + + Co-residents come from the bulk sub-libraries, so with a library + composition table a genotype's weight is its bulk share of the pool, + ``pool_fraction * bulk_fraction``. Only genotypes with growth data + can be drawn (they are the only ones with theta and dk_geno in the + model); library genotypes with no data, mostly dropouts, are left + out, which biases the background slightly toward survivors. The + ``__unknown__`` bucket is never drawn. Without a table (legacy + path), the pool is uniform over non-spiked genotypes. + + Returns + ------- + numpy.ndarray + Float, shape (num_genotype,), summing to 1; all zeros when no + genotype can be drawn. + """ + + genotype_idx = self.growth_tm.tensor_dim_names.index("genotype") + genotype_names = [str(g) for g in + self.growth_tm.tensor_dim_labels[genotype_idx]] + + if self._library_df is None: + weights = np.where(spiked_free_mask, 1.0, 0.0) + else: + table = self._library_df.set_index("genotype") + weights = np.array([ + float(table.loc[g, "pool_fraction"] * table.loc[g, "bulk_fraction"]) + if g in table.index else 0.0 + for g in genotype_names + ]) + + weights[np.array(genotype_names) == "__unknown__"] = 0.0 + weights = np.where(np.isfinite(weights) & (weights > 0), weights, 0.0) + + total = weights.sum() + return weights / total if total > 0 else weights + + def _draw_coresident_sets(self, spiked_free_mask): + """ + Draw each genotype's fixed co-resident plasmid sets. + + The congression mixture approximates a congressed cell's expected + growth by a fixed quadrature over co-resident sets (see + planning/congression-physics-plan.md, "Fit design (step 3)"). Sets + are stratified by co-resident count: ``congression_sets[n-1]`` sets + of ``n`` co-residents each. Every co-resident is an independent draw + from ``_coresident_pool`` (a genotype can co-reside with itself). + Drawn once, with ``congression_seed``, and never redrawn. + + Returns + ------- + coresident_idx : numpy.ndarray + Int, shape (num_genotype, K, N_max), growth-tensor genotype + indices; -1 pads sets with fewer than N_max co-residents, and + every entry is -1 when the pool is empty. K is the total number + of sets and N_max = len(congression_sets). + coresident_n : numpy.ndarray + Int, shape (K,): the number of co-residents in each set. + """ + + pool = self._coresident_pool(spiked_free_mask) + num_genotype = len(pool) + n_max = len(self._congression_sets) + + coresident_n = np.concatenate([ + np.full(k, n, dtype=int) + for n, k in enumerate(self._congression_sets, start=1) + ]) + num_sets = len(coresident_n) + + coresident_idx = np.full((num_genotype, num_sets, n_max), -1, dtype=int) + if pool.sum() <= 0 or num_sets == 0: + return coresident_idx, coresident_n + + rng = np.random.default_rng(self._congression_seed) + draws = rng.choice(num_genotype, size=(num_genotype, num_sets, n_max), + p=pool) + slot = np.arange(n_max)[None, None, :] + coresident_idx = np.where(slot < coresident_n[None, :, None], draws, -1) + + return coresident_idx, coresident_n + @property def library_df(self): """ @@ -1954,4 +2075,6 @@ def settings(self): "binding_weight": self._binding_weight, "presplit_df": getattr(self, "_presplit_df", None), "base_growth_df": getattr(self, "_base_growth_df", None), + "congression_sets": list(self._congression_sets), + "congression_seed": self._congression_seed, } diff --git a/tests/tfscreen/tfmodel/test_library_file.py b/tests/tfscreen/tfmodel/test_library_file.py index 8c9c2bab..a61f0d93 100644 --- a/tests/tfscreen/tfmodel/test_library_file.py +++ b/tests/tfscreen/tfmodel/test_library_file.py @@ -230,6 +230,109 @@ def test_library_sized_under_batching(self, library_file): np.testing.assert_array_equal(np.array(batch.growth.bulk_fraction), full) +def _labels(orchestrator): + idx = orchestrator.growth_tm.tensor_dim_names.index("genotype") + return list(orchestrator.growth_tm.tensor_dim_labels[idx]) + + +class TestCoresidentSets: + """Fixed co-resident sets for the congression mixture (step 3.3b).""" + + def test_shapes_and_strata(self, library_file): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + g = orchestrator.data.growth + idx = np.asarray(g.coresident_idx) + n = np.asarray(g.coresident_n) + + assert idx.shape == (g.num_genotype, 16, 3) + np.testing.assert_array_equal(n, [1] * 12 + [2] * 3 + [3]) + # Set k has exactly n[k] co-residents; the rest of its slots are -1. + filled = (idx >= 0).sum(axis=-1) + np.testing.assert_array_equal(filled, np.broadcast_to(n, filled.shape)) + assert idx.max() < g.num_genotype + + def test_pool_is_bulk_share_of_genotypes_with_data(self, library_file): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + mask = np.array(orchestrator.data.growth.congression_mask) + pool = orchestrator._coresident_pool(mask) + table = orchestrator.library_df.set_index("genotype") + weights = np.array([table.loc[g, "pool_fraction"] + * table.loc[g, "bulk_fraction"] + for g in _labels(orchestrator)]) + np.testing.assert_allclose(pool, weights / weights.sum()) + + def test_draws_follow_pool(self, library_file): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file, + congression_sets=[4000]) + mask = np.array(orchestrator.data.growth.congression_mask) + pool = orchestrator._coresident_pool(mask) + idx = np.asarray(orchestrator.data.growth.coresident_idx) + counts = np.bincount(idx[idx >= 0], minlength=len(pool)) + np.testing.assert_allclose(counts / counts.sum(), pool, atol=0.01) + + def test_unknown_never_drawn(self, library_file): + growth_df = _growth_df(["wt", "A2C", "__unknown__"]) + orchestrator = ModelOrchestrator(growth_df, + _binding_df(["wt", "A2C"]), + library_file=library_file, + congression_sets=[500]) + unknown = _labels(orchestrator).index("__unknown__") + idx = np.asarray(orchestrator.data.growth.coresident_idx) + assert not np.any(idx == unknown) + + def test_legacy_pool_uniform_over_non_spiked(self): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + spiked_genotypes=["wt"]) + mask = np.array(orchestrator.data.growth.congression_mask) + pool = orchestrator._coresident_pool(mask) + labels = _labels(orchestrator) + assert pool[labels.index("wt")] == 0.0 + np.testing.assert_allclose(pool[[labels.index("A2L"), + labels.index("A2C")]], [0.5, 0.5]) + + def test_empty_pool_gives_empty_sets(self): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + spiked_genotypes=GENOTYPES) + assert np.all(np.asarray(orchestrator.data.growth.coresident_idx) == -1) + + def test_seed_reproduces_and_changes_draws(self, library_file): + def draw(seed_value): + o = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file, + congression_sets=[50, 10], + congression_seed=seed_value) + return np.asarray(o.data.growth.coresident_idx) + + np.testing.assert_array_equal(draw(3), draw(3)) + assert not np.array_equal(draw(3), draw(4)) + + def test_settings_record_sets_and_seed(self, library_file): + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file, + congression_sets=[5, 2], + congression_seed=7) + assert orchestrator.settings["congression_sets"] == [5, 2] + assert orchestrator.settings["congression_seed"] == 7 + + @pytest.mark.parametrize("bad", [[], [0, 0], [-1, 2], [1.5], "abc", None]) + def test_bad_sets_raise(self, bad): + with pytest.raises(ValueError, match="congression_sets"): + ModelOrchestrator(_growth_df(), _binding_df(), + congression_sets=bad) + + def test_library_sized_under_batching(self, library_file): + from tfscreen.tfmodel.tensors.batch import get_batch + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + full = np.asarray(orchestrator.data.growth.coresident_idx) + batch = get_batch(orchestrator.data, np.array([2, 0])) + np.testing.assert_array_equal(np.asarray(batch.growth.coresident_idx), + full) + + class TestMutualExclusion: def test_both_raises(self, library_file): @@ -301,6 +404,22 @@ def test_writes_snapshot_and_records_it(self, tmp_path, library_config_file): # One source of truth: the derived list is not also written out. assert "spiked_genotypes" not in config["components"] + def test_round_trip_reproduces_coresident_sets(self, tmp_path, + library_config_file): + out_prefix = self._configure(tmp_path, library_config_file) + with open(f"{out_prefix}_config.yaml") as f: + config = yaml.safe_load(f) + assert config["components"]["congression_sets"] == [12, 3, 1] + assert config["components"]["congression_seed"] == 0 + + orchestrator, _ = read_configuration(f"{out_prefix}_config.yaml") + direct = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=f"{out_prefix}_library.csv") + assert _labels(orchestrator) == _labels(direct) + np.testing.assert_array_equal( + np.asarray(orchestrator.data.growth.coresident_idx), + np.asarray(direct.data.growth.coresident_idx)) + def test_round_trip_reproduces_masks(self, tmp_path, library_config_file): out_prefix = self._configure(tmp_path, library_config_file) orchestrator, _ = read_configuration(f"{out_prefix}_config.yaml") diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index 5b992b1d..52722622 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -933,6 +933,8 @@ def test_model_class_properties(initialized_model_class): model._thermo_data = None model._binding_weight = 1.0 model._base_growth_df = "bg.csv" + model._congression_sets = (12, 3, 1) + model._congression_seed = 0 assert ModelOrchestrator.jax_model.fget(model) == "jm" assert ModelOrchestrator.jax_model_guide.fget(model) == "jmg" From fbba9868fe50b0f891a4fe40fa54edf61404d712 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 21:32:36 -0700 Subject: [PATCH 017/208] Keep library-sized latents whole in chunked posterior forward passes get_posteriors, get_laplace_posteriors and get_map_posteriors run the model over genotype chunks of forward_batch_size and sliced every genotype-indexed latent to the chunk first. Components that index library-sized parameters by library position (hill_geno, thermo.*, and categorical_geno) then read past the sliced arrays for every chunk after the first, and JAX clamped the index instead of raising. For any library larger than one chunk (512 by default), the deterministic sites saved for genotypes past the first chunk -- theta_growth_pred, growth_pred, and everything tfs-predict-theta/-growth derive from them -- were wrong. The forward pass now receives library-sized latents whole, as in training (components slice them with batch_idx), and slices only batch-positional latents (noise/beta) and the saved output (RunInference._batch_positional_latents, from the batch-safety check). Posterior files for libraries larger than forward_batch_size should be regenerated with tfs-sample-posterior. Verified: new test_forward_chunking.py compares posterior and MAP posterior files at forward_batch_size 512 and 2; it fails on the old code (hill_geno, categorical_geno, MAP) and passes with the fix, on HEAD alone (tests/tfscreen/tfmodel/inference, 235 passed incl. slow). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 59 +++++++++++++ .../tfmodel/inference/run_inference.py | 39 +++++++- .../inference/test_forward_chunking.py | 88 +++++++++++++++++++ 3 files changed, 184 insertions(+), 2 deletions(-) create mode 100644 tests/tfscreen/tfmodel/inference/test_forward_chunking.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b9fe692..46bce41f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -112,6 +112,46 @@ fall into two kinds: ### Changed +- **Breaking: congression is now an observable-level mixture + (`transformation: mixture`).** The old `empirical` component replaced each + bulk genotype's theta by the expected maximum over co-resident plasmids and + grew one trajectory with the genotype's own dk_geno. Averaging theta cannot + represent a mixture of growth rates, and in simulation that correction + removed almost none of the congression error once dk_geno varies + (`planning/studies/congression-estimator/`). The `mixture` component splits + each genotype's cells into a clean class and K congressed classes built from + the fixed co-resident sets: a congressed cell takes theta and TF activity + from its highest-theta plasmid (at each titrant concentration) and the mean + dk_geno of its plasmids (dilution). Every class is grown through the usual + `theta_rescale` → `calculate_growth` → `growth_transition` pipeline on a + leading class axis, and the classes are mixed as + `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`, with + `w_cong = bulk_fraction * (1 - exp(-lambda))` split over the sets by the + Poisson(lambda) probability of their co-resident count. Theta noise acts on + the genotype's own theta before the classes are built; `theta_growth_pred` + is still the genotype's own theta. + - `empirical` and `logit_norm` are removed and refused by name with a + message; configs must switch to `transformation: mixture` (fits are not + comparable). `_congression.update_thetas` stays as a plain function for + Stage 1.5 of `tfs-fit-genotypes`. + - New transformation interface: `define_model`/`guide` sample lambda only; + `cell_classes(focal, population, params, data)` returns the classes; + `NEEDS_POPULATION` replaces `NEEDS_FULL_POPULATION_THETA`. + - `GrowthData.congression_mask` is removed; purity is `bulk_fraction`. + - The `categorical_geno`/`empirical` incompatibility check is gone (fixed in + step 3.3a). + - A `mixture` model with bulk genotypes but an empty co-resident pool is + refused when built. + - `predict()` passes library-wide references and the fitted model's + co-resident sets to the genotype-subset model: dk_geno and activity are + posterior medians of their deterministic sites; theta is the theta + component evaluated at posterior-median parameters over the whole library + on the *prediction's* concentration grid (which can differ from the fit's). A raw MAP + checkpoint with a `mixture` model now raises (run `tfs-sample-posterior`) + instead of warning and predicting without a background. + - Growth tensors grow by a factor of 1 + K (K = 16 by default); use + mini-batching or a smaller `congression_sets` on large libraries. + - **Test reports and badges are no longer committed.** `reports/` and `docs/badges/` are gitignored and untracked; `run_all_tests.sh` now writes everything, badges included, under `reports/`, and stops on the first @@ -241,6 +281,25 @@ fall into two kinds: checks, for every theta component (model and guide; shuffled full batch and mini-batch), that the full-population theta is library-ordered. +- **Posterior files depended on `forward_batch_size`.** `get_posteriors`, + `get_laplace_posteriors` and `get_map_posteriors` run the model over + genotype chunks, and sliced every genotype-indexed latent to the chunk + first. Components that index library-sized parameters by library position + (`hill_geno`, `thermo.*`, and `categorical_geno`) then read past the sliced + arrays for every chunk after the first, and JAX clamped the index instead + of raising. So for any library larger than one chunk (512 genotypes by + default), the deterministic sites written for genotypes past the first + chunk (`theta_growth_pred`, `growth_pred`, and everything + `tfs-predict-theta`/`-growth` derive from them) were wrong. The forward pass + now receives library-sized latents whole, as in training, and slices only + batch-positional latents (`noise/beta`) and the saved output + (`RunInference._batch_positional_latents`). Posterior files for libraries + larger than `forward_batch_size` should be regenerated with + `tfs-sample-posterior`. + - New `tests/tfscreen/tfmodel/inference/test_forward_chunking.py` checks + that posterior and MAP posterior files are identical at + `forward_batch_size` 512 and 2. + ## [0.4.4] - 2026-09-22 A processing and bookkeeping release: two fixes in the read-counting and diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index d99f4b65..e03e47b7 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -651,6 +651,26 @@ def _concat_genotype_chunks(chunk_list, axis, total_size): slices[pos] = slice(0, total_size) return merged[tuple(slices)] + def _batch_positional_latents(self): + """ + Latent sites whose value has one entry per batch *position* rather + than per genotype (e.g. ``noise/beta``'s ``{name}_dist``). + + Every other genotype-indexed latent is sampled at library size and + sliced to the batch inside its component with ``batch_idx``, so a + forward pass over a genotype chunk must hand it the full, + library-ordered value -- exactly as training does. Slicing it to the + chunk beforehand breaks components that index their parameters by + library position (``hill_geno``, ``thermo.*``, ``categorical_geno``): + every chunk after the first reads past the sliced array, and JAX + clamps the index instead of raising. Only the batch-positional + latents found here are sliced to the chunk. + """ + if not hasattr(self, "_batch_positional_cache"): + self._batch_positional_cache = frozenset( + find_orchestrator_batch_dependent_latents(self.model)) + return self._batch_positional_cache + def _build_genotype_chunk_scanner(self, dim_map, sites_to_save): """ Build a JIT-compiled forward-pass function for a single genotype chunk. @@ -683,17 +703,25 @@ def _build_genotype_chunk_scanner(self, dim_map, sites_to_save): model_fn = self.model.jax_model get_batch = self.model.get_batch priors = self.model.priors + batch_positional = self._batch_positional_latents() @jax.jit def chunk_fn(data, latents, key, batch_indices): + # Output: every genotype-indexed site, sliced to this chunk. batch_latents = { k: jnp.take(v, batch_indices, axis=dim_map[k]) if k in dim_map else v for k, v in latents.items() } + # Model input: library-sized latents stay whole (components slice + # them with batch_idx); only batch-positional ones are sliced. + model_latents = { + k: batch_latents[k] if k in batch_positional else v + for k, v in latents.items() + } batch_data = get_batch(data, batch_indices) key, subkey = jax.random.split(key) - forward_sampler = Predictive(model_fn, posterior_samples=batch_latents) + forward_sampler = Predictive(model_fn, posterior_samples=model_latents) batch_pred = forward_sampler(subkey, priors=priors, data=batch_data) # Predictions take precedence over latents of the same name. @@ -1316,10 +1344,17 @@ def get_map_posteriors(self, if k in dim_map else v for k, v in latent_samples.items() } + # Library-sized latents stay whole for the model (see + # _batch_positional_latents); batch_latents is only the output. + batch_positional = self._batch_positional_latents() + model_latents = { + k: batch_latents[k] if k in batch_positional else v + for k, v in latent_samples.items() + } batch_data = self.model.get_batch(data_on_gpu, batch_indices) forward_sampler = Predictive(self.model.jax_model, - posterior_samples=batch_latents) + posterior_samples=model_latents) pred_key = self.get_key() batch_pred = forward_sampler(pred_key, priors=self.model.priors, diff --git a/tests/tfscreen/tfmodel/inference/test_forward_chunking.py b/tests/tfscreen/tfmodel/inference/test_forward_chunking.py new file mode 100644 index 00000000..e6cfe6da --- /dev/null +++ b/tests/tfscreen/tfmodel/inference/test_forward_chunking.py @@ -0,0 +1,88 @@ +""" +A posterior file must not depend on how the forward pass is chunked. + +get_posteriors / get_map_posteriors run the model over genotype chunks of +``forward_batch_size``. Library-sized latents have to reach the model whole +(components slice them with ``batch_idx``); slicing them to the chunk first +made hill_geno / thermo / categorical_geno read past the sliced arrays for +every chunk after the first (JAX clamps the index), silently corrupting the +deterministic sites of any library larger than one chunk. +""" + +import os +import tempfile + +import h5py +import numpy as np +import pytest + +from tfscreen.tfmodel.inference.run_inference import RunInference +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") + +_SITES = ("theta_growth_pred", "growth_pred", "dk_geno", "activity") + + +def _read(path): + with h5py.File(path) as f: + return {k: f[k][()] for k in _SITES if k in f} + + +def _fit(orchestrator, guide_type="component"): + inference = RunInference(model=orchestrator, seed=1) + svi = inference.setup_svi(adam_step_size=1e-3, guide_type=guide_type) + state, params, _ = inference.run_optimization( + svi=svi, max_num_epochs=1, + out_prefix=os.path.join(tempfile.mkdtemp(), "fit")) + return svi, state, params + + +def _assert_same(a, b): + assert set(a) == set(b) and a + for k in a: + np.testing.assert_allclose(a[k], b[k], rtol=1e-5, atol=1e-6, + err_msg=f"site '{k}'") + + +@pytest.mark.slow +@pytest.mark.parametrize("theta", ["hill_geno", "categorical_geno", + "thermo.O2_C4_K3_U0_a.PK"]) +def test_get_posteriors_independent_of_chunk_size(theta): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, theta=theta) + assert orchestrator.data.num_genotype > 2 + svi, state, _ = _fit(orchestrator) + + out = {} + for forward_batch_size in (512, 2): + prefix = os.path.join(tempfile.mkdtemp(), "p") + RunInference(model=orchestrator, seed=7).get_posteriors( + svi=svi, svi_state=state, out_prefix=prefix, + num_posterior_samples=3, forward_batch_size=forward_batch_size) + out[forward_batch_size] = _read(f"{prefix}_posterior.h5") + + _assert_same(out[512], out[2]) + + +@pytest.mark.slow +def test_get_map_posteriors_independent_of_chunk_size(): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + theta="hill_geno") + _, _, params = _fit(orchestrator, guide_type="delta") + + out = {} + for forward_batch_size in (512, 2): + prefix = os.path.join(tempfile.mkdtemp(), "m") + RunInference(model=orchestrator, seed=7).get_map_posteriors( + params, out_prefix=prefix, forward_batch_size=forward_batch_size) + out[forward_batch_size] = _read(f"{prefix}_posterior.h5") + + _assert_same(out[512], out[2]) From 2b504928f1b1f69bb5ded89ba112428658c52c31 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 23 Sep 2026 21:33:38 -0700 Subject: [PATCH 018/208] Mix clean and congressed cells at the observable level (step 3.3c) The empirical transformation replaced each bulk genotype's theta by the expected maximum over co-resident plasmids and grew one trajectory with the genotype's own dk_geno. Averaging theta cannot represent a mixture of growth rates; in simulation the correction removed almost none of the congression error once dk_geno varies (planning/studies/congression-estimator/). New transformation 'mixture': each genotype's cells split into a clean class and K congressed classes built from the fixed co-resident sets (step 3.3b). A congressed cell takes theta and activity from its highest-theta plasmid per titrant concentration and the mean dk_geno of its plasmids (dilution), matching the simulator. Classes ride a leading axis through theta_rescale -> calculate_growth -> growth_transition, and mix as ln_cfu = ln_cfu0 + logsumexp(log w + G), w_cong = bulk_fraction (1 - exp(-lambda)) split over sets by the Poisson probability of their co-resident count (log space; lambda gradient finite for spike-only genotypes). Theta noise acts on the genotype's own theta; theta_growth_pred is unchanged. Breaking: - 'empirical' and 'logit_norm' are removed and refused by name with a message; configs must switch to 'mixture' (fits not comparable). _congression.update_thetas stays for Stage 1.5 only. - Transformation interface: define_model/guide sample lambda; cell_classes(focal, population, params, data); NEEDS_POPULATION. - GrowthData.congression_mask removed (purity is bulk_fraction); the categorical_geno/empirical check is gone (fixed in 3.3a). - A mixture model with bulk genotypes and an empty co-resident pool is refused. - predict() passes library-wide references (dk_geno/activity: posterior medians; theta: the theta component at posterior-median parameters on the prediction's concentration grid) and the fit's co-resident sets to the subset model; a raw MAP checkpoint with a mixture model now raises (run tfs-sample-posterior). - Growth tensors grow by 1 + K (K = 16 default); use mini-batching. Verified: new test_mixture.py (priors; weights sum to 1 and match Poisson strata; finite lambda gradient; cell_classes vs an independent loop implementation) and test_mixture_model.py (every growth_transition and condition_growth broadcasts over classes; lambda -> 0 and f = 0 reduce to single; theta_growth_pred unchanged; posteriors independent of chunk size); prediction tests (subset = full rows, grid-following theta, MAP refusal); full tests/tfscreen passes with --runslow (4768); all smoke tests pass (39). Co-authored-by: Claude Opus 5.5 --- CLAUDE.md | 9 +- docs/source/analysis.rst | 14 +- docs/source/model-inputs.rst | 6 +- examples/tfmodel/grid.yaml | 6 +- planning/congression-physics-plan.md | 55 +++- .../simulate/transformation_lam_output.py | 6 +- src/tfscreen/tfmodel/analysis/prediction.py | 191 ++++++++---- src/tfscreen/tfmodel/data_class.py | 14 +- .../generative/components/theta/_simple.py | 4 +- .../components/transformation/_classes.py | 43 +++ .../components/transformation/_congression.py | 293 +----------------- .../components/transformation/empirical.py | 56 ---- .../components/transformation/logit_norm.py | 72 ----- .../components/transformation/mixture.py | 247 +++++++++++++++ .../components/transformation/single.py | 62 ++-- src/tfscreen/tfmodel/generative/model.py | 162 +++++----- src/tfscreen/tfmodel/generative/registry.py | 6 +- src/tfscreen/tfmodel/model_orchestrator.py | 134 ++++---- .../tfmodel/scripts/configure_model_cli.py | 7 +- .../tfmodel/scripts/prefit_calibration_cli.py | 2 +- src/tfscreen/tfmodel/tensors/batch.py | 1 - .../fixtures/generate_reference_posteriors.py | 2 +- tests/smoke-tests/test_model_smoke.py | 6 +- tests/smoke-tests/test_posteriors_smoke.py | 6 +- tests/smoke-tests/test_prediction_smoke.py | 14 +- .../test_run_growth_analysis_smoke.py | 6 +- .../test_extract_parameters_congression.py | 28 +- .../analysis/test_extraction_robustness.py | 8 +- .../tfmodel/analysis/test_prediction.py | 251 +++++++++------ .../theta/test_full_population_contract.py | 21 +- .../transformation/test__congression.py | 150 +-------- .../transformation/test_empirical.py | 75 ----- .../transformation/test_logit_norm.py | 73 ----- .../components/transformation/test_mixture.py | 240 ++++++++++++++ .../components/transformation/test_single.py | 59 ++-- .../tfmodel/generative/test_mixture_model.py | 166 ++++++++++ .../tfscreen/tfmodel/generative/test_model.py | 148 +++++---- .../tfmodel/generative/test_model_math.py | 9 +- .../tfmodel/generative/test_registry.py | 13 +- .../tfmodel/inference/test_batch_safety.py | 6 +- .../tfmodel/scripts/test_configure_and_run.py | 10 +- .../scripts/test_prefit_calibration_cli.py | 16 +- tests/tfscreen/tfmodel/tensors/test_batch.py | 4 +- .../tfmodel/tensors/test_batch_consistency.py | 3 - .../tfmodel/tensors/test_batch_fix.py | 4 +- tests/tfscreen/tfmodel/test_data_class.py | 1 - tests/tfscreen/tfmodel/test_data_class_jit.py | 1 - tests/tfscreen/tfmodel/test_library_file.py | 23 +- .../tfmodel/test_model_orchestrator.py | 112 +++---- .../tfscreen/tfmodel/test_spiked_genotypes.py | 6 +- 50 files changed, 1503 insertions(+), 1348 deletions(-) create mode 100644 src/tfscreen/tfmodel/generative/components/transformation/_classes.py delete mode 100644 src/tfscreen/tfmodel/generative/components/transformation/empirical.py delete mode 100644 src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py create mode 100644 src/tfscreen/tfmodel/generative/components/transformation/mixture.py delete mode 100644 tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py delete mode 100644 tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py create mode 100644 tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py create mode 100644 tests/tfscreen/tfmodel/generative/test_mixture_model.py diff --git a/CLAUDE.md b/CLAUDE.md index cb57159f..09ad1716 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -111,6 +111,7 @@ The hierarchical Bayesian inference engine. Key files: - **`generative/model.py`** — Numpyro probabilistic model definition. The generative model is: `ln_cfu = ln_cfu0 + (k_pre + dk_geno + m_pre·A·θ)·t_pre + (k_sel + dk_geno + m_sel·A·θ)·t_sel` where θ = operator occupancy, A = per-genotype TF activity, dk_geno = pleiotropic growth effect. + With `transformation: mixture` each genotype's cells are split into classes (clean, plus K congressed classes built from fixed co-resident sets) with cell-level θ/A/dk_geno; every class is grown through the same pipeline on a leading class axis and the classes are mixed as `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`. The transformation component's `cell_classes(focal, population, params, data)` builds the classes (`single`: one class); `NEEDS_POPULATION` makes `jax_model` supply library-ordered θ/activity/dk_geno (`return_population=True`, or `GrowthData.external_*_population` in prediction). - **`model_orchestrator.py`** — `ModelOrchestrator`: top-level class orchestrating data loading, inference, and prediction. @@ -124,7 +125,7 @@ The hierarchical Bayesian inference engine. Key files: - `activity/`: `fixed`, `hierarchical_geno`, `hierarchical_mut`, `horseshoe_geno`, `horseshoe_mut` - `growth/` (registry key `condition_growth`): `linear`, `power`, `saturation`. Their per-condition prior loc/scale fields accept a scalar (broadcast to all conditions) **or** a per-condition array; the pre-fit calibration writes per-condition arrays to pin the baselines (see **Per-condition growth priors** below). Each declares `get_scale_bounds()`. - `growth_transition/`: `instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop` - - `transformation/`: `empirical`, `logit_norm`, `single` + - `transformation/`: `single`, `mixture` (`empirical`/`logit_norm` were removed; `ModelOrchestrator` refuses them by name with a message, `_RETIRED_TRANSFORMATIONS`). `_congression.update_thetas` (the old E[max] θ operator) is kept only for Stage 1.5 of `tfs-fit-genotypes` - `theta/`: `categorical_geno`, `hill_geno`, `hill_mut`; thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) - `theta_rescale/`: `passthrough`, `logit` - `dk_geno/`: `fixed`, `hierarchical_geno`, `pinned` @@ -184,7 +185,7 @@ Flow: `genetics.library_composition_table(library_config)` (`genetics/library_de A library-derived spiked genotype that has no growth data is **reported, not fatal** (spikes can drop out of a real dataset), unlike the hand-supplied `spiked_genotypes` list, which still raises. -`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) but is **not yet read by the model** — it is the `f_g` of the observable-level congression mixture (step 3.3 of `planning/congression-physics-plan.md`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the current backend still applies the binary `congression_mask` for the congression correction. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the (upcoming) congression mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. +`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) and is the `f_g` of the `mixture` transformation: a genotype's congressed fraction is `f_g (1 - exp(-lambda))`. Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the old binary `congression_mask` is gone. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. ### Pre-fit model accounting (`tfmodel/model_stats.py`) @@ -232,7 +233,7 @@ The optional `binding_data` YAML block configures calibration genotypes for whic - `choose_by: stratified|random` — assign diverse (greedy-maximin) / random prior-predictive theta curves to `num` spiked genotypes (default all); `wt` keeps its natural reference. Their theta at *growth* concentrations is injected via `theta_gc_override` so growth matches binding. **`library_binding`** — in-library controls drawn from the **bulk** (congression-affected growth); **pool = library genotypes NOT in `spiked_seqs`**. Omit to disable. -- These are regime-matched to the bulk: on the fit side they are simply extra `binding_df` rows and, because they are *not* in `--spiked`, they get `congression_mask=True` automatically. No fit-side change. +- These are regime-matched to the bulk: on the fit side they are simply extra `binding_df` rows and, because they are not spiked, their growth gets the bulk `bulk_fraction` automatically (binding itself is never congressed). No fit-side change. - **Pre/post-sim split** (`simulate/library_binding_data.py::generate_library_binding_df`): the `file` path injects the genotypes' phenotype *pre-sim* (in `library_prediction`, via the same override machinery), but the binding *measurement* — and, for `stratified`/`random`, the *selection* — happen **post-growth-sim** so selection is restricted to genotypes that actually survived with growth data (guaranteeing `num` usable anchors). `file`-specified genotypes that don't survive are **warned** and dropped. `simulate_cli.py` writes the selected set to `tfs_sim_library_binding.csv`. **Validation** (`library_prediction._validate_binding_config`, fail-fast): `spiked_binding` file genotypes must be ⊆ `spiked_seqs`; `library_binding` file genotypes must be disjoint from `spiked_seqs`; `num` + a file is an error; a file requires a Hill theta component; `spiked_binding.num` ∈ `[1, num_spiked]`; `library_binding` stratified/random requires `num`. @@ -309,7 +310,7 @@ An alternative to prior-predictive phenotype sampling: instead of drawing theta - **Stage 1** (`fit_phenotypes.py`): per-genotype MLE of the growth model on a real `ln_cfu` DataFrame (derives `ln_cfu_std` from the processed `ln_cfu_var` via `get_scaled_cfu`, like `model_orchestrator`), calibration (`growth_k`/`growth_m` per `condition_rep`) frozen. Fits `(dk_geno, theta_low, theta_high, log_hill_K, hill_n)` in transformed coords (logit theta bounds, log n) so `run_least_squares` returns covariance in the space Stage 2 needs. Per-genotype independent (no cross-genotype coupling); weak `dk_geno` Tikhonov prior; ±16 logit clamp. Returns `GenotypeFit(estimate, covariance)` per genotype. The fits are embarrassingly parallel — `num_workers` (`-1` = `cpu_count-1`) runs them over a `ProcessPoolExecutor`; the parallel path strips the genotype `Categorical` first (it carries all categories on every group → O(N²) pickling). Worker startup pays a ~2s JAX import, so parallelism is a wash for tiny/fast runs and near-linear for large real libraries. `_hill_theta` is numerically identical to `hill_geno.run_model` and `binding_params._hill_theta` (verified — same `_ZERO_CONC_SENTINEL`). - **Stage 2** (`population.py`): measurement-error EM (`z_i~N(mu,Σ)`, `y_i~N(z_i,S_i)`) that **deconvolves estimation noise** (`Cov(y)=Σ+mean(S_i)`), so it recovers a narrower population than a naive KDE on the point estimates. `fit_population()` → `PopulationModel` (single MV-Normal in transformed space; `wt_ref` field holds wt's actual Stage-1 fit; `.sample(n)` → natural-space DataFrame; `.save()`/`.load()`). -- **Stage 1.5** (`congression.py`, optional; between Stage 1 and Stage 2, gated by `--congression_lambda`): de-attenuates the **bulk** genotypes' theta curves for co-transformation. Reuses the inference's own θ-level operator `transformation._congression.update_thetas` (the `E[max(x,M)]` **dominant-max occupancy** map — the tightest-bound operator sets effective θ, so `E[max]` only, never the min variant — with an empirical background CDF). `correct_theta_matrix` is the fixed point: `θ_true ← θ_obs`; iterate `θ_true += gain·(θ_obs − update_thetas(θ_true; background=θ_true))` per-concentration until converged (the background *is* the corrected population, hence the iteration). `deattenuate_congression` evaluates each bulk genotype's Stage-1 Hill at the growth `titrant_conc` grid, corrects, and refits Hill (dk_geno and the Stage-1 covariance are left untouched — a deliberate bias-only correction; Stage 2's estimation-noise deconvolution still runs after). λ passes straight through **unconverted**: a focal barcode is size-biased into its cell, so co-residents are Poisson(λ) at the *same* zero-truncated `transformation_poisson_lambda` (`_sim_transform` uses `zero_truncated_poisson` + i.i.d. plasmid draws). Spiked genotypes are congression-free → excluded from correction and the background CDF, and pass through unchanged. This is the θ-level analogue of the simulator's cell-level congression (`congression_theta_rule: max`; the simulator also dilutes dk_geno across a cell's plasmids, which Stage 1.5 does not model); spiked-only vs bulk distribution is the external check. +- **Stage 1.5** (`congression.py`, optional; between Stage 1 and Stage 2, gated by `--congression_lambda`): de-attenuates the **bulk** genotypes' theta curves for co-transformation. Reuses the old inference θ-level operator `transformation._congression.update_thetas` (no longer a registered component; the fit now uses the `mixture` transformation) (the `E[max(x,M)]` **dominant-max occupancy** map — the tightest-bound operator sets effective θ, so `E[max]` only, never the min variant — with an empirical background CDF). `correct_theta_matrix` is the fixed point: `θ_true ← θ_obs`; iterate `θ_true += gain·(θ_obs − update_thetas(θ_true; background=θ_true))` per-concentration until converged (the background *is* the corrected population, hence the iteration). `deattenuate_congression` evaluates each bulk genotype's Stage-1 Hill at the growth `titrant_conc` grid, corrects, and refits Hill (dk_geno and the Stage-1 covariance are left untouched — a deliberate bias-only correction; Stage 2's estimation-noise deconvolution still runs after). λ passes straight through **unconverted**: a focal barcode is size-biased into its cell, so co-residents are Poisson(λ) at the *same* zero-truncated `transformation_poisson_lambda` (`_sim_transform` uses `zero_truncated_poisson` + i.i.d. plasmid draws). Spiked genotypes are congression-free → excluded from correction and the background CDF, and pass through unchanged. This is the θ-level analogue of the simulator's cell-level congression (`congression_theta_rule: max`; the simulator also dilutes dk_geno across a cell's plasmids, which Stage 1.5 does not model); spiked-only vs bulk distribution is the external check. - **Stage 3** (`resample.py`): `resample_phenotypes` draws one i.i.d. phenotype per genotype (wt pinned to `dk_geno=0` + `wt_ref` Hill); `make_empirical_overrides` reuses `build_theta_gc_override_hill_geno` → `(theta_gc_override, theta_params_override, dk_geno_override)`. `thermo_to_growth` gained a `dk_geno_override` param (the one growth-path change; `theta_params_override` only patches θ columns). `build_empirical_binding_theta` rebuilds spiked `binding_theta_df` from resampled params (selection from the `binding_data` config; θ from resampled Hill, not `sample_theta_stratified`). Integration: `library_prediction` gains a `phenotype_source: empirical` branch (needs an `empirical: {phenotype_model: }` block pointing at the single self-contained `_phenotype_model.json`; `_resolve_phenotype_model_path` accepts that path with/without `.json` or the bare ``, and the fit prints the absolute path — use it so no file-copying is needed) that resamples all genotypes, injects the overrides, forces `theta_component=hill_geno` (warns + ignores any other value; the resampled phenotypes are per-genotype Hill curves and the discarded prior draw must match the `parameters_df` schema — this also avoids running/overflowing an e.g. `hill_mut` draw), drops the ignored `theta_priors`/`theta_sim_priors`, and forces `activity=fixed/1`. `phenotype_source`/`empirical` are in `selection_experiment.SIMULATE_KNOWN_KEYS`. Resampled ground truth flows into `parameters_df`/`genotype_theta_df` automatically (no new return value); `library_binding` regenerates for free (reads `parameters_df`). `tfs-build-empirical` (`simulate/scripts/build_empirical_cli.py`) is a **one-command orchestrator**: given the experimental inputs (`growth_file` and `seed` positional; `--binding_file` required; optional `--spiked_file`/`--base_growth_file`/`--thermo_data`/`--congression_lambda`/`--num_workers`) it internally calls `configure_model` (linear + hill_geno defaults — no model choices exposed, since here they'd only be wrong) then `run_prefit_calibration` (MAP-calibrates per-condition k/m), then Stages 1-2 (plus optional Stage 1.5 congression de-attenuation when `--congression_lambda` is given), saving the deliverable `_phenotype_model.json` (one self-contained, human-readable file = the generating distribution; `PopulationModel.save`/`.load`) + the diagnostic `_stage1_fits.csv`, plus the `_configure_*`/`_prefit_*` intermediates. The configure/prefit imports are lazy (the heavy JAX stack loads only on this path). The MAP prefit is the slow step, so `--calibration_file` skips configure+prefit and reuses a calibration for fast Stage-1/2 iteration — either a prefit **priors CSV** (read via `fit_phenotypes.read_calibration`, which pivots the `growth.condition_growth.k_loc`/`growth.condition_growth.m_loc` per-`condition_rep` rows — prefit writes these via `_csv_row_name` = `growth.{component}.{field}` — to wide k/m) or a wide `(condition_rep, growth_k, growth_m)` CSV. This **complements** the fully-synthetic prior path (the *accuracy* benchmark) as a *realism* benchmark. diff --git a/docs/source/analysis.rst b/docs/source/analysis.rst index 1d8b32e4..664f93e0 100644 --- a/docs/source/analysis.rst +++ b/docs/source/analysis.rst @@ -363,12 +363,18 @@ concentration. Transformation Correction (``--transformation_model``) ------------------------------------------------------- -Corrects for congression (multiple plasmids entering one cell during +Models congression (multiple plasmids entering one cell during transformation). -* **empirical** (default) — empirical correction curve -* **logit_norm** — logit-normal correction -* **single** — no correction (assumes exactly one plasmid per cell) +* **single** (default) — no congression (assumes exactly one plasmid per cell) +* **mixture** — each genotype's cells are a mixture of clean cells and + congressed cells carrying co-resident plasmids; each class has its own + cell-level theta, activity and ``dk_geno``, and the classes are mixed at + the level of ``exp(ln_cfu)``. Uses the library composition table's + ``bulk_fraction`` and fixed co-resident sets drawn from the bulk library. + +``empirical`` and ``logit_norm`` were removed; a config that names them is +refused with a message. Theta Rescale (``--theta_rescale_model``) ------------------------------------------ diff --git a/docs/source/model-inputs.rst b/docs/source/model-inputs.rst index f278ff6d..e981801c 100644 --- a/docs/source/model-inputs.rst +++ b/docs/source/model-inputs.rst @@ -217,7 +217,7 @@ used to moment-match a LogNormal prior for the transformation model's lambda parameter, replacing the manual step of hand-editing the priors and guesses CSVs with rescaled log-space values. See :ref:`model-components`'s Transformation Correction section for what the -``empirical``/``logit_norm``/``single`` models each do with it. +``mixture``/``single`` models each do with it. **Scale** @@ -227,11 +227,11 @@ congression-rate experiment — not a per-genotype or per-row dataset. **Format** Passed directly as two floats via ``--transformation_lambda``, required -when ``--transformation_model`` is ``empirical`` or ``logit_norm``, and +when ``--transformation_model`` is ``mixture``, and forbidden (must be omitted) when it is ``single``: .. code-block:: bash tfs-configure-model binding.csv --growth_df growth.csv \ - --transformation_model empirical \ + --transformation_model mixture \ --transformation_lambda 0.36 0.05 diff --git a/examples/tfmodel/grid.yaml b/examples/tfmodel/grid.yaml index 21775e41..4d56fcc6 100644 --- a/examples/tfmodel/grid.yaml +++ b/examples/tfmodel/grid.yaml @@ -43,10 +43,10 @@ configure_model: variants: - activity: horseshoe_geno dk_geno: hierarchical_geno - transformation: empirical + transformation: mixture # (mean, std) of the experimentally measured congression lambda, in - # linear space -- required whenever transformation is 'empirical' - # or 'logit_norm' (transformation and transformation_lambda always travel + # linear space -- required whenever transformation is 'mixture' + # (transformation and transformation_lambda always travel # together, hence the joint variant here). transformation_lambda: [0.3572, 0.13] theta_rescale: passthrough diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 02bda8e1..fdbf295e 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -467,13 +467,54 @@ checked with `tfs-summarize-calibration`. `__unknown__` excluded; legacy path uniform over non-spiked (user, 2026-09-23). An empty pool leaves every slot -1; 3.3c must refuse a congression model with `bulk_fraction > 0` and an empty pool. - - [ ] **3.3c Mixture.** Class axis ahead of the 7-D growth layout; per-class - theta rescale, `calculate_growth`, `growth_transition`; logsumexp mix - with `log w`. New transformation-component interface returning classes - `(theta, activity, dk, log w)`. `single` = one class of weight 1 and must - reproduce today's `single` fits exactly. Congressed-class estimator from - 3.0; checked against brute-force MC on toy data. Retire `logit_norm`. - - [ ] **3.4 Other consumers.** `analysis/prediction.py`, lambda extraction + - [x] **3.3c Mixture.** Done 2026-09-23. Code plan and decisions agreed 2026-09-23 (user): + - *Transformation interface.* `define_model`/`guide` sample lambda only + (no `anchors`). New `cell_classes(focal, population, params, data)` + returns `(theta, activity, dk, log_w)` with a leading class axis. + `NEEDS_POPULATION` replaces `NEEDS_FULL_POPULATION_THETA`. `single`: + one class, `log_w = 0`, identical to today. The mixture component is + named **`mixture`**; `transformation: empirical` is refused with a + message explaining the change, so old configs do not silently switch + physics. `logit_norm` is removed. `_congression.update_thetas` stays as + a plain function for Stage 1.5 until 3.4. + - *`model.py`.* theta -> noise on the genotype's own theta -> population + theta/dk/activity (external if supplied, else the full-population + `calc_theta` and `return_population=True`) -> gather + `coresident_idx[batch_idx]` -> classes (max theta and its activity per + titrant point; dilution dk; -1 slots masked) on a class axis ahead of + `(rep, time, cp, cs, tn, tc, batch)` -> per class `theta_rescale`, + `calculate_growth`, `growth_transition` (each called once; they + broadcast) -> `ln_cfu_pred = ln_cfu0 + logsumexp(log_w + G, 0) + + delta_sample`. `theta_growth_pred` stays the genotype's own + uncorrected theta. The guide skips class construction. + - *Weights.* `w_cong = f_g (1 - exp(-lambda))`; `log w_clean = + log1p(-w_cong)`; `log w_k = log f_g + log(1 - exp(-lambda)) + log P(N + = n_k | N in strata; lambda) - log K_{n_k}` (strata renormalized over + the counts that have sets), so the lambda gradient stays finite for + `f_g = 0`. + - *Refusals.* A `mixture` model with some `bulk_fraction > 0` and an + empty co-resident pool is refused at build time. The + `categorical_geno`/`empirical` incompatibility check is deleted (fixed + in 3.3a). + - *`congression_mask` is removed* from `GrowthData`, `batch.py`, the + orchestrator and tests. + - *Prediction.* `predict()` passes full-library + `external_{theta,dk,activity}_population` (dk/activity: posterior + medians of their deterministic sites; theta: the theta component at + posterior-median parameters, evaluated on the prediction's + concentration grid) and the subset's rows of + the original `coresident_idx`. A raw MAP checkpoint (no stored + deterministic sites) with a `mixture` model raises, pointing to + `tfs-sample-posterior`. + - *Cost.* Growth tensors grow by (1 + K); default K stays 16 + (`[12, 3, 1]`). Main runs mini-batch. A memory-flat `lax.scan` over + classes would need growth_transition components split into sample and + compute; deferred unless memory bites. + - *Tests.* `single` regression; mixture vs an independent numpy + implementation; lambda -> 0 and `f_g = 0` reduce to `single`; finite + gradients; registry-wide batch shape/order checks; subset prediction + equals full prediction rows; refusals; smoke tests. + - [ ] **3.4 Other consumers.** Lambda extraction (`simulate/transformation_lam_output.py`), `genotype_fit/congression.py` (Stage 1.5 of `tfs-fit-genotypes` / `tfs-build-empirical`), and `tfs-summarize-calibration` strata by `bulk_fraction` instead of diff --git a/src/tfscreen/simulate/transformation_lam_output.py b/src/tfscreen/simulate/transformation_lam_output.py index 01e05b0a..e8c9c4d9 100644 --- a/src/tfscreen/simulate/transformation_lam_output.py +++ b/src/tfscreen/simulate/transformation_lam_output.py @@ -4,9 +4,9 @@ ``transformation_poisson_lambda`` is a top-level simulate-config scalar (number of plasmids/cell during transformation, drawn from a zero-truncated Poisson; see ``simulate.selection_experiment``). It has a fit-side analog: -the ``transformation`` component category's ``empirical``/``logit_norm`` -variants both sample a global congression rate (see -``generative/components/transformation/_congression.py``) and extract it as +the ``transformation`` component category's ``mixture`` variant samples a +global congression rate (see +``generative/components/transformation/mixture.py``) and extracts it as ``lam`` (see those modules' ``get_extract_specs``, which writes ``*_params_lam.csv``). This mirrors ``base_growth_data.generate_k_ref_df``: a single global scalar, not genotype- or condition-indexed, echoed to its diff --git a/src/tfscreen/tfmodel/analysis/prediction.py b/src/tfscreen/tfmodel/analysis/prediction.py index 3e5d0659..bb1baa72 100644 --- a/src/tfscreen/tfmodel/analysis/prediction.py +++ b/src/tfscreen/tfmodel/analysis/prediction.py @@ -1,13 +1,12 @@ import pandas as pd import numpy as np import itertools -import warnings from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator from tfscreen.tfmodel.inference.posteriors import load_posteriors, get_posterior_samples from tfscreen.tfmodel.tensors.batch import get_batch as _get_batch import jax from jax import numpy as jnp -from numpyro.handlers import seed, trace +from numpyro.handlers import seed, substitute, trace from numpyro.infer import Predictive def _align_site_to_tm_dims(spatial_shape, tm_sizes): @@ -335,65 +334,121 @@ def _convert_map_params(map_params, model_trace): return constrained -def _build_population_theta_reference(param_posteriors, max_samples=20): +# Deterministic sites holding every genotype's library-ordered value, and the +# GrowthData field each one fills for the congression mixture. +_POPULATION_SITES = (("dk_geno", "external_dk_population"), + ("activity", "external_activity_population")) + + +def _missing_site_error(site): + return ValueError( + f"The mixture transformation needs every genotype's '{site}' from the " + f"posterior to build congressed cells, but '{site}' is not in " + f"param_posteriors. Raw MAP checkpoints store only guide parameters; " + f"run tfs-sample-posterior to write a full posterior file first." + ) + + +def _posterior_median(param_posteriors, site, max_samples): + """Median over the first ``max_samples`` posterior draws of ``site``.""" + try: + values = get_posterior_samples(param_posteriors, site) + except KeyError: + raise _missing_site_error(site) from None + n_use = min(max_samples, values.shape[0]) + return np.median(np.asarray(values[:n_use]), axis=0) + + +def _population_theta(orchestrator, param_posteriors, pred_growth, + max_samples): + """ + Every fitted genotype's theta at the prediction's titrant concentrations. + + The theta component's posterior parameters (median over draws) are + evaluated over the whole fitted library on the prediction's + concentration grid, which can differ from the fit's (so the stored + ``theta_growth_pred`` cannot be used directly). + """ + sample_theta, calc_theta, _ = orchestrator.main_control_kwargs["theta"] + num_genotype = orchestrator.data.growth.num_genotype + full = jnp.arange(num_genotype) + growth = orchestrator.get_batch(orchestrator.data, full).growth + + theta_trace = trace(seed(sample_theta, rng_seed=0)).get_trace( + "theta", growth, orchestrator.priors.theta) + latents = { + name: jnp.asarray(_posterior_median(param_posteriors, name, + max_samples)) + for name, site in theta_trace.items() + if site["type"] == "sample" and not site.get("is_observed", False) + } + theta_param = substitute(seed(sample_theta, rng_seed=0), data=latents)( + "theta", growth, orchestrator.priors.theta) + + view = growth.replace(batch_idx=full, + geno_theta_idx=full, + titrant_conc=pred_growth.titrant_conc, + log_titrant_conc=pred_growth.log_titrant_conc, + num_titrant_conc=pred_growth.num_titrant_conc) + return calc_theta(theta_param, view) + + +def _build_population_references(orchestrator, param_posteriors, pred_growth, + max_samples=20): """ - Build a single population-wide theta_growth reference for transformation - components whose congression correction needs one (see - transformation/_congression.py and generative/model.py). - - Reads the ``theta_growth_pred`` deterministic site, which get_posteriors() - always stores at full genotype-population size regardless of any - genotype batching used during training or posterior sampling (unlike a - fresh forward pass through a genotype-subsetted orchestrator, which only - ever sees the requested subset -- see copy_orchestrator()). - - Reduces across a small number of posterior draws (median) rather than - threading the full posterior sample axis through this call: the - population reference only needs to characterize the theta *distribution* - across genotypes for the congression correction, not track each specific - joint posterior draw, and this keeps the one-time cost independent of - both ``num_marginal_samples`` and the number of stored posterior draws. + Library-wide theta, dk_geno and activity references for the congression + mixture (transformation components with ``NEEDS_POPULATION``). + + A prediction runs a model rebuilt for the requested genotypes only (see + copy_orchestrator), whose latents cover just that subset. The mixture's + congressed cells, though, look their co-resident plasmids up across the + whole fitted library, so the library-wide values come from the posterior: + theta from the theta component's parameters, evaluated at the + prediction's concentrations (``_population_theta``); dk_geno and activity + from their deterministic sites, which get_posteriors() stores for every + genotype in library order. + + Each reference comes from the median over up to ``max_samples`` + posterior draws, not per-draw values: the background only needs to + characterize the co-residents, and this keeps the cost independent of the + number of draws. Parameters ---------- + orchestrator : ModelOrchestrator + The fitted model. param_posteriors : dict-like - Full (not genotype-subsetted) posterior samples, as returned by - load_posteriors(). + Full (not genotype-subsetted) posterior samples. + pred_growth : GrowthData + The prediction's growth data (supplies the concentration grid). max_samples : int, optional - Maximum number of posterior draws to read when computing the - median. Default 20. + Maximum number of posterior draws to read. Default 20. Returns ------- - jnp.ndarray or None - Shape matches theta_growth_pred's stored shape with the leading - sample axis reduced away (typically (num_titrant_name, - num_titrant_conc, num_genotype), possibly with extra broadcast dims - from scatter_theta=1). None if theta_growth_pred is not present in - param_posteriors (e.g. a raw MAP checkpoint, which stores guide - parameters rather than deterministic site values). + dict + Maps each ``external_*_population`` GrowthData field to its array. + + Raises + ------ + ValueError + If a site is missing (a raw MAP checkpoint stores guide parameters, + not deterministic sites) or is not library-sized. """ - try: - theta_growth_pred = get_posterior_samples(param_posteriors, "theta_growth_pred") - except KeyError: - warnings.warn( - "The configured transformation component needs a population-wide " - "theta reference for its congression correction, but " - "'theta_growth_pred' was not found in param_posteriors (expected " - "for raw MAP checkpoints, which only store guide parameters, not " - "deterministic site values). Falling back to no population " - "reference; predictions may reproduce the population-CDF bug this " - "mechanism exists to avoid. Run tfs-sample-posterior to generate " - "a full posterior file instead.", - UserWarning, - stacklevel=2, - ) - return None + num_genotype = orchestrator.data.growth.num_genotype + references = {} + for site, field_name in _POPULATION_SITES: + values = _posterior_median(param_posteriors, site, max_samples) + if values.shape[-1] != num_genotype: + raise ValueError( + f"Posterior '{site}' has {values.shape[-1]} genotypes on its " + f"last axis; expected the whole library ({num_genotype})." + ) + references[field_name] = jnp.asarray(values) - n_available = theta_growth_pred.shape[0] - n_use = min(max_samples, n_available) - theta_growth_pred = np.asarray(theta_growth_pred[:n_use]) - return jnp.asarray(np.median(theta_growth_pred, axis=0)) + references["external_theta_population"] = _population_theta( + orchestrator, param_posteriors, pred_growth, max_samples) + return references def predict(orchestrator, @@ -461,21 +516,21 @@ def predict(orchestrator, if isinstance(predict_sites, str): predict_sites = [predict_sites] - # Some transformation components (currently just "empirical") correct - # theta using a background CDF that must be estimated from the *full* - # genotype population, not whatever subset of genotypes this call - # happens to request (see generative/model.py and - # transformation/_congression.py). Build that reference once, up front, - # from the full-population posterior -- never from new_orchestrator, - # which copy_orchestrator() below rebuilds scoped to just the requested - # genotypes. + # The mixture transformation builds congressed cells from co-resident + # plasmids looked up across the whole library (see + # transformation/mixture.py and generative/model.py). Build the + # library-wide references once, up front, from the full-population + # posterior -- never from new_orchestrator, which copy_orchestrator() + # below rebuilds scoped to just the requested genotypes. transformation_control = orchestrator.main_control_kwargs.get("transformation") transformation_needs_population = ( bool(transformation_control[2]) if transformation_control is not None else False ) - external_theta_population = None + # Checked here, before any model work, so a raw MAP checkpoint fails fast. if transformation_needs_population: - external_theta_population = _build_population_theta_reference(param_posteriors) + for site, _ in _POPULATION_SITES: + if site not in param_posteriors: + raise _missing_site_error(site) # Create the expanded prediction model, subsetting genotypes if requested. # Passing genotypes to copy_orchestrator ensures the new orchestrator's TM @@ -637,10 +692,22 @@ def predict(orchestrator, all_indices = jnp.arange(num_geno, dtype=jnp.int32) pred_data = _get_batch(new_orchestrator.data, all_indices) - if external_theta_population is not None: + if transformation_needs_population: + population_references = _build_population_references( + orchestrator, param_posteriors, pred_data.growth) + # The subset model draws its own co-resident sets over the subset; + # use the fitted model's instead. Their entries index the original + # library, which is what the external references cover. + orig_labels = list(orchestrator.growth_tm.tensor_dim_labels[-1]) + new_labels = list(new_orchestrator.growth_tm.tensor_dim_labels[-1]) + rows = jnp.array([orig_labels.index(g) for g in new_labels], + dtype=jnp.int32) + orig_growth = orchestrator.data.growth pred_data = pred_data.replace( growth=pred_data.growth.replace( - external_theta_population=external_theta_population + coresident_idx=orig_growth.coresident_idx[rows], + bulk_fraction=orig_growth.bulk_fraction[rows], + **population_references, ) ) diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index fe7dc698..351ae1a7 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -22,7 +22,6 @@ class GrowthData: t_pre: jnp.ndarray t_sel: jnp.ndarray good_mask: jnp.ndarray - congression_mask: jnp.ndarray # Tensor shape @@ -72,16 +71,16 @@ class GrowthData: # (ln_cfu0_spiked_mask), which it no longer shares a flag with. Built by # ModelOrchestrator from the library composition table's bulk_fraction # (legacy spiked_genotypes: 0 for spiked, 1 otherwise). Library-sized; - # consumers index it with batch_idx. Not yet used by the model -- see - # planning/congression-physics-plan.md, step 3.3. + # consumers index it with batch_idx. Sets the congressed fraction of the + # mixture transformation (transformation/mixture.py). bulk_fraction: Any = field(default=None) # Fixed co-resident plasmid sets for the congression mixture, drawn once # by ModelOrchestrator._draw_coresident_sets. coresident_idx: int, # (num_genotype, K, N_max), library (growth-tensor) genotype indices, # -1 = empty slot; coresident_n: int, (K,), co-residents per set. - # Library-sized; consumers index the first axis with batch_idx. Not yet - # used by the model -- see planning/congression-physics-plan.md, 3.3c. + # Library-sized; consumers index the first axis with batch_idx. Used by + # the mixture transformation (transformation/mixture.py). coresident_idx: Any = field(default=None) coresident_n: Any = field(default=None) @@ -123,8 +122,8 @@ class GrowthData: # Precomputed theta at growth titrant concentrations for *every* genotype # in the library (shape (num_titrant_name, num_titrant_conc, true_num_genotype)), - # used only by transformation components whose congression correction needs - # a population-wide reference distribution (see transformation/_congression.py). + # used only by transformation components that need a population-wide + # reference (NEEDS_POPULATION; see transformation/mixture.py). # None (the default) tells `jax_model` to compute this locally from # `data.growth` itself, which is only correct when `data.growth` already # spans the full genotype population (true during SVI training, since @@ -140,7 +139,6 @@ class GrowthData: # the dk_geno/activity components supply these themselves # (return_population=True). A posterior forward pass that substitutes # batch-sized latents cannot, so prediction code must pass them here. - # Not yet read by the model. external_dk_population: Any = field(default=None) external_activity_population: Any = field(default=None) diff --git a/src/tfscreen/tfmodel/generative/components/theta/_simple.py b/src/tfscreen/tfmodel/generative/components/theta/_simple.py index 0bbec238..0bb1740e 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/_simple.py +++ b/src/tfscreen/tfmodel/generative/components/theta/_simple.py @@ -31,8 +31,8 @@ * 3-D input: ``mu = mean(logit(theta_values), axis=-1, keepdims=True)``; ``sigma = max(std(logit(theta_values), axis=-1, keepdims=True), floor)``. -Both variants return moments of shape ``(T, C, 1)`` to satisfy the -contract used by downstream transformations (e.g. ``transformation.logit_norm``). +Both variants return moments of shape ``(T, C, 1)`` to satisfy the theta +component interface (``get_population_moments``). """ import jax.numpy as jnp diff --git a/src/tfscreen/tfmodel/generative/components/transformation/_classes.py b/src/tfscreen/tfmodel/generative/components/transformation/_classes.py new file mode 100644 index 00000000..67af7d4b --- /dev/null +++ b/src/tfscreen/tfmodel/generative/components/transformation/_classes.py @@ -0,0 +1,43 @@ +""" +The cell classes a transformation component hands to ``jax_model``. +""" + +from typing import NamedTuple + +import jax.numpy as jnp + + +class CellClasses(NamedTuple): + """ + A genotype's cells split into classes that each grow at their own rate. + + Every field has a leading class axis of size C (the clean class first); + the remaining axes follow the growth layout and broadcast against + ``(replicate, time, condition_pre, condition_sel, titrant_name, + titrant_conc, batch)``. + + Attributes + ---------- + theta : jnp.ndarray + Cell-level operator occupancy, before ``theta_rescale``. + activity : jnp.ndarray + Cell-level TF activity. + dk_geno : jnp.ndarray + Cell-level pleiotropic growth effect. + log_weight : jnp.ndarray + Log fraction of the genotype's cells in each class; sums (in linear + space) to 1 over the class axis. + """ + + theta: jnp.ndarray + activity: jnp.ndarray + dk_geno: jnp.ndarray + log_weight: jnp.ndarray + + +def single_class(theta, activity, dk_geno) -> CellClasses: + """One class holding every cell (no congression).""" + return CellClasses(theta=theta[None], + activity=jnp.asarray(activity)[None], + dk_geno=jnp.asarray(dk_geno)[None], + log_weight=jnp.zeros((1,) + (1,) * jnp.ndim(theta))) diff --git a/src/tfscreen/tfmodel/generative/components/transformation/_congression.py b/src/tfscreen/tfmodel/generative/components/transformation/_congression.py index f17c9236..c836bf97 100644 --- a/src/tfscreen/tfmodel/generative/components/transformation/_congression.py +++ b/src/tfscreen/tfmodel/generative/components/transformation/_congression.py @@ -1,14 +1,19 @@ -import math +""" +The expected-maximum theta operator for co-transformation. + +``update_thetas`` replaces a genotype's theta by ``E[max(theta, M)]``, where M +is the largest theta among Poisson(lambda) co-resident plasmids drawn from a +background distribution (logit-normal or the empirical population). It was +the fit's congression correction until step 3.3c of +``planning/congression-physics-plan.md`` replaced it with the observable-level +mixture (``mixture.py``). It is kept as a plain function for Stage 1.5 of +``tfs-fit-genotypes`` / ``tfs-build-empirical`` +(``tfmodel/genotype_fit/congression.py``), which de-attenuates theta curves +with it; it is not a registered transformation component. +""" import jax import jax.numpy as jnp -import numpyro as pyro -import numpyro.distributions as dist -from flax.struct import ( - dataclass, - field -) -from tfscreen.tfmodel.data_class import GrowthData def _logit_normal_cdf(x, mu, sigma): """ @@ -280,275 +285,3 @@ def integrand(t): integral_val = jnp.trapezoid(y_vals, t_grid) return integral_val - - -@dataclass(frozen=True) -class ModelPriors: - """ - JAX Pytree holding data needed to specify model priors. - - Attributes - ---------- - lam_loc : float - Mean of the LogNormal prior for lambda. - lam_scale : float - Scale (sigma) of the LogNormal prior for lambda. - mu_anchoring_scale : float - Scale factor for the consistency prior anchoring mu_bg to prior_mu. - sigma_anchoring_scale : float - Scale factor for the consistency prior anchoring sigma_bg to prior_sigma. - """ - - lam_loc: float - lam_scale: float - mu_anchoring_scale: float - sigma_anchoring_scale: float - mode: str = field(default="logit_norm", pytree_node=False) - -def define_model(name: str, - data: GrowthData, - priors: ModelPriors, - anchors: tuple = None) -> tuple: - """ - Defines the hierarchical model for the co-transformation parameter (lambda) - and background parameters (mu, sigma, etc.). - - Parameters - ---------- - name : str - The prefix for the Numpyro sample sites. - data : GrowthData - A data object containing metadata. - priors : ModelPriors - A Pytree containing the hyperparameters. - anchors : tuple, optional - (prior_mu, prior_sigma) expected population moments from the theta model. - Shape: (num_titrant_name, num_titrant_conc, 1) - - Returns - ------- - tuple - (lam, ...) sampled values depending on priors.mode. - """ - - # Global shared lambda - lam = pyro.sample( - f"{name}_lam", - dist.LogNormal(priors.lam_loc, priors.lam_scale) - ) - pyro.deterministic(f"{name}_lam_value", lam) - - if priors.mode == "empirical": - return (lam,) - - if anchors is None: - anc_mu = 0.0 - anc_sigma = 1.0 - else: - anc_mu, anc_sigma = anchors - - if priors.mode == "logit_norm": - # Nested plates for titrant_name and titrant_conc - with pyro.plate(f"{name}_titrant_name_plate", data.num_titrant_name, dim=-3): - with pyro.plate(f"{name}_titrant_conc_plate", data.num_titrant_conc, dim=-2): - - mu = pyro.sample( - f"{name}_mu", - dist.Normal(anc_mu, priors.mu_anchoring_scale) - ) - pyro.deterministic(f"{name}_mu_value", mu) - - sigma = pyro.sample( - f"{name}_sigma", - dist.LogNormal(jnp.log(anc_sigma), priors.sigma_anchoring_scale) - ) - pyro.deterministic(f"{name}_sigma_value", sigma) - - return lam, mu, sigma - -def guide(name: str, - data: GrowthData, - priors: ModelPriors, - anchors: tuple = None) -> tuple: - """ - Guide corresponding to the co-transformation model. - Learns variational posteriors for lam, mu, and sigma. - - Parameters - ---------- - name : str - The prefix for the Numpyro sample sites. - data : GrowthData - A data object containing metadata. - priors : ModelPriors - A Pytree containing the hyperparameters for initialization. - anchors : tuple, optional - Population anchors (dummy here, but needed for interface). - - Returns - ------- - tuple - (lam, ...) sampled values from guide. - """ - - # Variational approximation for lambda - h_lam_loc = pyro.param(f"{name}_lam_loc", jnp.array(priors.lam_loc)) - h_lam_scale = pyro.param(f"{name}_lam_scale", jnp.array(priors.lam_scale), - constraint=dist.constraints.positive) - lam = pyro.sample(f"{name}_lam", dist.LogNormal(h_lam_loc, h_lam_scale)) - - if priors.mode == "empirical": - return (lam,) - - # Variational approximation for mu and sigma (plated) - local_shape = (data.num_titrant_name, data.num_titrant_conc, 1) - - if anchors is None: - init_mu = 0.0 - init_sigma = 1.0 - else: - init_mu, init_sigma = anchors - - if priors.mode == "logit_norm": - h_mu_loc = pyro.param(f"{name}_mu_loc", jnp.full(local_shape, init_mu)) - h_mu_scale = pyro.param(f"{name}_mu_scale", jnp.full(local_shape, 0.1), - constraint=dist.constraints.positive) - - h_sigma_loc = pyro.param(f"{name}_sigma_loc", jnp.full(local_shape, jnp.log(init_sigma))) - h_sigma_scale = pyro.param(f"{name}_sigma_scale", jnp.full(local_shape, 0.1), - constraint=dist.constraints.positive) - - with pyro.plate(f"{name}_titrant_name_plate", data.num_titrant_name, dim=-3): - with pyro.plate(f"{name}_titrant_conc_plate", data.num_titrant_conc, dim=-2): - - mu = pyro.sample(f"{name}_mu", dist.Normal(h_mu_loc, h_mu_scale)) - sigma = pyro.sample(f"{name}_sigma", dist.LogNormal(h_sigma_loc, h_sigma_scale)) - - return lam, mu, sigma - - raise ValueError(f"Unsupported mode: {priors.mode}") - - -def get_hyperparameters(lam_mean=None, lam_std=None): - """ - Gets default values for the model hyperparameters. - - Parameters - ---------- - lam_mean : float, optional - Experimentally measured mean of the congression Poisson rate - lambda, in linear (arithmetic) space. Must be provided together - with ``lam_std``. - lam_std : float, optional - Experimentally measured standard deviation of lambda, in linear - (arithmetic) space. Must be provided together with ``lam_mean``. - - Returns - ------- - dict - A dictionary of hyperparameter names and their default values. - - Raises - ------ - ValueError - If exactly one of ``lam_mean``/``lam_std`` is given, or either is - not strictly positive. - """ - - if (lam_mean is None) != (lam_std is None): - raise ValueError( - "lam_mean and lam_std must be provided together (or neither)." - ) - - parameters = {} - - if lam_mean is not None: - if lam_mean <= 0: - raise ValueError(f"lam_mean must be > 0; got {lam_mean}") - if lam_std <= 0: - raise ValueError(f"lam_std must be > 0; got {lam_std}") - - # Moment-match the experimentally measured (mean, std) -- in linear - # space, as an experimentalist would report them -- onto the - # LogNormal prior's underlying-Normal parameters. - sigma2 = math.log(1.0 + (lam_std / lam_mean) ** 2) - parameters["lam_loc"] = math.log(lam_mean) - sigma2 / 2.0 - parameters["lam_scale"] = math.sqrt(sigma2) - else: - # Placeholder only -- never used by tfs-configure-model / - # tfs-fit-model, which require an experimentally measured lam_mean/ - # lam_std for this component (see ModelOrchestrator/configure_model). - # Exists so this module stays independently constructible/testable, - # mirroring dk_geno.pinned's placeholder convention. - parameters["lam_loc"] = 0.0 - parameters["lam_scale"] = 1.0 - - # Anchoring scales (tightening this makes the background track the prior more closely) - parameters["mu_anchoring_scale"] = 0.5 - parameters["sigma_anchoring_scale"] = 0.2 - - # Background model mode: 'logit_normal' (default) or 'empirical' - parameters["mode"] = "logit_norm" - - return parameters - - -def get_guesses(name, data, lam_mean=None): - """ - Gets initial guess values for model parameters. - - These are used to initialize the MCMC sampler (e.g., via - ``numpyro.infer.init_to_value``). - - Parameters - ---------- - name : str - The prefix for the parameter names (e.g., "theta"). - data : DataClass - A data object containing metadata, primarily: - - ``data.num_genotype`` : (int) number of non-wt genotypes - lam_mean : float, optional - Experimentally measured mean of lambda (linear space); used - directly as the initial guess. If omitted, a placeholder guess is - used (see ``get_hyperparameters``). - - Returns - ------- - dict - A dictionary mapping parameter names to their initial - guess values. - """ - - - guesses = {} - guesses[f"{name}_lam"] = lam_mean if lam_mean is not None else 1.0 - - # Only add these if we are not in empirical mode. - # NOTE: get_guesses currently doesn't know the mode from the config easily - # during initialization in model_orchestrator.py unless we pass it. - # For now, we'll keep them as guesses; they just won't be used if not - # in the model/guide. - guesses[f"{name}_mu"] = 0.0 - guesses[f"{name}_sigma"] = 1.0 - - return guesses - -def get_priors(lam_mean=None, lam_std=None): - """ - Utility function to create a populated ModelPriors object. - - Parameters - ---------- - lam_mean : float, optional - Experimentally measured mean of lambda (linear space). See - ``get_hyperparameters``. - lam_std : float, optional - Experimentally measured standard deviation of lambda (linear - space). See ``get_hyperparameters``. - - Returns - ------- - ModelPriors - A populated Pytree (Flax dataclass) of hyperparameters. - """ - return ModelPriors(**get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std)) diff --git a/src/tfscreen/tfmodel/generative/components/transformation/empirical.py b/src/tfscreen/tfmodel/generative/components/transformation/empirical.py deleted file mode 100644 index 548bc4d2..00000000 --- a/src/tfscreen/tfmodel/generative/components/transformation/empirical.py +++ /dev/null @@ -1,56 +0,0 @@ -from functools import partial -import pandas as pd -from . import _congression as congression - -def get_hyperparameters(lam_mean=None, lam_std=None): - """ - Gets default values for the model hyperparameters, forced to empirical mode. - - Parameters - ---------- - lam_mean, lam_std : float, optional - Experimentally measured mean/std of lambda (linear space). See - ``_congression.get_hyperparameters``. - """ - parameters = congression.get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std) - parameters["mode"] = "empirical" - return parameters - -def get_priors(lam_mean=None, lam_std=None): - """ - Gets model priors initialized to empirical mode. - - Parameters - ---------- - lam_mean, lam_std : float, optional - Experimentally measured mean/std of lambda (linear space). See - ``_congression.get_hyperparameters``. - """ - return congression.ModelPriors(**get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std)) - -# These are mode-agnostic or depend on priors.mode -get_guesses = congression.get_guesses -define_model = congression.define_model -guide = congression.guide - -# Bake the theta_dist for the update function -update_thetas = partial(congression.update_thetas, theta_dist="empirical") - -# The empirical background CDF is estimated from raw per-genotype theta -# samples (see _congression._empirical_cdf), so it is only well-calibrated -# when built from the full genotype population rather than a training -# minibatch or a handful of requested genotypes. jax_model uses this flag to -# decide whether to compute (or expect an externally supplied) -# population-wide theta reference before calling update_thetas. -NEEDS_FULL_POPULATION_THETA = True - - -def get_extract_specs(ctx): - lam_df = pd.DataFrame({"parameter": ["lam"], "map_all": [0]}) - return [dict( - input_df=lam_df, - params_to_get=["lam"], - map_column="map_all", - get_columns=["parameter"], - in_run_prefix="transformation_", - )] diff --git a/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py b/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py deleted file mode 100644 index 40bd3faa..00000000 --- a/src/tfscreen/tfmodel/generative/components/transformation/logit_norm.py +++ /dev/null @@ -1,72 +0,0 @@ -from functools import partial -import numpy as np -import pandas as pd -from . import _congression as congression - -def get_hyperparameters(lam_mean=None, lam_std=None): - """ - Gets default values for the model hyperparameters, forced to logit_norm mode. - - Parameters - ---------- - lam_mean, lam_std : float, optional - Experimentally measured mean/std of lambda (linear space). See - ``_congression.get_hyperparameters``. - """ - parameters = congression.get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std) - parameters["mode"] = "logit_norm" - return parameters - -def get_priors(lam_mean=None, lam_std=None): - """ - Gets model priors initialized to logit_norm mode. - - Parameters - ---------- - lam_mean, lam_std : float, optional - Experimentally measured mean/std of lambda (linear space). See - ``_congression.get_hyperparameters``. - """ - return congression.ModelPriors(**get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std)) - -# These are mode-agnostic or depend on priors.mode -get_guesses = congression.get_guesses -define_model = congression.define_model -guide = congression.guide - -# Bake the theta_dist for the update function -update_thetas = partial(congression.update_thetas, theta_dist="logit_norm") - -# logit_norm's background CDF is the smooth analytic Logit-Normal(mu, sigma), -# not a raw-sample empirical CDF, so it needs no population-wide theta -# reference — mu/sigma already update smoothly with SVI regardless of which -# genotypes are in the current batch. See empirical.py for the contrasting case. -NEEDS_FULL_POPULATION_THETA = False - - -def get_extract_specs(ctx): - lam_df = pd.DataFrame({"parameter": ["lam"], "map_all": [0]}) - specs = [dict( - input_df=lam_df, - params_to_get=["lam"], - map_column="map_all", - get_columns=["parameter"], - in_run_prefix="transformation_", - )] - - trans_df = (ctx.growth_tm.df[["titrant_name", "titrant_conc", - "titrant_name_idx", "titrant_conc_idx"]] - .drop_duplicates().copy()) - conc_dim = np.where(np.array(ctx.growth_tm.tensor_dim_names) == "titrant_conc")[0][0] - num_titrant_conc = len(ctx.growth_tm.tensor_dim_labels[conc_dim]) - trans_df["map_trans"] = (trans_df["titrant_name_idx"] * num_titrant_conc - + trans_df["titrant_conc_idx"]) - specs.append(dict( - input_df=trans_df, - params_to_get=["mu", "sigma"], - map_column="map_trans", - get_columns=["titrant_name", "titrant_conc"], - in_run_prefix="transformation_", - )) - - return specs diff --git a/src/tfscreen/tfmodel/generative/components/transformation/mixture.py b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py new file mode 100644 index 00000000..df2ebb1d --- /dev/null +++ b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py @@ -0,0 +1,247 @@ +""" +Congression as an observable-level mixture of clean and congressed cells. + +A genotype's cells are a mixture: most carry only its plasmid ("clean"), +and a fraction ``w_cong = f_g (1 - exp(-lambda))`` also carry co-resident +plasmids (Poisson(lambda) co-residents, drawn from the bulk library). +Each class grows at its own rate, so the classes are mixed at the level of +``exp(ln_cfu)``, not rates or theta: + + ln_cfu_g(t) = ln_cfu0_g + log sum_c w_c exp(G_c(t)) + +The congressed term ``E_S exp(G_{g,S}(t))`` over random co-resident sets S is +evaluated by a fixed quadrature: K co-resident sets per genotype, drawn once +by ``ModelOrchestrator._draw_coresident_sets`` (``data.coresident_idx``, +``data.coresident_n``) and stratified by co-resident count. A congressed cell +takes its theta and TF activity from the plasmid with the highest theta (at +each titrant concentration) and the share-weighted mean dk_geno of its +plasmids (dilution), matching ``simulate/cell_rules.py``. + +See ``planning/congression-physics-plan.md`` ("Fit design (step 3)") and +``planning/studies/congression-estimator/`` for why this estimator. +""" + +import math + +import jax +import jax.numpy as jnp +import numpyro as pyro +import numpyro.distributions as dist +import pandas as pd +from flax.struct import dataclass + +from tfscreen.tfmodel.data_class import GrowthData +from tfscreen.tfmodel.generative.components.transformation._classes import ( + CellClasses, +) + + +# The mixture's congressed cells draw co-residents' theta, activity and +# dk_geno from the whole library, so jax_model must supply library-ordered +# populations of all three (computed locally in training, or passed in as +# data.external_*_population by prediction code). +NEEDS_POPULATION = True + + +@dataclass(frozen=True) +class ModelPriors: + """ + LogNormal prior on the congression Poisson rate lambda (the log-space + location and scale). + """ + + lam_loc: float + lam_scale: float + + +def define_model(name: str, + data: GrowthData, + priors: ModelPriors) -> jnp.ndarray: + """ + Sample the global congression rate lambda. + + Returns + ------- + jnp.ndarray + lambda (scalar). + """ + lam = pyro.sample(f"{name}_lam", + dist.LogNormal(priors.lam_loc, priors.lam_scale)) + pyro.deterministic(f"{name}_lam_value", lam) + return lam + + +def guide(name: str, + data: GrowthData, + priors: ModelPriors) -> jnp.ndarray: + """ + LogNormal variational posterior for lambda. + """ + lam_loc = pyro.param(f"{name}_lam_loc", jnp.array(priors.lam_loc)) + lam_scale = pyro.param(f"{name}_lam_scale", jnp.array(priors.lam_scale), + constraint=dist.constraints.positive) + return pyro.sample(f"{name}_lam", dist.LogNormal(lam_loc, lam_scale)) + + +def _log_class_weights(lam, bulk_fraction, coresident_n): + """ + Log mixture weights, shape (1 + K, B): clean first, then the K sets. + + ``w_cong = f (1 - exp(-lambda))``; set k (with n_k co-residents) gets + ``w_cong * P(N = n_k | N in strata; lambda) / K_{n_k}``, where the + stratum probabilities are Poisson(lambda) renormalized over the counts + that have sets. Written in log space so the lambda gradient stays finite + when ``f = 0`` (those congressed weights are -inf and drop out of the + logsumexp). + """ + n = coresident_n.astype(float) # (K,) + num_in_stratum = jnp.sum(coresident_n[None, :] == coresident_n[:, None], + axis=1).astype(float) # (K,) + + # Unnormalized log Poisson pmf; exp(-lambda) cancels in the normalization. + log_pmf = n * jnp.log(lam) - jax.scipy.special.gammaln(n + 1.0) + # Each stratum appears K_n times; divide by K_n so it counts once. + log_norm = jax.scipy.special.logsumexp(log_pmf - jnp.log(num_in_stratum)) + log_stratum = log_pmf - log_norm - jnp.log(num_in_stratum) # (K,) + + log_p_cong = jnp.log(-jnp.expm1(-lam)) + log_f = jnp.log(bulk_fraction) # (B,) + + log_w_sets = log_f[None, :] + log_p_cong + log_stratum[:, None] # (K, B) + log_w_clean = jnp.log1p(-bulk_fraction * (-jnp.expm1(-lam))) # (B,) + + return jnp.concatenate([log_w_clean[None, :], log_w_sets], axis=0) + + +def cell_classes(focal, population, lam, data: GrowthData) -> CellClasses: + """ + Build the clean and congressed cell classes for the batch's genotypes. + + Parameters + ---------- + focal : tuple of jnp.ndarray + ``(theta, activity, dk_geno)`` for the batch. ``theta`` has the + growth layout ``(1, 1, 1, 1, num_titrant_name, num_titrant_conc, + batch)``; ``activity`` and ``dk_geno`` are ``(1, ..., 1, batch)``. + population : tuple of jnp.ndarray + Library-ordered ``(theta, activity, dk_geno)`` for every genotype: + ``theta`` ``(1, 1, 1, 1, tn, tc, num_genotype)``; ``activity`` and + ``dk_geno`` ``(num_genotype,)``. + lam : jnp.ndarray + Congression Poisson rate. + data : GrowthData + Uses ``batch_idx``, ``bulk_fraction``, ``coresident_idx``, + ``coresident_n``. + + Returns + ------- + CellClasses + Leading class axis of size 1 + K (clean first). + """ + theta, activity, dk_geno = focal + theta_pop, activity_pop, dk_pop = population + + idx = data.coresident_idx[data.batch_idx] # (B, K, N) + valid = idx >= 0 + safe = jnp.where(valid, idx, 0) + + # --- theta and activity: the highest-theta plasmid sets both --------- + # Slots: the focal plasmid, then the set's co-residents. + co_theta = theta_pop[..., safe] # (..., B, K, N) + focal_theta = jnp.broadcast_to(theta[..., None, None], + co_theta.shape[:-1] + (1,)) + slot_theta = jnp.concatenate([focal_theta, co_theta], axis=-1) + slot_valid = jnp.concatenate( + [jnp.ones(valid.shape[:-1] + (1,), dtype=bool), valid], axis=-1) + slot_theta = jnp.where(slot_valid, slot_theta, -jnp.inf) + best = jnp.argmax(slot_theta, axis=-1)[..., None] # (..., B, K, 1) + cell_theta = jnp.take_along_axis(slot_theta, best, axis=-1)[..., 0] + + act_focal = jnp.broadcast_to(activity, theta.shape) + slot_act = jnp.concatenate( + [jnp.broadcast_to(act_focal[..., None, None], focal_theta.shape), + jnp.broadcast_to(activity_pop[safe], co_theta.shape)], axis=-1) + cell_act = jnp.take_along_axis(slot_act, best, axis=-1)[..., 0] + + # --- dk_geno: share-weighted mean (dilution) -------------------------- + co_dk = jnp.where(valid, dk_pop[safe], 0.0) # (B, K, N) + num_plasmids = 1.0 + jnp.sum(valid, axis=-1) # (B, K) + cell_dk = (dk_geno[..., None] + jnp.sum(co_dk, axis=-1)) / num_plasmids + + # --- stack classes on a leading axis (clean first) -------------------- + def stack(clean, congressed): + return jnp.concatenate([clean[None], + jnp.moveaxis(congressed, -1, 0)], axis=0) + + classes_theta = stack(theta, cell_theta) + classes_act = stack(act_focal, cell_act) + classes_dk = stack(dk_geno, cell_dk) + + bulk_fraction = data.bulk_fraction[data.batch_idx] + log_w = _log_class_weights(lam, bulk_fraction, data.coresident_n) + log_w = log_w.reshape((log_w.shape[0],) + (1,) * (theta.ndim - 1) + + (log_w.shape[-1],)) + + return CellClasses(theta=classes_theta, activity=classes_act, + dk_geno=classes_dk, log_weight=log_w) + + +def get_hyperparameters(lam_mean=None, lam_std=None): + """ + Default hyperparameters: the LogNormal prior on lambda. + + Parameters + ---------- + lam_mean, lam_std : float, optional + Experimentally measured mean and standard deviation of lambda, in + linear space, moment-matched onto the LogNormal. Provide both or + neither; without them a placeholder prior is used (tfs-configure-model + requires a measured value for this component). + + Raises + ------ + ValueError + If exactly one of ``lam_mean``/``lam_std`` is given, or either is + not strictly positive. + """ + if (lam_mean is None) != (lam_std is None): + raise ValueError( + "lam_mean and lam_std must be provided together (or neither)." + ) + + parameters = {} + if lam_mean is not None: + if lam_mean <= 0: + raise ValueError(f"lam_mean must be > 0; got {lam_mean}") + if lam_std <= 0: + raise ValueError(f"lam_std must be > 0; got {lam_std}") + sigma2 = math.log(1.0 + (lam_std / lam_mean) ** 2) + parameters["lam_loc"] = math.log(lam_mean) - sigma2 / 2.0 + parameters["lam_scale"] = math.sqrt(sigma2) + else: + parameters["lam_loc"] = 0.0 + parameters["lam_scale"] = 1.0 + + return parameters + + +def get_guesses(name, data, lam_mean=None): + """Initial guess for lambda: the measured mean if given, else 1.0.""" + return {f"{name}_lam": lam_mean if lam_mean is not None else 1.0} + + +def get_priors(lam_mean=None, lam_std=None): + """Build the ModelPriors from ``get_hyperparameters``.""" + return ModelPriors(**get_hyperparameters(lam_mean=lam_mean, + lam_std=lam_std)) + + +def get_extract_specs(ctx): + lam_df = pd.DataFrame({"parameter": ["lam"], "map_all": [0]}) + return [dict( + input_df=lam_df, + params_to_get=["lam"], + map_column="map_all", + get_columns=["parameter"], + in_run_prefix="transformation_", + )] diff --git a/src/tfscreen/tfmodel/generative/components/transformation/single.py b/src/tfscreen/tfmodel/generative/components/transformation/single.py index 00ef8c1e..ee2b6fa6 100644 --- a/src/tfscreen/tfmodel/generative/components/transformation/single.py +++ b/src/tfscreen/tfmodel/generative/components/transformation/single.py @@ -1,46 +1,52 @@ -import jax.numpy as jnp +""" +No congression: every cell of a genotype carries only its own plasmid. +""" + from flax.struct import dataclass + from tfscreen.tfmodel.data_class import GrowthData +from tfscreen.tfmodel.generative.components.transformation._classes import ( + CellClasses, + single_class, +) + + +# One class built from the genotype's own values; no population needed. +NEEDS_POPULATION = False + @dataclass(frozen=True) class ModelPriors: """ JAX Pytree holding data needed to specify model priors. - + No priors needed for single transformation (dummy). """ pass -def define_model(name: str, - data: GrowthData, - priors: ModelPriors, - anchors: tuple = None) -> jnp.ndarray: - """ - Dummy model definition for single transformation. - """ - return 1.0, 1.0, 1.0 # Dummy lambda, a, b -def guide(name: str, - data: GrowthData, - priors: ModelPriors, - anchors: tuple = None) -> jnp.ndarray: - """ - Dummy guide for single transformation. - """ - return 1.0, 1.0, 1.0 +def define_model(name: str, + data: GrowthData, + priors: ModelPriors): + """No latent parameters.""" + return None -def update_thetas(theta, params, mask=None): - """ - Pass-through update_thetas for single transformation. - Returns theta unchanged. - """ - return theta +def guide(name: str, + data: GrowthData, + priors: ModelPriors): + """No latent parameters.""" + return None + +def cell_classes(focal, population, params, data: GrowthData) -> CellClasses: + """ + One class, weight 1, built from the genotype's own theta, activity and + dk_geno. ``population`` and ``params`` are ignored. + """ + theta, activity, dk_geno = focal + return single_class(theta, activity, dk_geno) -# No congression correction is applied at all in single-plasmid mode, so -# there is nothing that needs a population-wide theta reference. -NEEDS_FULL_POPULATION_THETA = False def get_hyperparameters(): """ @@ -48,12 +54,14 @@ def get_hyperparameters(): """ return {} + def get_guesses(name, data): """ No guesses needed. """ return {} + def get_priors(): return ModelPriors(**get_hyperparameters()) diff --git a/src/tfscreen/tfmodel/generative/model.py b/src/tfscreen/tfmodel/generative/model.py index d47a1b88..c4d95f26 100644 --- a/src/tfscreen/tfmodel/generative/model.py +++ b/src/tfscreen/tfmodel/generative/model.py @@ -5,6 +5,7 @@ PriorsClass, ) +import jax import jax.numpy as jnp import numpyro as pyro @@ -50,7 +51,7 @@ def jax_model(data: DataClass, binding_only = control.get("binding_only", False) is_guide = control["is_guide"] - theta_model, calc_theta, get_moments = control["theta"] + theta_model, calc_theta, _ = control["theta"] theta_binding_noise_model = control["theta_binding_noise"] binding_observer = control["observe_binding"] @@ -80,7 +81,7 @@ def jax_model(data: DataClass, ln_cfu0_model = control["ln_cfu0"] activity_model = control["activity"] dk_geno_model = control["dk_geno"] - transformation_model, transformation_update, transformation_needs_population = \ + transformation_model, cell_classes, transformation_needs_population = \ control["transformation"] theta_growth_noise_model = control["theta_growth_noise"] theta_rescale = control["theta_rescale"] @@ -105,9 +106,6 @@ def jax_model(data: DataClass, data.growth, priors.theta) - # Get population moments as anchors for the transformation model - anchors = get_moments(theta, data.growth) - # ------------------------------------------------------------------------- # Make prediction for the binding experiment @@ -131,77 +129,42 @@ def jax_model(data: DataClass, data.growth, priors.growth.ln_cfu0) - # # pleiotropic effect of mutation - dk_geno = dk_geno_model("dk_geno", - data.growth, - priors.growth.dk_geno) - - # activity - activity = activity_model("activity", - data.growth, - priors.growth.activity) + # pleiotropic effect of mutation and TF activity. When the congression + # mixture needs them, the components also return every genotype's value + # in library order (None if their latents arrived batch-sized). + if transformation_needs_population: + dk_geno, dk_population = dk_geno_model("dk_geno", + data.growth, + priors.growth.dk_geno, + return_population=True) + activity, activity_population = activity_model("activity", + data.growth, + priors.growth.activity, + return_population=True) + else: + dk_geno = dk_geno_model("dk_geno", + data.growth, + priors.growth.dk_geno) + activity = activity_model("activity", + data.growth, + priors.growth.activity) - # theta + # theta (the genotype's own, before congression) theta_growth = calc_theta(theta,data.growth) pyro.deterministic(f"theta_growth_pred",theta_growth) - # Transformation parameters (lam, mu, sigma) + # Transformation parameters (lambda for the mixture; none for single) trans_params = transformation_model("transformation", data.growth, - priors.growth.transformation, - anchors=anchors) - - # Correct theta for transformation - # theta_growth shape: (..., titrant_name, titrant_conc, geno) or scattered - # Result broadcasts to interaction of (rep, pre) and (titrant) - # Parameters passed as tuple - if transformation_needs_population: - # The congression correction's background CDF must be estimated from - # the full genotype population, not whatever subset of genotypes is - # active in this particular forward pass (a training minibatch, or a - # handful of genotypes requested at prediction time) — see - # transformation/_congression.py::update_thetas. When the caller - # hasn't supplied one explicitly (data.growth.external_theta_population), - # compute it locally by re-running calc_theta over every genotype. - # This is only correct when data.growth already spans the full - # population, which holds during SVI training (genotype minibatching - # never shrinks data.growth.num_genotype — see tensors/batch.py) but - # NOT for prediction code paths that subset genotypes; those must - # supply external_theta_population themselves. - if data.growth.external_theta_population is not None: - population_theta_growth = data.growth.external_theta_population - else: - # Deliberately leave scatter_theta untouched (rather than forcing - # it to 0) so population_theta_growth's leading (non-genotype) - # dimensions match theta_growth's exactly -- update_thetas relies - # on that alignment when broadcasting the correction back onto - # theta_growth's shape. - num_genotype = data.growth.num_genotype - full_population_idx = jnp.arange(num_genotype) - full_population_data = data.growth.replace( - batch_idx=full_population_idx, - geno_theta_idx=full_population_idx, - ) - population_theta_growth = calc_theta(theta, full_population_data) - - corr_theta_growth = transformation_update( - theta_growth, - params=trans_params, - mask=data.growth.congression_mask, - population_theta=population_theta_growth, - ) - else: - corr_theta_growth = transformation_update(theta_growth, - params=trans_params, - mask=data.growth.congression_mask) + priors.growth.transformation) + # Noise acts on the genotype's own theta, before the cell classes are + # built; co-residents use noiseless population values. noisy_theta_growth = theta_growth_noise_model("theta_growth_noise", - corr_theta_growth, + theta_growth, priors.growth.theta_growth_noise, data=data.growth) - rescaled_theta = theta_rescale(noisy_theta_growth) - # ------------------------------------------------------------------------- # finalize @@ -210,6 +173,8 @@ def jax_model(data: DataClass, # variables (e.g. memory k1/tau0/k2) get guide sample sites registered. if is_guide: + rescaled_theta = theta_rescale(noisy_theta_growth) + growth_transition_model("growth_transition", data.growth, priors.growth.growth_transition, @@ -258,13 +223,26 @@ def jax_model(data: DataClass, growth=data.growth, priors=priors.growth.base_growth) - # calculate observable (all tensors have correct dimensions) + # Congression: split each genotype's cells into classes (clean, and + # congressed cells carrying co-resident plasmids), each with its own + # cell-level theta, activity and dk_geno and a mixture weight. See + # transformation/mixture.py. + population = None + if transformation_needs_population: + population = _population(data.growth, theta, calc_theta, + dk_population, activity_population) + classes = cell_classes((noisy_theta_growth, activity, dk_geno), + population, trans_params, data.growth) + + # Grow every class. The class axis leads the growth layout and every + # growth component is elementwise, so each is called once. + rescaled_theta = theta_rescale(classes.theta) g_pre, g_sel = calculate_growth(params=growth_params, - dk_geno=dk_geno, - activity=activity, + dk_geno=classes.dk_geno, + activity=classes.activity, theta=rescaled_theta) - total_growth = growth_transition_model("growth_transition", + class_growth = growth_transition_model("growth_transition", data.growth, priors.growth.growth_transition, g_pre=g_pre, @@ -273,6 +251,11 @@ def jax_model(data: DataClass, t_sel=data.growth.t_sel, theta=rescaled_theta) + # Mix the classes at the observable level: exp(ln_cfu) adds, rates + # do not. + total_growth = jax.scipy.special.logsumexp( + classes.log_weight + class_growth, axis=0) + sigma_k = growth_noise_model("growth_noise", data.growth, priors.growth.growth_noise) @@ -293,3 +276,44 @@ def jax_model(data: DataClass, binding_observer("binding", data.binding, binding_pred) +def _population(growth, theta, calc_theta, dk_population, activity_population): + """ + Library-ordered theta, activity and dk_geno for every genotype. + + Each comes from ``growth.external_*_population`` when supplied (prediction + code that runs a genotype subset, or whose latents are batch-sized + substitutions), else is computed here: theta by evaluating the theta + component over the full library (valid because genotype mini-batching + never shrinks ``num_genotype``; see tensors/batch.py), activity and + dk_geno from their components' ``return_population`` values. + + Raises + ------ + ValueError + If activity or dk_geno is needed but neither the component nor the + data supplies it. + """ + if growth.external_theta_population is not None: + theta_population = growth.external_theta_population + else: + full = jnp.arange(growth.num_genotype) + theta_population = calc_theta( + theta, growth.replace(batch_idx=full, geno_theta_idx=full)) + + if growth.external_dk_population is not None: + dk_population = growth.external_dk_population + if growth.external_activity_population is not None: + activity_population = growth.external_activity_population + + missing = [name for name, value in (("dk_geno", dk_population), + ("activity", activity_population)) + if value is None] + if missing: + raise ValueError( + f"The congression mixture needs every genotype's {missing}, but " + f"the latents were not library-sized and no " + f"external_*_population was supplied. Prediction code that runs " + f"a genotype subset must pass them (see analysis/prediction.py)." + ) + + return theta_population, activity_population, dk_population diff --git a/src/tfscreen/tfmodel/generative/registry.py b/src/tfscreen/tfmodel/generative/registry.py index 991cc951..3af4aa9f 100644 --- a/src/tfscreen/tfmodel/generative/registry.py +++ b/src/tfscreen/tfmodel/generative/registry.py @@ -38,8 +38,7 @@ from .components.theta.thermo.O2_C12_K5_U1_a import PK as theta_mwc_dimer_unfolded_lnK_mut from .components.theta.thermo.O2_C12_K5_U1_a import PnnC as theta_mwc_dimer_unfolded_lnK_nn_prior from .components.theta.thermo.O2_C12_K5_U1_a import PddG as theta_mwc_dimer_unfolded_lnK_ddG_prior -from .components.transformation import empirical as transformation_empirical -from .components.transformation import logit_norm as transformation_logit_norm +from .components.transformation import mixture as transformation_mixture from .components.transformation import single as transformation_single from .components.theta_rescale import passthrough as theta_rescale_passthrough @@ -83,8 +82,7 @@ "horseshoe_mut":activity_horseshoe_mut, }, "transformation":{ - "empirical": transformation_empirical, - "logit_norm": transformation_logit_norm, + "mixture": transformation_mixture, "single": transformation_single, }, "theta_rescale":{ diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index 43100de3..cc605793 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -691,64 +691,27 @@ def _setup_batching(growth_genotypes, return out -# Theta components that cannot yet supply a full-population theta reference -# for the "empirical" transformation's congression correction. Unlike -# hill_mut/hill_geno/thermo.*, which already assemble per-genotype parameters -# for the full library on every forward pass (batching only gathers a subset -# of an already-full-size ThetaParam), categorical_geno only ever samples -# batch_size-worth of per-genotype offsets per call. Wiring it up to -# "empirical" would silently reproduce the population-CDF bug the -# NEEDS_FULL_POPULATION_THETA mechanism exists to fix (see -# transformation/_congression.py and generative/model.py), rather than -# raising — so it's blocked explicitly here until categorical_geno gets its -# own full-population code path. -_THETA_MODELS_INCOMPATIBLE_WITH_EMPIRICAL = frozenset({"categorical_geno"}) - - -def _check_theta_transformation_compatibility(theta, transformation, binding_only=False): - """ - Raise a clear error for known theta/transformation combinations that - would silently produce incorrect results rather than failing loudly. - - Parameters - ---------- - theta : str - Name of the requested theta component (model_registry["theta"] key). - transformation : str - Name of the requested transformation component - (model_registry["transformation"] key). - binding_only : bool, optional - Whether the model is being built in binding-only mode. In that mode - jax_model returns before ever touching the transformation/congression - code path (see generative/model.py's early `if binding_only: ... - return`), so the transformation setting is inert and this check does - not apply. Default False. - - Raises - ------ - ValueError - If `transformation == "empirical"` and `theta` is a component that - cannot supply a full-population theta reference for the congression - correction, and the model is not binding-only. - """ - if binding_only: - return - - if (transformation == "empirical" - and theta in _THETA_MODELS_INCOMPATIBLE_WITH_EMPIRICAL): - raise ValueError( - f"theta='{theta}' is not compatible with transformation='empirical'. " - "The empirical congression correction requires a theta reference " - f"covering the full genotype population, but '{theta}' only ever " - "assembles theta for the genotypes in the current batch/request " - "(see categorical_geno.define_model's batch_size-scoped " - "logit_theta_offset plate). Using it with transformation='empirical' " - "would silently reproduce the population-CDF bug this check exists " - "to prevent, rather than raise. Use transformation='single' or " - "'logit_norm' with this theta model, or choose a theta component " - "that already assembles full-population parameters (hill_geno, " - "hill_mut, or a thermo.* component)." - ) +# Transformation components that were removed or renamed, with the reason. +# Refused by name so an old config fails loudly instead of silently meaning +# something new. +_RETIRED_TRANSFORMATIONS = { + "empirical": ( + "transformation 'empirical' has been replaced by 'mixture'. The old " + "component corrected each genotype's theta to the expected maximum " + "over co-resident plasmids and grew one trajectory with the " + "genotype's own dk_geno; averaging theta cannot represent a mixture " + "of growth rates. 'mixture' instead mixes clean and congressed cells " + "at the level of exp(ln_cfu), with cell-level theta, activity and " + "dk_geno (see planning/congression-physics-plan.md). Set " + "transformation: mixture (fits are not comparable with the old " + "component)." + ), + "logit_norm": ( + "transformation 'logit_norm' has been removed: it modeled the " + "co-resident background as a parametric theta distribution with no " + "dk_geno counterpart. Use 'mixture' (or 'single' for no congression)." + ), +} def _check_congression_sets(congression_sets): @@ -804,16 +767,16 @@ class ModelOrchestrator: theta : str, optional Model name for theta calculation (e.g., "hill"). transformation : str, optional - Model name for transformation correction. Allowed values are 'single' - (default), 'empirical', or 'logit_norm'. + Model name for congression. 'single' (default; every cell carries one + plasmid) or 'mixture' (clean and congressed cells mixed at the + observable level; see ``transformation/mixture.py``). transformation_lambda : tuple, optional ``(mean, std)`` -- the experimentally measured congression lambda, in linear space -- used to anchor the ``transformation`` prior when - it is 'empirical' or 'logit_norm'. Forbidden when - ``transformation == 'single'`` (which has no lambda parameter). If - omitted for 'empirical'/'logit_norm', a weakly-informative - placeholder prior is used (see - ``generative/components/transformation/_congression.get_hyperparameters``); + it is 'mixture'. Forbidden when ``transformation == 'single'`` + (which has no lambda parameter). If omitted for 'mixture', a + weakly-informative placeholder prior is used (see + ``generative/components/transformation/mixture.get_hyperparameters``); ``configure_model`` (the ``tfs-configure-model`` entry point) requires it explicitly rather than silently falling back to the placeholder. @@ -922,9 +885,8 @@ def __init__(self, self._congression_sets = _check_congression_sets(congression_sets) self._congression_seed = int(congression_seed) - _check_theta_transformation_compatibility( - self._theta, self._transformation, binding_only=self._binding_only - ) + if self._transformation in _RETIRED_TRANSFORMATIONS: + raise ValueError(_RETIRED_TRANSFORMATIONS[self._transformation]) if self._library_file is not None: if self._spiked_genotypes is not None: @@ -1014,11 +976,11 @@ def _initialize_data(self): wt_loc = np.where(self.growth_tm.tensor_dim_labels[genotype_idx] == "wt") wt_info = {"wt_indexes":jnp.array(wt_loc[0], dtype=jnp.int32)} - # scatter_theta tells the theta model caller to return a full-sized - # growth_tm tensor instead of the smaller growth_theta_tm-sized tensor - # congression_mask is a boolean array of shape (num_genotype,) that - # tells the model which genotypes should be corrected for congression. - # Initialize to all True (no masking). + # scatter_theta tells the theta model caller to return a full-sized + # growth_tm tensor instead of the smaller growth_theta_tm-sized tensor. + # mask is a boolean array of shape (num_genotype,): False for spiked + # genotypes. It sets the ln_cfu0 prior class and, on the legacy path, + # the binary bulk_fraction. Initialize to all True (nothing spiked). mask = np.ones(sizes["num_genotype"],dtype=bool) # A library composition table (the current interface) names the spiked @@ -1074,6 +1036,18 @@ def _initialize_data(self): bulk_fraction = self._build_bulk_fraction(mask) coresident_idx, coresident_n = self._draw_coresident_sets(mask) + if (self._transformation == "mixture" + and np.any(bulk_fraction > 0) + and np.all(coresident_idx < 0)): + raise ValueError( + "transformation='mixture' needs co-resident plasmids to draw, " + "but no genotype with growth data can be one (the co-resident " + "pool is empty: every genotype is spiked-only or has zero " + "bulk share) while some genotypes have bulk_fraction > 0. " + "Check the library composition table, or use " + "transformation='single'." + ) + wt_mask = np.zeros(sizes["num_genotype"], dtype=bool) wt_mask[wt_loc[0]] = True @@ -1094,7 +1068,6 @@ def _initialize_data(self): sizes["num_ln_cfu0_library_classes"] = 2 other_data = {"scatter_theta":1, - "congression_mask":jnp.array(mask,dtype=bool), "ln_cfu0_spiked_mask":jnp.array(~mask,dtype=bool), "ln_cfu0_wt_mask":jnp.array(wt_mask,dtype=bool), "ln_cfu0_library_masks":jnp.array(_library_masks,dtype=bool), @@ -1684,15 +1657,14 @@ def _initialize_classes(self): component_module.run_model, component_module.get_population_moments) elif key == "transformation": - needs_full_population = getattr( - component_module, "NEEDS_FULL_POPULATION_THETA", False - ) + needs_population = getattr(component_module, + "NEEDS_POPULATION", False) main_control_kwargs[key] = (component_module.define_model, - component_module.update_thetas, - needs_full_population) + component_module.cell_classes, + needs_population) guide_control_kwargs[key] = (component_module.guide, - component_module.update_thetas, - needs_full_population) + component_module.cell_classes, + needs_population) elif key == "condition_growth": main_control_kwargs[key] = component_module.define_model guide_control_kwargs[key] = component_module.guide diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index 5eca4fbe..be712f08 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -217,12 +217,13 @@ def configure_model(binding_df, 'thermo.O2_C12_K5_U0_a.PnnC', 'thermo.O2_C12_K5_U0_a.PddG', and their O2_C4_K3_U1_a / O2_C12_K5_U1_a unfolded equivalents). transformation_model : str, optional - Model for transformation correction. Allowed values are 'single' - (default), 'empirical', or 'logit_norm'. + Model for congression. Allowed values are 'single' (default; one + plasmid per cell) or 'mixture' (clean and congressed cells mixed at + the observable level). 'empirical' and 'logit_norm' were removed. transformation_lambda : list or tuple, optional ``(mean, std)`` -- the experimentally measured congression lambda, in linear space (e.g. ``(0.36, 0.05)``). Required when - ``transformation_model`` is 'empirical' or 'logit_norm'; forbidden + ``transformation_model`` is 'mixture'; forbidden when it is 'single'. Used to moment-match a LogNormal prior for the transformation's lambda parameter, replacing the manual step of hand-editing the priors/guesses CSVs with rescaled log-space values. diff --git a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py index 046d43e4..9d065f85 100644 --- a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py +++ b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py @@ -341,7 +341,7 @@ def _build_calibration_model(orchestrator_prod, growth_df_cal, binding_df_cal): settings[k] = v # transformation is forced to "single" above, which carries no lambda # parameter; drop any production transformation_lambda (set when the production - # transformation is "empirical"/"logit_norm") so it doesn't get passed + # transformation is "mixture") so it doesn't get passed # through to a "single" calibration model. settings["transformation_lambda"] = None settings["spiked_genotypes"] = None diff --git a/src/tfscreen/tfmodel/tensors/batch.py b/src/tfscreen/tfmodel/tensors/batch.py index 2d6e342c..8c124f1c 100644 --- a/src/tfscreen/tfmodel/tensors/batch.py +++ b/src/tfscreen/tfmodel/tensors/batch.py @@ -50,7 +50,6 @@ def get_batch(full_data: DataClass, idx: jnp.ndarray) -> DataClass: map_condition_pre=full_data.growth.map_condition_pre[...,idx], map_condition_sel=full_data.growth.map_condition_sel[...,idx], good_mask=full_data.growth.good_mask[...,idx], - congression_mask=full_data.growth.congression_mask[...,idx], ) return full_data.replace(growth=new_growth) diff --git a/tests/fixtures/generate_reference_posteriors.py b/tests/fixtures/generate_reference_posteriors.py index 193d7b96..f474d1d2 100644 --- a/tests/fixtures/generate_reference_posteriors.py +++ b/tests/fixtures/generate_reference_posteriors.py @@ -52,7 +52,7 @@ def run(): binding_df=BINDING_CSV, batch_size=BATCH_SIZE, condition_growth="linear", - transformation="empirical", + transformation="mixture", theta="hill_geno", growth_transition="instant", dk_geno="hierarchical_geno", diff --git a/tests/smoke-tests/test_model_smoke.py b/tests/smoke-tests/test_model_smoke.py index 772324e5..4e90b9af 100644 --- a/tests/smoke-tests/test_model_smoke.py +++ b/tests/smoke-tests/test_model_smoke.py @@ -15,7 +15,7 @@ # Default-ish config { "condition_growth":"linear", - "transformation":"empirical", + "transformation":"mixture", "theta":"hill_geno", "growth_transition":"instant", "dk_geno":"hierarchical_geno", @@ -27,7 +27,7 @@ # test other condition growth and transformation { "condition_growth":"linear", - "transformation":"logit_norm", + "transformation":"mixture", "theta":"categorical_geno", "growth_transition":"memory", "dk_geno":"fixed", @@ -38,7 +38,7 @@ # test other transition and transformation { "condition_growth":"power", - "transformation":"logit_norm", + "transformation":"mixture", "theta":"hill_geno", "growth_transition":"baranyi", "activity":"fixed", diff --git a/tests/smoke-tests/test_posteriors_smoke.py b/tests/smoke-tests/test_posteriors_smoke.py index a3a29d93..dafbf956 100644 --- a/tests/smoke-tests/test_posteriors_smoke.py +++ b/tests/smoke-tests/test_posteriors_smoke.py @@ -21,7 +21,7 @@ def test_checkpoint_and_posterior_smoke(growth_smoke_csv, growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, condition_growth="linear", - transformation="logit_norm", + transformation="mixture", theta="hill_geno", batch_size=None ) @@ -82,7 +82,7 @@ def test_extract_parameters_smoke(growth_smoke_csv, growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, theta="hill_geno", - transformation="logit_norm" + transformation="mixture" ) inference = RunInference(model=model, seed=42) @@ -106,7 +106,7 @@ def test_extract_parameters_smoke(growth_smoke_csv, param_dfs = extract_parameters(model, posterior_file) assert "hill_n" in param_dfs assert "activity" in param_dfs - assert "lam" in param_dfs # for logit_norm/empirical + assert "lam" in param_dfs # for mixture # Verify they are DataFrames import pandas as pd diff --git a/tests/smoke-tests/test_prediction_smoke.py b/tests/smoke-tests/test_prediction_smoke.py index f5951fd9..1c22c4a0 100644 --- a/tests/smoke-tests/test_prediction_smoke.py +++ b/tests/smoke-tests/test_prediction_smoke.py @@ -21,7 +21,7 @@ def test_prediction_smoke(growth_smoke_csv, growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, theta="hill_geno", - transformation="logit_norm" + transformation="mixture" ) inference = RunInference(model=model, seed=42) @@ -73,7 +73,8 @@ def test_prediction_smoke(growth_smoke_csv, assert "q0.975" in pred_df.columns # 3. Test expansion restriction for plated dimensions - # 'logit_norm' plates on titrant_conc, so expanding it should fail. + # The default theta_growth_noise (logit_normal) plates on titrant_conc, + # so expanding it should fail. with pytest.raises(ValueError, match="is plated on .* and cannot be expanded"): predict( model, @@ -84,17 +85,12 @@ def test_prediction_smoke(growth_smoke_csv, with pytest.raises(ValueError, match="is plated on .* and cannot be expanded"): # 4. Test categorical theta restriction (as requested) - # Create model with categorical theta. transformation must be - # something other than the default "empirical": categorical_geno - # cannot supply the full-population theta reference "empirical" - # needs (see model_orchestrator._check_theta_transformation_compatibility), - # and that's a separate concern from the conc-expansion restriction - # this block is testing. + # Create model with categorical theta (plated on titrant_conc). model_cat = ModelOrchestrator( growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, theta="categorical_geno", - transformation="logit_norm" + transformation="mixture" ) # Generate a valid posterior file for model_cat diff --git a/tests/smoke-tests/test_run_growth_analysis_smoke.py b/tests/smoke-tests/test_run_growth_analysis_smoke.py index e1d69499..ca4a15df 100644 --- a/tests/smoke-tests/test_run_growth_analysis_smoke.py +++ b/tests/smoke-tests/test_run_growth_analysis_smoke.py @@ -30,7 +30,7 @@ def test_run_growth_analysis_smoke(growth_smoke_csv, binding_smoke_csv, tmpdir): growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, condition_growth="linear", - transformation="logit_norm", + transformation="mixture", theta="hill_geno", batch_size=None ) @@ -89,7 +89,7 @@ def test_run_growth_analysis_nuts_smoke(growth_smoke_csv, binding_smoke_csv, tmp growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, condition_growth="linear", - transformation="logit_norm", + transformation="mixture", theta="hill_geno", batch_size=None, ) @@ -144,7 +144,7 @@ def test_run_growth_analysis_nuts_posterior_smoke(growth_smoke_csv, binding_smok growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, condition_growth="linear", - transformation="logit_norm", + transformation="mixture", theta="hill_geno", batch_size=None, ) diff --git a/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py b/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py index 4e6522a5..15d2e60c 100644 --- a/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py +++ b/tests/tfscreen/tfmodel/analysis/test_extract_parameters_congression.py @@ -9,7 +9,7 @@ def mock_model_congression(): """Create a ModelOrchestrator instance with minimal mocked internals for congression.""" model = MagicMock(spec=ModelOrchestrator) - model._transformation = "logit_norm" + model._transformation = "mixture" model._theta = "none" model._condition_growth = "none" model._dk_geno = "none" @@ -39,38 +39,22 @@ def mock_posteriors_congression(): """Create mock posterior samples for congression parameters.""" num_samples = 5 # lam is (num_samples, 1) - # mu, sigma are (num_samples, num_titrant_name, num_titrant_conc, 1) - # flattened: (num_samples, num_titrant_name * num_titrant_conc) return { "transformation_lam": np.ones((num_samples, 1)) * 1.2, - "transformation_mu": np.ones((num_samples, 1, 2, 1)) * 0.5, - "transformation_sigma": np.ones((num_samples, 1, 2, 1)) * 0.1 } def test_extract_parameters_congression(mock_model_congression, mock_posteriors_congression): - """Test extracting lam, mu, and sigma.""" + """The mixture transformation's only parameter is lambda.""" params = extract_parameters(mock_model_congression, mock_posteriors_congression) - + assert "lam" in params - assert "mu" in params - assert "sigma" in params - - # Check lam + assert "mu" not in params + assert "sigma" not in params + lam_df = params["lam"] assert len(lam_df) == 1 assert lam_df.iloc[0]["parameter"] == "lam" assert lam_df.iloc[0]["q0.5"] == 1.2 - - # Check mu - mu_df = params["mu"] - assert len(mu_df) == 2 - assert set(mu_df["titrant_conc"]) == {0.0, 1.0} - assert np.allclose(mu_df["q0.5"], 0.5) - - # Check sigma - sigma_df = params["sigma"] - assert len(sigma_df) == 2 - assert np.allclose(sigma_df["q0.5"], 0.1) def test_extract_parameters_no_congression(mock_model_congression): """Test that congression parameters are NOT extracted when transformation is none.""" diff --git a/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py b/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py index f32ce2e5..2b3297a7 100644 --- a/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py +++ b/tests/tfscreen/tfmodel/analysis/test_extraction_robustness.py @@ -310,17 +310,13 @@ def test_extract_parameters_h5_file(mock_model, tmp_path): h5_path = os.path.join(tmp_path, "params.h5") # We need a model config that actually extracts something - mock_model._transformation = "logit_norm" + mock_model._transformation = "mixture" with h5py.File(h5_path, "w") as f: f.create_dataset("transformation_lam", data=np.random.rand(10, 1)) - # shape for mu/sigma is (num_samples, num_titrant_name, num_titrant_conc, 1) - f.create_dataset("transformation_mu", data=np.random.rand(10, 1, 1, 1)) - f.create_dataset("transformation_sigma", data=np.random.rand(10, 1, 1, 1)) - + params = extract_parameters(mock_model, h5_path) assert "lam" in params - assert "mu" in params def test_extract_theta_curves_hdf5_path(mock_model, tmp_path): """Test extract_theta_curves loading from an HDF5 file path.""" diff --git a/tests/tfscreen/tfmodel/analysis/test_prediction.py b/tests/tfscreen/tfmodel/analysis/test_prediction.py index 40f2a725..a6c50ab9 100644 --- a/tests/tfscreen/tfmodel/analysis/test_prediction.py +++ b/tests/tfscreen/tfmodel/analysis/test_prediction.py @@ -11,7 +11,7 @@ copy_orchestrator, _convert_map_params, _align_site_to_tm_dims, - _build_population_theta_reference, + _build_population_references, predict, ) @@ -51,12 +51,12 @@ def dummy_orchestrator(): "theta_std": [0.01, 0.01] }) - # transformation='empirical' (rather than the 'single' default) is load- - # bearing for TestGenotypeSubsetPopulationReference below, which relies - # on NEEDS_FULL_POPULATION_THETA=True. + # transformation='mixture' (rather than the 'single' default) is load- + # bearing for TestPredictPopulationReferenceThreading below, which relies + # on NEEDS_POPULATION=True. return ModelOrchestrator( growth_df, binding_df, - transformation="empirical", transformation_lambda=(0.36, 0.05), + transformation="mixture", transformation_lambda=(0.36, 0.05), ) def test_copy_orchestrator_defaults(dummy_orchestrator): @@ -504,6 +504,11 @@ def __call__(self, rng_key, **kwargs): for name, site in model_tr.items() if site["type"] == "sample" and not site.get("is_observed", False) } + # The mixture transformation also reads library-wide deterministic + # sites from the posterior. + for site in ("theta_growth_pred", "dk_geno", "activity"): + fake_posteriors[site] = np.asarray( + model_tr[site]["value"])[np.newaxis, ...] predict( dummy_orchestrator, @@ -523,56 +528,119 @@ def __call__(self, rng_key, **kwargs): # --------------------------------------------------------------------------- -# _build_population_theta_reference +# _build_population_references # --------------------------------------------------------------------------- -class TestBuildPopulationThetaReference: - - def test_returns_none_and_warns_when_theta_growth_pred_missing(self): - """MAP checkpoints store guide params, not deterministic sites, so - theta_growth_pred won't be present -- must warn and return None - rather than raising, so predict() can still run (without the fix).""" - with pytest.warns(UserWarning, match="theta_growth_pred"): - result = _build_population_theta_reference({"some_other_param": np.zeros((5,))}) - assert result is None - - def test_reduces_across_sample_axis_via_median(self): - """With more samples than max_samples, the result must be the median - over only the first max_samples draws, with the sample axis removed.""" - # Shape (10, 2, 3): 10 samples, 2x3 spatial. +def _fake_posteriors(orchestrator, num_draws=1): + """ + Fake posterior with ``num_draws`` identical draws: every latent sample + site and the theta_growth_pred/dk_geno/activity deterministic sites, all + from one full-batch prior trace (library order), so they are mutually + consistent. + """ + from numpyro.handlers import seed, trace as nptrace + + data = orchestrator.get_batch( + orchestrator.data, jnp.arange(orchestrator.data.num_genotype)) + model_tr = nptrace(seed(orchestrator.jax_model, rng_seed=0)).get_trace( + data=data, priors=orchestrator.priors) + posteriors = { + name: np.repeat(np.asarray(site["value"])[np.newaxis, ...], + num_draws, axis=0) + for name, site in model_tr.items() + if site["type"] == "sample" and not site.get("is_observed", False) + } + for site in ("theta_growth_pred", "dk_geno", "activity"): + posteriors[site] = np.repeat( + np.asarray(model_tr[site]["value"])[np.newaxis, ...], + num_draws, axis=0) + return posteriors + + +def _pred_growth(orchestrator, **kwargs): + new = copy_orchestrator(orchestrator, **kwargs) + return new.get_batch(new.data, + jnp.arange(new.data.num_genotype)).growth + + +class TestBuildPopulationReferences: + + def test_shapes_cover_the_whole_library(self, dummy_orchestrator): + refs = _build_population_references( + dummy_orchestrator, _fake_posteriors(dummy_orchestrator), + _pred_growth(dummy_orchestrator, genotypes=["wt"])) + num_genotype = dummy_orchestrator.data.growth.num_genotype + for field in ("external_theta_population", "external_dk_population", + "external_activity_population"): + assert refs[field].shape[-1] == num_genotype + + def test_theta_at_fit_grid_matches_stored_theta(self, dummy_orchestrator): + """On the fit's own grid, theta rebuilt from the parameters equals + the stored theta_growth_pred.""" + posteriors = _fake_posteriors(dummy_orchestrator) + refs = _build_population_references( + dummy_orchestrator, posteriors, _pred_growth(dummy_orchestrator)) + np.testing.assert_allclose( + np.asarray(refs["external_theta_population"]), + posteriors["theta_growth_pred"][0], rtol=1e-5) + + def test_theta_follows_the_prediction_grid(self, dummy_orchestrator): + """Predicting at new concentrations needs co-resident theta at those + concentrations, not the fit's.""" + pred_growth = _pred_growth(dummy_orchestrator, + titrant_conc=[0.0, 0.25, 0.5, 2.0]) + refs = _build_population_references( + dummy_orchestrator, _fake_posteriors(dummy_orchestrator), + pred_growth) + assert refs["external_theta_population"].shape[-2] == 4 + + def test_median_over_first_max_samples(self, dummy_orchestrator): + posteriors = _fake_posteriors(dummy_orchestrator, num_draws=10) rng = np.random.default_rng(0) - theta_growth_pred = rng.uniform(size=(10, 2, 3)) - fake_posteriors = {"theta_growth_pred": theta_growth_pred} - - result = _build_population_theta_reference(fake_posteriors, max_samples=4) - - expected = np.median(theta_growth_pred[:4], axis=0) - assert result.shape == (2, 3) - assert jnp.allclose(result, expected) - - def test_uses_all_samples_when_fewer_than_max(self): - theta_growth_pred = np.arange(2 * 4).reshape(2, 4).astype(float) # (2 samples, 4 genotypes) - fake_posteriors = {"theta_growth_pred": theta_growth_pred} - - result = _build_population_theta_reference(fake_posteriors, max_samples=20) - - expected = np.median(theta_growth_pred, axis=0) - assert jnp.allclose(result, expected) + posteriors["dk_geno"] = rng.normal(size=posteriors["dk_geno"].shape) + refs = _build_population_references( + dummy_orchestrator, posteriors, _pred_growth(dummy_orchestrator), + max_samples=4) + np.testing.assert_allclose( + np.asarray(refs["external_dk_population"]), + np.median(posteriors["dk_geno"][:4], axis=0), rtol=1e-6) + + @pytest.mark.parametrize("site", ["dk_geno", "activity"]) + def test_missing_site_raises(self, dummy_orchestrator, site): + """A raw MAP checkpoint has no deterministic sites: refuse, pointing + to tfs-sample-posterior, rather than predict without a background.""" + posteriors = _fake_posteriors(dummy_orchestrator) + posteriors.pop(site) + with pytest.raises(ValueError, match="tfs-sample-posterior"): + _build_population_references(dummy_orchestrator, posteriors, + _pred_growth(dummy_orchestrator)) + + def test_predict_refuses_raw_map_checkpoint(self, dummy_orchestrator): + posteriors = _fake_posteriors(dummy_orchestrator) + posteriors.pop("dk_geno") + with pytest.raises(ValueError, match="tfs-sample-posterior"): + predict(dummy_orchestrator, posteriors, + predict_sites=["growth_pred"], num_samples=None) + + def test_wrong_genotype_count_raises(self, dummy_orchestrator): + posteriors = _fake_posteriors(dummy_orchestrator) + posteriors["dk_geno"] = posteriors["dk_geno"][..., :1] + with pytest.raises(ValueError, match="whole library"): + _build_population_references(dummy_orchestrator, posteriors, + _pred_growth(dummy_orchestrator)) # --------------------------------------------------------------------------- -# predict() threading of the population reference through genotype subsets +# predict() threading of the population references through genotype subsets # --------------------------------------------------------------------------- class TestPredictPopulationReferenceThreading: """ - Verify predict() builds a full-population theta reference and threads it - into pred_data whenever the configured transformation needs one (see - generative/model.py / transformation/_congression.py), and that a - genotype-subset request still gets a reference sized to the *true* full - population, not the requested subset -- this is the core mechanism that - fixes the wt/congression bug (predict() previously only ever saw whatever - genotype subset was requested). + predict() must thread library-wide theta/dk_geno/activity references and + the fitted model's co-resident sets into pred_data whenever the + transformation needs them (the mixture), and a genotype-subset request + must still get references sized to the whole library and co-resident + indices into that library, not the requested subset. """ def _capture_pred_data(self, mocker): @@ -597,64 +665,55 @@ def __call__(self, rng_key, **kwargs): ) return captured - def _fake_posteriors_with_theta_growth_pred(self, orchestrator): - """Build a 1-sample fake posterior dict covering every latent sample - site (as in TestPredictPriorsPropagate) plus the theta_growth_pred - deterministic site, so _build_population_theta_reference has - something to read.""" - from numpyro.handlers import seed, trace as nptrace + def _fake_posteriors(self, orchestrator): + return _fake_posteriors(orchestrator) - seeded = seed(orchestrator.jax_model, rng_seed=0) - model_tr = nptrace(seeded).get_trace( - data=orchestrator.data, - priors=orchestrator.priors, - ) - fake_posteriors = { - name: _feasible_draw(site) - for name, site in model_tr.items() - if site["type"] == "sample" and not site.get("is_observed", False) - } - fake_posteriors["theta_growth_pred"] = np.asarray( - model_tr["theta_growth_pred"]["value"] - )[np.newaxis, ...] - return fake_posteriors - - def test_genotype_subset_still_gets_full_population_sized_reference( + def test_genotype_subset_gets_library_references_and_sets( self, dummy_orchestrator, mocker): - """dummy_orchestrator uses theta='hill_geno', - transformation='empirical' (NEEDS_FULL_POPULATION_THETA=True). - Requesting a single genotype must still populate - pred_data.growth.external_theta_population with the FULL genotype - count (2 in this fixture), not 1.""" - fake_posteriors = self._fake_posteriors_with_theta_growth_pred(dummy_orchestrator) + fake_posteriors = self._fake_posteriors(dummy_orchestrator) captured = self._capture_pred_data(mocker) - predict( - dummy_orchestrator, - fake_posteriors, - predict_sites=["growth_pred"], - num_samples=None, - genotypes=["wt"], - ) - - pred_data = captured["data"] - assert pred_data is not None - population = pred_data.growth.external_theta_population - assert population is not None - - true_num_genotype = dummy_orchestrator.data.growth.num_genotype - assert population.shape[-1] == true_num_genotype - assert true_num_genotype > 1, ( - "fixture must have more than one genotype for this test to be meaningful" - ) + predict(dummy_orchestrator, fake_posteriors, + predict_sites=["growth_pred"], num_samples=None, + genotypes=["wt"]) + + growth = captured["data"].growth + num_genotype = dummy_orchestrator.data.growth.num_genotype + assert num_genotype > 1 + for field in ("external_theta_population", "external_dk_population", + "external_activity_population"): + assert getattr(growth, field).shape[-1] == num_genotype + + labels = list(dummy_orchestrator.growth_tm.tensor_dim_labels[-1]) + wt_row = labels.index("wt") + np.testing.assert_array_equal( + np.asarray(growth.coresident_idx), + np.asarray(dummy_orchestrator.data.growth.coresident_idx)[[wt_row]]) + + def test_subset_prediction_matches_full_prediction(self, dummy_orchestrator): + """A genotype's prediction must not depend on which other genotypes + were requested.""" + fake_posteriors = self._fake_posteriors(dummy_orchestrator) + full = predict(dummy_orchestrator, fake_posteriors, + predict_sites=["growth_pred"], num_samples=None) + subset = predict(dummy_orchestrator, fake_posteriors, + predict_sites=["growth_pred"], num_samples=None, + genotypes=["wt"]) + + keys = ["genotype", "titrant_conc", "t_sel"] + full_wt = (full[full["genotype"] == "wt"] + .sort_values(keys).reset_index(drop=True)) + subset = subset.sort_values(keys).reset_index(drop=True) + q_cols = [c for c in subset.columns if c.startswith("q")] + np.testing.assert_allclose(subset[q_cols].to_numpy(dtype=float), + full_wt[q_cols].to_numpy(dtype=float), + rtol=1e-5) def test_no_population_reference_when_transformation_does_not_need_one( self, mocker): - """With transformation='single' (NEEDS_FULL_POPULATION_THETA=False), - predict() must not build or thread a population reference at all -- - pred_data.growth.external_theta_population must stay None, and no - 'theta_growth_pred not found' warning should fire even when it truly - isn't in the posterior dict.""" + """With transformation='single' (NEEDS_POPULATION=False), predict() + must not build or thread population references at all -- they stay + None, and nothing is required of the posterior dict.""" growth_df = pd.DataFrame({ "library": ["lib"] * 4, "genotype": ["wt", "wt", "M42V", "M42V"], diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test_full_population_contract.py b/tests/tfscreen/tfmodel/generative/components/theta/test_full_population_contract.py index 9bb64aa7..62cf426f 100644 --- a/tests/tfscreen/tfmodel/generative/components/theta/test_full_population_contract.py +++ b/tests/tfscreen/tfmodel/generative/components/theta/test_full_population_contract.py @@ -1,17 +1,14 @@ """ Cross-component API-contract test for theta components used with -transformation="empirical". - -The congression correction (transformation/_congression.py) needs a theta -reference covering the *full* genotype population, not just whatever -genotypes are active in the current forward pass. generative/model.py -gets this "for free" for hill_mut, hill_geno, and the thermo.* components by -re-calling run_model with batch_idx = geno_theta_idx = arange(num_genotype) -against the already-full-size ThetaParam these components assemble in -define_model/guide (see model_orchestrator._THETA_MODELS_INCOMPATIBLE_WITH_EMPIRICAL -and model_orchestrator._check_theta_transformation_compatibility for the one -component, categorical_geno, that does not yet satisfy this contract and is -rejected outright rather than silently mishandled). +transformation="mixture". + +The congression mixture (transformation/mixture.py) looks co-resident +genotypes up in a theta population covering the *full* library, not just the +genotypes active in the current forward pass. generative/model.py builds it +by re-calling run_model with batch_idx = geno_theta_idx = arange(num_genotype) +against the full-size ThetaParam each component assembles in +define_model/guide. Every theta component now satisfies this (categorical_geno +since step 3.3a); test_population_theta.py checks it registry-wide. This test locks in the contract for the components that DO support it: run_model(theta_param, subset_data) must equal diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py b/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py index 7d269d7b..a66071be 100644 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py +++ b/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py @@ -1,9 +1,9 @@ -import pytest +""" +Tests for the expected-maximum theta operator (``_congression.update_thetas``), +kept for Stage 1.5 of tfs-fit-genotypes. The registered transformation +components are tested in test_single.py and test_mixture.py. +""" import jax.numpy as jnp -import numpy as np -import numpyro -from numpyro import distributions as dist -from unittest.mock import MagicMock, patch from tfscreen.tfmodel.generative.components.transformation import ( _congression as transformation_congression, @@ -187,143 +187,3 @@ def test_update_thetas_population_theta_ignored_for_logit_norm(): population_theta=jnp.array([[0.99, 0.99, 0.99]])) assert jnp.allclose(res_without, res_with) - - -# ------------------------------------------------------------------------- -# Model Interface -# ------------------------------------------------------------------------- - -def test_getters(): - """Test get_hyperparameters, get_guesses, get_priors.""" - params = transformation_congression.get_hyperparameters() - assert "lam_loc" in params - assert "mu_anchoring_scale" in params - assert "sigma_anchoring_scale" in params - - guesses = transformation_congression.get_guesses("test", MagicMock()) - assert "test_lam" in guesses - assert "test_mu" in guesses - assert "test_sigma" in guesses - - priors = transformation_congression.get_priors() - assert isinstance(priors, transformation_congression.ModelPriors) - - -# ------------------------------------------------------------------------- -# lam_mean/lam_std -- experimentally measured lambda moment-matching -# ------------------------------------------------------------------------- - -def test_get_hyperparameters_placeholder_default(): - """With no lam_mean/lam_std, a weakly-informative placeholder is used -- - never a specific 'real' experimental value (that would be misleading - now that the real value must be supplied explicitly by the caller).""" - params = transformation_congression.get_hyperparameters() - assert params["lam_loc"] == 0.0 - assert params["lam_scale"] == 1.0 - - -def test_get_hyperparameters_moment_matching(): - """lam_mean/lam_std (linear space) must moment-match onto the - LogNormal's underlying-Normal parameters, i.e. the resulting - LogNormal(lam_loc, lam_scale) has the requested arithmetic mean/std.""" - lam_mean, lam_std = 0.3572, 0.13 - params = transformation_congression.get_hyperparameters( - lam_mean=lam_mean, lam_std=lam_std) - - lam_loc = params["lam_loc"] - lam_scale = params["lam_scale"] - - # Analytic mean/variance of a LogNormal(loc, scale). - implied_mean = np.exp(lam_loc + lam_scale**2 / 2.0) - implied_var = (np.exp(lam_scale**2) - 1.0) * np.exp(2 * lam_loc + lam_scale**2) - - assert np.isclose(implied_mean, lam_mean) - assert np.isclose(implied_var, lam_std**2) - - -def test_get_hyperparameters_requires_both_lam_mean_and_lam_std(): - """A lone lam_mean or lam_std (without its partner) is ambiguous and - must raise rather than silently guessing the other.""" - with pytest.raises(ValueError, match="together"): - transformation_congression.get_hyperparameters(lam_mean=0.36) - with pytest.raises(ValueError, match="together"): - transformation_congression.get_hyperparameters(lam_std=0.05) - - -@pytest.mark.parametrize("lam_mean,lam_std", [(0.0, 0.1), (-0.1, 0.1), (0.36, 0.0), (0.36, -0.1)]) -def test_get_hyperparameters_rejects_nonpositive_lam(lam_mean, lam_std): - """lam_mean and lam_std must both be strictly positive (LogNormal support).""" - with pytest.raises(ValueError): - transformation_congression.get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std) - - -def test_get_guesses_uses_lam_mean_as_guess(): - """When lam_mean is supplied, it becomes the initial guess directly - (rather than the old hardcoded 0.3572).""" - guesses = transformation_congression.get_guesses("test", MagicMock(), lam_mean=0.5) - assert guesses["test_lam"] == 0.5 - - -def test_get_guesses_placeholder_without_lam_mean(): - guesses = transformation_congression.get_guesses("test", MagicMock()) - assert guesses["test_lam"] == 1.0 - - -def test_get_priors_forwards_lam_mean_std(): - priors = transformation_congression.get_priors(lam_mean=0.3572, lam_std=0.13) - assert isinstance(priors, transformation_congression.ModelPriors) - expected = transformation_congression.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) - assert priors.lam_loc == expected["lam_loc"] - assert priors.lam_scale == expected["lam_scale"] - -def test_define_model(): - """Test Numpyro model definition with plates.""" - priors = transformation_congression.get_priors() - data = MagicMock() - data.num_titrant_name = 2 - data.num_titrant_conc = 3 - - # Run with seeded handler - with numpyro.handlers.seed(rng_seed=0): - # Without anchors - lam, mu, sigma = transformation_congression.define_model("test", data, priors) - assert lam.shape == () - assert mu.shape == (2, 3, 1) - - # With anchors - anchors = (jnp.zeros((2, 3, 1)), jnp.ones((2, 3, 1))) - lam2, mu2, sigma2 = transformation_congression.define_model("test_anc", data, priors, anchors=anchors) - assert mu2.shape == (2, 3, 1) - - -def test_guide(): - """Test Numpyro guide definition with plates.""" - priors = transformation_congression.get_priors() - data = MagicMock() - data.num_titrant_name = 2 - data.num_titrant_conc = 3 - - # Run with seeded handler and trace to check params - with numpyro.handlers.seed(rng_seed=0): - with numpyro.handlers.trace() as tr: - lam, mu, sigma = transformation_congression.guide("test", data, priors) - - assert "test_mu_loc" in tr - assert tr["test_mu_loc"]['value'].shape == (2, 3, 1) - - assert mu.shape == (2, 3, 1) - assert sigma.shape == (2, 3, 1) - - # Run with empirical mode - priors_emp = transformation_congression.ModelPriors(0.0, 0.1, 0.5, 0.2, mode="empirical") - with numpyro.handlers.seed(rng_seed=2): - res_emp = transformation_congression.guide("test_emp", data, priors_emp) - assert len(res_emp) == 1 - assert res_emp[0].shape == () - - # Run with anchors to hit line 334 - with numpyro.handlers.seed(rng_seed=1): - anchors = (jnp.zeros((2, 3, 1)), jnp.ones((2, 3, 1))) - lam_anc, mu_anc, sigma_anc = transformation_congression.guide("test_anc", data, priors, anchors=anchors) - assert mu_anc.shape == (2, 3, 1) - diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py deleted file mode 100644 index 2faa2de8..00000000 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test_empirical.py +++ /dev/null @@ -1,75 +0,0 @@ -import pytest -import jax.numpy as jnp - -from tfscreen.tfmodel.generative.components.transformation import ( - empirical, - _congression as congression, -) - - -def test_get_hyperparameters_mode(): - params = empirical.get_hyperparameters() - assert params["mode"] == "empirical" - - -def test_needs_full_population_theta_flag(): - """Empirical mode's background CDF is built from raw genotype samples, so - it must request a population-wide theta reference from jax_model.""" - assert empirical.NEEDS_FULL_POPULATION_THETA is True - - -def test_get_priors_mode(): - priors = empirical.get_priors() - assert isinstance(priors, congression.ModelPriors) - assert priors.mode == "empirical" - - -def test_get_hyperparameters_forwards_lam_mean_std(): - params = empirical.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) - expected = congression.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) - assert params["lam_loc"] == expected["lam_loc"] - assert params["lam_scale"] == expected["lam_scale"] - assert params["mode"] == "empirical" - - -def test_get_priors_forwards_lam_mean_std(): - priors = empirical.get_priors(lam_mean=0.3572, lam_std=0.13) - assert priors.mode == "empirical" - expected = congression.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) - assert priors.lam_loc == expected["lam_loc"] - assert priors.lam_scale == expected["lam_scale"] - - -def test_update_thetas_bound_with_empirical(): - """Pre-bound update_thetas should invoke empirical path taking only (lam,).""" - theta = jnp.array([[0.1, 0.5, 0.9]]) - lam = 1.0 - result = empirical.update_thetas(theta, params=(lam,)) - assert result.shape == theta.shape - # Congression correction must push occupancies upward (or keep them equal). - assert jnp.all(result >= theta - 1e-5) - - -def test_update_thetas_uses_empirical_not_logit_norm(): - """empirical.update_thetas must use the empirical CDF path. - - With the same lambda but a very skewed logit_norm background (high mu, - large sigma), the empirical correction based on the actual theta distribution - will differ from the logit_norm correction. This confirms that the baked-in - theta_dist="empirical" is honoured and not silently overridden. - """ - from tfscreen.tfmodel.generative.components.transformation import logit_norm - - theta = jnp.array([[0.1, 0.3, 0.5, 0.7, 0.9]]) - lam = 2.0 - - result_emp = empirical.update_thetas(theta, params=(lam,)) - - # logit_norm requires (lam, mu, sigma); use extreme params to ensure divergence. - # mu/sigma shape: (batch_dim, 1) matching theta.shape[0]. - mu = jnp.array([[5.0]]) - sigma = jnp.array([[0.5]]) - result_ln = logit_norm.update_thetas(theta, params=(lam, mu, sigma)) - - # The two corrections should differ for at least one element. - assert not jnp.allclose(result_emp, result_ln, atol=1e-3) diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py deleted file mode 100644 index 4d5bdb7c..00000000 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test_logit_norm.py +++ /dev/null @@ -1,73 +0,0 @@ -import pytest -import jax.numpy as jnp -import numpyro - -from tfscreen.tfmodel.generative.components.transformation import ( - logit_norm, - _congression as congression, -) - - -def test_get_hyperparameters_mode(): - params = logit_norm.get_hyperparameters() - assert params["mode"] == "logit_norm" - - -def test_needs_full_population_theta_flag(): - """logit_norm's background CDF is the smooth analytic (mu, sigma) family, - not raw samples, so it must not request a population-wide theta reference.""" - assert logit_norm.NEEDS_FULL_POPULATION_THETA is False - - -def test_get_priors_mode(): - priors = logit_norm.get_priors() - assert isinstance(priors, congression.ModelPriors) - assert priors.mode == "logit_norm" - - -def test_get_hyperparameters_forwards_lam_mean_std(): - params = logit_norm.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) - expected = congression.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) - assert params["lam_loc"] == expected["lam_loc"] - assert params["lam_scale"] == expected["lam_scale"] - assert params["mode"] == "logit_norm" - - -def test_get_priors_forwards_lam_mean_std(): - priors = logit_norm.get_priors(lam_mean=0.3572, lam_std=0.13) - assert priors.mode == "logit_norm" - expected = congression.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) - assert priors.lam_loc == expected["lam_loc"] - assert priors.lam_scale == expected["lam_scale"] - - -def test_update_thetas_bound_with_logit_norm(): - """Pre-bound update_thetas should invoke logit_norm path without theta_dist arg.""" - theta = jnp.array([[0.2, 0.5, 0.8]]) - # mu/sigma shape: (batch_dim, 1) where batch_dim matches theta.shape[0]. - mu = jnp.array([[0.0]]) - sigma = jnp.array([[1.0]]) - lam = 1.0 - result = logit_norm.update_thetas(theta, params=(lam, mu, sigma)) - assert result.shape == theta.shape - # Congression correction must push occupancies upward (or keep them equal). - assert jnp.all(result >= theta - 1e-5) - - -def test_update_thetas_logit_norm_distinguishable_from_empirical(): - """logit_norm mode requires (lam, mu, sigma); empirical mode only (lam,).""" - theta = jnp.array([[0.3, 0.7]]) - lam = 0.5 - mu = jnp.array([[0.0]]) - sigma = jnp.array([[1.0]]) - - result_ln = logit_norm.update_thetas(theta, params=(lam, mu, sigma)) - - # empirical path would flatten mu/sigma as lam — passing only (lam,) should - # produce a different (empirical-based) correction. - from tfscreen.tfmodel.generative.components.transformation import empirical - result_emp = empirical.update_thetas(theta, params=(lam,)) - - # Both should have correct shape. - assert result_ln.shape == theta.shape - assert result_emp.shape == theta.shape diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py new file mode 100644 index 00000000..5676ea31 --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py @@ -0,0 +1,240 @@ +""" +Tests for the congression mixture transformation (transformation/mixture.py). +""" + +from types import SimpleNamespace +from unittest.mock import MagicMock + +import jax +import jax.numpy as jnp +import numpy as np +import numpyro +import pytest +from scipy.stats import poisson + +from tfscreen.tfmodel.generative.components.transformation import mixture + + +# --------------------------------------------------------------------------- +# Priors, guesses, define_model / guide +# --------------------------------------------------------------------------- + +def test_get_hyperparameters_placeholder_default(): + params = mixture.get_hyperparameters() + assert params == {"lam_loc": 0.0, "lam_scale": 1.0} + + +def test_get_hyperparameters_moment_matching(): + """(mean, std) in linear space moment-match the LogNormal.""" + lam_mean, lam_std = 0.3572, 0.13 + params = mixture.get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std) + loc, scale = params["lam_loc"], params["lam_scale"] + assert np.isclose(np.exp(loc + scale**2 / 2.0), lam_mean) + assert np.isclose((np.exp(scale**2) - 1.0) * np.exp(2 * loc + scale**2), + lam_std**2) + + +def test_get_hyperparameters_requires_both(): + with pytest.raises(ValueError, match="together"): + mixture.get_hyperparameters(lam_mean=0.36) + with pytest.raises(ValueError, match="together"): + mixture.get_hyperparameters(lam_std=0.05) + + +@pytest.mark.parametrize("lam_mean,lam_std", + [(0.0, 0.1), (-0.1, 0.1), (0.36, 0.0), (0.36, -0.1)]) +def test_get_hyperparameters_rejects_nonpositive(lam_mean, lam_std): + with pytest.raises(ValueError): + mixture.get_hyperparameters(lam_mean=lam_mean, lam_std=lam_std) + + +def test_get_guesses(): + assert mixture.get_guesses("t", MagicMock(), lam_mean=0.5) == {"t_lam": 0.5} + assert mixture.get_guesses("t", MagicMock()) == {"t_lam": 1.0} + + +def test_get_priors_forwards(): + priors = mixture.get_priors(lam_mean=0.3572, lam_std=0.13) + expected = mixture.get_hyperparameters(lam_mean=0.3572, lam_std=0.13) + assert priors.lam_loc == expected["lam_loc"] + assert priors.lam_scale == expected["lam_scale"] + + +def test_define_model_and_guide_sample_scalar_lambda(): + priors = mixture.get_priors() + with numpyro.handlers.seed(rng_seed=0): + with numpyro.handlers.trace() as tr: + lam = mixture.define_model("t", MagicMock(), priors) + assert jnp.shape(lam) == () + assert "t_lam" in tr and "t_lam_value" in tr + + with numpyro.handlers.seed(rng_seed=0): + with numpyro.handlers.trace() as tr: + lam = mixture.guide("t", MagicMock(), priors) + assert jnp.shape(lam) == () + assert "t_lam_loc" in tr and "t_lam_scale" in tr + + +def test_needs_population_flag(): + assert mixture.NEEDS_POPULATION is True + + +# --------------------------------------------------------------------------- +# Class weights +# --------------------------------------------------------------------------- + +def _counts(sets): + return jnp.array(np.concatenate([np.full(k, n) for n, k in + enumerate(sets, start=1)]), dtype=jnp.int32) + + +@pytest.mark.parametrize("sets", [[12, 3, 1], [16], [0, 4], [2, 0, 5]]) +@pytest.mark.parametrize("lam", [0.05, 0.357, 1.5]) +def test_weights_sum_to_one(sets, lam): + f = jnp.array([0.0, 0.3, 1.0]) + log_w = mixture._log_class_weights(jnp.array(lam), f, _counts(sets)) + np.testing.assert_allclose(np.exp(log_w).sum(axis=0), 1.0, rtol=1e-6) + + +@pytest.mark.parametrize("sets", [[12, 3, 1], [0, 4], [2, 0, 5]]) +def test_weights_match_poisson_over_strata(sets): + lam, f = 0.357, 0.8 + log_w = np.asarray(mixture._log_class_weights(jnp.array(lam), + jnp.array([f]), + _counts(sets)))[:, 0] + w_cong = f * (1.0 - np.exp(-lam)) + assert np.isclose(np.exp(log_w[0]), 1.0 - w_cong) + + present = [n for n, k in enumerate(sets, start=1) if k > 0] + pmf = poisson.pmf(present, lam) + pmf = dict(zip(present, pmf / pmf.sum())) + n_of_set = np.asarray(_counts(sets)) + expected = np.array([w_cong * pmf[n] / sets[n - 1] for n in n_of_set]) + np.testing.assert_allclose(np.exp(log_w[1:]), expected, rtol=1e-6) + + +def test_spike_only_genotype_has_no_congressed_cells_and_finite_gradient(): + f = jnp.array([0.0, 1.0]) + n = _counts([12, 3, 1]) + log_w = mixture._log_class_weights(jnp.array(0.357), f, n) + assert np.all(np.isneginf(np.asarray(log_w[1:, 0]))) + assert np.isclose(float(log_w[0, 0]), 0.0) + + def mix(lam): + growth = jnp.arange(log_w.shape[0], dtype=float)[:, None] * 0.1 + return jnp.sum(jax.scipy.special.logsumexp( + mixture._log_class_weights(lam, f, n) + growth, axis=0)) + + assert np.isfinite(float(jax.grad(mix)(jnp.array(0.357)))) + + +# --------------------------------------------------------------------------- +# cell_classes against an independent loop implementation +# --------------------------------------------------------------------------- + +def _toy(seed=0, num_genotype=6, num_tn=2, num_tc=3, + batch_idx=(4, 0, 2), sets=(3, 2, 1)): + rng = np.random.default_rng(seed) + batch_idx = np.array(batch_idx) + counts = np.asarray(_counts(list(sets))) + num_sets, n_max = len(counts), len(sets) + + coresident_idx = np.full((num_genotype, num_sets, n_max), -1) + for g in range(num_genotype): + for k, n in enumerate(counts): + coresident_idx[g, k, :n] = rng.integers(0, num_genotype, size=n) + + theta_pop = rng.uniform(0.05, 0.95, (1, 1, 1, 1, num_tn, num_tc, + num_genotype)) + activity_pop = rng.uniform(0.5, 2.0, num_genotype) + dk_pop = rng.normal(0.0, 0.01, num_genotype) + bulk_fraction = rng.uniform(0.0, 1.0, num_genotype) + bulk_fraction[batch_idx[1]] = 0.0 # a spike-only genotype + + data = SimpleNamespace(batch_idx=jnp.array(batch_idx), + bulk_fraction=jnp.array(bulk_fraction), + coresident_idx=jnp.array(coresident_idx), + coresident_n=jnp.array(counts)) + + # The batch's own values; theta perturbed (noise acts on the focal theta + # only), so the focal plasmid is not just its population value. + theta = theta_pop[..., batch_idx] * 0.9 + activity = activity_pop[batch_idx].reshape(1, 1, 1, 1, 1, 1, -1) + dk_geno = dk_pop[batch_idx].reshape(1, 1, 1, 1, 1, 1, -1) + return data, (theta, activity, dk_geno), (theta_pop, activity_pop, dk_pop) + + +def _reference_classes(data, focal, population, lam): + theta, activity, dk_geno = focal + theta_pop, activity_pop, dk_pop = population + batch_idx = np.asarray(data.batch_idx) + idx = np.asarray(data.coresident_idx) + counts = np.asarray(data.coresident_n) + num_b, num_k = len(batch_idx), idx.shape[1] + num_tn, num_tc = theta.shape[4], theta.shape[5] + + c_theta = np.zeros((1 + num_k, num_tn, num_tc, num_b)) + c_act = np.zeros_like(c_theta) + c_dk = np.zeros((1 + num_k, num_b)) + c_theta[0] = theta[0, 0, 0, 0] + c_act[0] = activity[0, 0, 0, 0, 0, 0][None, None, :] + c_dk[0] = dk_geno.reshape(-1) + + for b, g in enumerate(batch_idx): + for k in range(num_k): + co = [h for h in idx[g, k] if h >= 0] + for i in range(num_tn): + for j in range(num_tc): + values = [theta[0, 0, 0, 0, i, j, b]] + \ + [theta_pop[0, 0, 0, 0, i, j, h] for h in co] + acts = [activity.reshape(-1)[b]] + \ + [activity_pop[h] for h in co] + best = int(np.argmax(values)) + c_theta[1 + k, i, j, b] = values[best] + c_act[1 + k, i, j, b] = acts[best] + c_dk[1 + k, b] = np.mean([dk_geno.reshape(-1)[b]] + + [dk_pop[h] for h in co]) + + f = np.asarray(data.bulk_fraction)[batch_idx] + w_cong = f * (1.0 - np.exp(-lam)) + present = sorted(set(counts)) + pmf = poisson.pmf(present, lam) + pmf = dict(zip(present, pmf / pmf.sum())) + per_stratum = {n: int(np.sum(counts == n)) for n in present} + w = np.zeros((1 + num_k, num_b)) + w[0] = 1.0 - w_cong + for k, n in enumerate(counts): + w[1 + k] = w_cong * pmf[n] / per_stratum[n] + + return c_theta, c_act, c_dk, w + + +def test_cell_classes_match_reference(): + data, focal, population = _toy() + lam = 0.357 + classes = mixture.cell_classes(focal, population, jnp.array(lam), data) + c_theta, c_act, c_dk, w = _reference_classes(data, focal, population, lam) + + num_classes = c_theta.shape[0] + assert classes.theta.shape == (num_classes, 1, 1, 1, 1) + c_theta.shape[1:] + np.testing.assert_allclose(np.asarray(classes.theta)[:, 0, 0, 0, 0], + c_theta, rtol=1e-6) + np.testing.assert_allclose(np.asarray(classes.activity)[:, 0, 0, 0, 0], + c_act, rtol=1e-6) + np.testing.assert_allclose( + np.asarray(classes.dk_geno).reshape(num_classes, -1), c_dk, + rtol=1e-6, atol=1e-9) + np.testing.assert_allclose( + np.exp(np.asarray(classes.log_weight)).reshape(num_classes, -1), w, + rtol=1e-5, atol=1e-12) + + +def test_cell_classes_mixture_reduces_to_clean_as_lambda_vanishes(): + """As lambda -> 0 every cell is clean: the mixed growth is the clean + class's, whatever the congressed classes' growth.""" + data, focal, population = _toy() + classes = mixture.cell_classes(focal, population, jnp.array(1e-8), data) + growth = jnp.arange(classes.log_weight.shape[0], dtype=float).reshape( + -1, *([1] * (classes.log_weight.ndim - 1))) + mixed = jax.scipy.special.logsumexp(classes.log_weight + growth, axis=0) + np.testing.assert_allclose(np.asarray(mixed), 0.0, atol=1e-6) diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py index 8d13b492..1c05d9d5 100644 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py +++ b/tests/tfscreen/tfmodel/generative/components/transformation/test_single.py @@ -1,10 +1,9 @@ -import pytest import jax.numpy as jnp +import numpy as np from unittest.mock import MagicMock -from collections import namedtuple from tfscreen.tfmodel.generative.components.transformation import single as transformation_single -from tfscreen.tfmodel.data_class import GrowthData + def test_get_hyperparameters(): """Verify get_hyperparameters returns empty dict.""" @@ -12,41 +11,41 @@ def test_get_hyperparameters(): assert params == {} assert isinstance(params, dict) + def test_get_guesses(): """Verify get_guesses returns empty dict.""" guesses = transformation_single.get_guesses("test", MagicMock()) assert guesses == {} assert isinstance(guesses, dict) + def test_get_priors(): """Verify get_priors returns a ModelPriors instance.""" priors = transformation_single.get_priors() assert isinstance(priors, transformation_single.ModelPriors) -def test_define_model(): - """Verify define_model returns 1.0, 1.0, 1.0.""" - res = transformation_single.define_model("test", MagicMock(), MagicMock()) - assert res == (1.0, 1.0, 1.0) - -def test_guide(): - """Verify guide returns 1.0, 1.0, 1.0.""" - res = transformation_single.guide("test", MagicMock(), MagicMock()) - assert res == (1.0, 1.0, 1.0) - -def test_update_thetas(): - """Verify update_thetas acts as a pass-through.""" - theta = jnp.array([0.1, 0.5, 0.9]) - - # Standard call - res = transformation_single.update_thetas(theta, params=(1.0, 1.0, 1.0)) - assert jnp.array_equal(res, theta) - - # With different params - res2 = transformation_single.update_thetas(theta, params=(100.0, 5.0, 0.1)) - assert jnp.array_equal(res2, theta) - - -def test_needs_full_population_theta_flag(): - """Single-plasmid mode applies no congression correction at all, so it - must not request a population-wide theta reference.""" - assert transformation_single.NEEDS_FULL_POPULATION_THETA is False + +def test_define_model_and_guide_have_no_parameters(): + assert transformation_single.define_model("test", MagicMock(), MagicMock()) is None + assert transformation_single.guide("test", MagicMock(), MagicMock()) is None + + +def test_cell_classes_is_one_class_of_weight_one(): + """Every cell is clean: one class holding the genotype's own values.""" + theta = jnp.linspace(0.1, 0.9, 2 * 3 * 4).reshape(1, 1, 1, 1, 2, 3, 4) + activity = jnp.array([1.0, 0.5, 2.0, 1.0]).reshape(1, 1, 1, 1, 1, 1, 4) + dk_geno = jnp.array([0.0, -0.01, 0.02, 0.0]).reshape(1, 1, 1, 1, 1, 1, 4) + + classes = transformation_single.cell_classes((theta, activity, dk_geno), + None, None, MagicMock()) + + np.testing.assert_array_equal(classes.theta, theta[None]) + np.testing.assert_array_equal(classes.activity, activity[None]) + np.testing.assert_array_equal(classes.dk_geno, dk_geno[None]) + assert classes.log_weight.shape[0] == 1 + np.testing.assert_array_equal(np.exp(classes.log_weight), 1.0) + + +def test_needs_population_flag(): + """No congression, so no library-wide population is needed.""" + assert transformation_single.NEEDS_POPULATION is False diff --git a/tests/tfscreen/tfmodel/generative/test_mixture_model.py b/tests/tfscreen/tfmodel/generative/test_mixture_model.py new file mode 100644 index 00000000..793ca59c --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/test_mixture_model.py @@ -0,0 +1,166 @@ +""" +The congression mixture inside the full model (generative/model.py with +transformation="mixture"), on the smoke-test data. +""" + +import os + +import jax.numpy as jnp +import numpy as np +import pytest +from numpyro.handlers import seed, substitute, trace + +from tfscreen.tfmodel.generative.registry import model_registry +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") + + +def _orchestrator(transformation, **kwargs): + if transformation == "mixture": + kwargs.setdefault("transformation_lambda", (0.36, 0.05)) + return ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV, + transformation=transformation, **kwargs) + + +def _full_batch(orchestrator): + return orchestrator.get_batch(orchestrator.data, + jnp.arange(orchestrator.data.num_genotype)) + + +def _trace(orchestrator, latents=None): + model = seed(orchestrator.jax_model, rng_seed=0) + if latents is not None: + model = substitute(model, data=latents) + return trace(model).get_trace(data=_full_batch(orchestrator), + priors=orchestrator.priors) + + +def _latents(tr): + return {name: site["value"] for name, site in tr.items() + if site["type"] == "sample" and not site.get("is_observed", False)} + + +# --------------------------------------------------------------------------- +# Every growth component broadcasts over the class axis +# --------------------------------------------------------------------------- + +_GROWTH_VARIANTS = ( + [("growth_transition", v) for v in sorted(model_registry["growth_transition"])] + + [("condition_growth", v) for v in sorted(model_registry["condition_growth"])] +) + + +@pytest.mark.parametrize("axis,variant", _GROWTH_VARIANTS) +def test_mixture_runs_with_every_growth_component(axis, variant): + mixture = _orchestrator("mixture", **{axis: variant}) + single = _orchestrator("single", **{axis: variant}) + + mixture_pred = np.asarray(_trace(mixture)["growth_pred"]["value"]) + single_pred = np.asarray(_trace(single)["growth_pred"]["value"]) + + assert mixture_pred.shape == single_pred.shape + assert np.all(np.isfinite(mixture_pred)) + + +# --------------------------------------------------------------------------- +# Reductions to the single model +# --------------------------------------------------------------------------- + +def test_vanishing_lambda_reduces_to_single(): + """ + The congressed weight is about lambda, but with prior draws a congressed + class can outgrow the clean one by tens of ln units, so lambda must be + far below exp(-max growth gap) for the mixture to collapse visibly. + """ + mixture = _orchestrator("mixture") + single = _orchestrator("single") + + latents = _latents(_trace(mixture)) + latents["transformation_lam"] = jnp.array(1e-30) + mixture_pred = np.asarray(_trace(mixture, latents)["growth_pred"]["value"]) + + latents.pop("transformation_lam") + single_pred = np.asarray(_trace(single, latents)["growth_pred"]["value"]) + + np.testing.assert_allclose(mixture_pred, single_pred, rtol=1e-5, atol=1e-5) + + +def test_spike_only_genotype_matches_single_and_bulk_genotypes_change(): + """ + A genotype with bulk_fraction = 0 has no congressed cells, so it grows + as in the single model at any lambda; bulk genotypes do not. + """ + probe = _orchestrator("single") + labels = list(probe.growth_tm.tensor_dim_labels[-1]) + spiked = [g for g in labels if g != "wt"][0] + + mixture = _orchestrator("mixture", spiked_genotypes=[spiked]) + single = _orchestrator("single", spiked_genotypes=[spiked]) + + latents = _latents(_trace(mixture)) + latents["transformation_lam"] = jnp.array(1.0) + mixture_pred = np.asarray(_trace(mixture, latents)["growth_pred"]["value"]) + latents.pop("transformation_lam") + single_pred = np.asarray(_trace(single, latents)["growth_pred"]["value"]) + + g = labels.index(spiked) + np.testing.assert_allclose(mixture_pred[..., g], single_pred[..., g], + rtol=1e-5, atol=1e-5) + + bulk = [i for i in range(len(labels)) if i != g] + assert not np.allclose(mixture_pred[..., bulk], single_pred[..., bulk]) + + +def test_theta_growth_pred_is_the_genotype_own_theta(): + """theta_growth_pred stays uncorrected (tfs-predict-theta reads it).""" + mixture = _orchestrator("mixture") + single = _orchestrator("single") + latents = _latents(_trace(mixture)) + mixture_theta = _trace(mixture, latents)["theta_growth_pred"]["value"] + latents.pop("transformation_lam") + single_theta = _trace(single, latents)["theta_growth_pred"]["value"] + np.testing.assert_allclose(np.asarray(mixture_theta), + np.asarray(single_theta)) + + +# --------------------------------------------------------------------------- +# Posterior forward passes over genotype chunks +# --------------------------------------------------------------------------- + +@pytest.mark.slow +def test_mixture_posteriors_independent_of_chunk_size(): + """ + get_posteriors runs the model over genotype chunks; the congressed cells + still look co-residents up across the whole library, so the saved + predictions must not depend on the chunk size. + """ + import tempfile + + import h5py + + from tfscreen.tfmodel.inference.run_inference import RunInference + + orchestrator = _orchestrator("mixture") + inference = RunInference(model=orchestrator, seed=1) + svi = inference.setup_svi(adam_step_size=1e-3) + state, _, _ = inference.run_optimization( + svi=svi, max_num_epochs=1, + out_prefix=os.path.join(tempfile.mkdtemp(), "fit")) + + out = {} + for forward_batch_size in (512, 2): + prefix = os.path.join(tempfile.mkdtemp(), "p") + RunInference(model=orchestrator, seed=7).get_posteriors( + svi=svi, svi_state=state, out_prefix=prefix, + num_posterior_samples=3, forward_batch_size=forward_batch_size) + with h5py.File(f"{prefix}_posterior.h5") as f: + out[forward_batch_size] = f["growth_pred"][()] + + np.testing.assert_allclose(out[512], out[2], rtol=1e-5, atol=1e-5) diff --git a/tests/tfscreen/tfmodel/generative/test_model.py b/tests/tfscreen/tfmodel/generative/test_model.py index 657d81ea..0423a8b0 100644 --- a/tests/tfscreen/tfmodel/generative/test_model.py +++ b/tests/tfscreen/tfmodel/generative/test_model.py @@ -11,13 +11,17 @@ DataClass, PriorsClass, GrowthData, BindingData, GrowthPriors, BindingPriors ) +from tfscreen.tfmodel.generative.components.transformation._classes import ( + single_class, +) # --- Mocks --- # Define minimal mocks for the nested data structures class MockGrowthData(namedtuple("MockGrowthData", [ - "t_pre", "t_sel", "congression_mask", "num_genotype", - "external_theta_population", "batch_idx", "geno_theta_idx", + "t_pre", "t_sel", "num_genotype", + "external_theta_population", "external_dk_population", + "external_activity_population", "batch_idx", "geno_theta_idx", "scatter_theta"])): """Namedtuple with a flax-struct-like ``.replace()`` for exercising the full-population congression branch in jax_model without a real GrowthData.""" @@ -45,8 +49,9 @@ def mock_data(): t_sel = jnp.array(3.0) growth = MockGrowthData( - t_pre=t_pre, t_sel=t_sel, congression_mask="mock_mask", + t_pre=t_pre, t_sel=t_sel, num_genotype=1, external_theta_population=None, + external_dk_population=None, external_activity_population=None, batch_idx=jnp.array([0]), geno_theta_idx=jnp.array([0]), # Deliberately non-default (1, not 0) so tests can confirm jax_model # preserves it rather than silently resetting it when building the @@ -98,13 +103,21 @@ def mock_control(): growth_transition_model = MagicMock(return_value=105.0) ln_cfu0_model = MagicMock(return_value=jnp.array([5.0])) # ln_cfu0 (must be array for softmax) - activity_model = MagicMock(return_value=1.0) # activity - dk_geno_model = MagicMock(return_value=0.0) # dk_geno - - transformation_model = MagicMock(return_value=(1.0, 1.0, 1.0)) # (lam, mu, sigma) - transformation_update = MagicMock( - side_effect=lambda t, params, mask=None, population_theta=None: t - ) # pass-through + + # activity / dk_geno: scalars; with return_population=True they also + # return a library-ordered population. + activity_model = MagicMock( + side_effect=lambda *a, return_population=False, **k: + (1.0, jnp.array([1.0])) if return_population else 1.0) + dk_geno_model = MagicMock( + side_effect=lambda *a, return_population=False, **k: + (0.0, jnp.array([0.0])) if return_population else 0.0) + + transformation_model = MagicMock(return_value=1.0) # lambda + # One class holding every cell (the "single" behavior). + cell_classes = MagicMock( + side_effect=lambda focal, population, params, data: + single_class(jnp.asarray(focal[0]), focal[1], focal[2])) # Noise models just pass through or add noise. Let's pass through for simplicity. theta_binding_noise_model = MagicMock(side_effect=lambda n, x, p, data=None: x) @@ -123,7 +136,7 @@ def mock_control(): "ln_cfu0": ln_cfu0_model, "activity": activity_model, "dk_geno": dk_geno_model, - "transformation": (transformation_model, transformation_update, False), + "transformation": (transformation_model, cell_classes, False), "theta_binding_noise": theta_binding_noise_model, "theta_growth_noise": theta_growth_noise_model, "growth_noise": growth_noise_model, @@ -154,8 +167,8 @@ def test_jax_model_execution_flow(mock_data, mock_priors, mock_control): # theta_model called with (name, growth_data, theta_priors) mock_control["theta"][0].assert_called_once_with("theta", mock_data.growth, "prior_theta") - # get_moments called with (theta, growth_data) - mock_control["theta"][2].assert_called_once_with(10.0, mock_data.growth) + # get_moments is no longer used (its only consumer, logit_norm, is gone) + mock_control["theta"][2].assert_not_called() # Calc Theta # Called twice: once for binding, once for growth @@ -186,15 +199,17 @@ def test_jax_model_execution_flow(mock_data, mock_priors, mock_control): "ln_cfu0", mock_data.growth, "prior_cfu0" ) - # Transformation + # Transformation: lambda, then the cell classes built from the + # genotype's (noisy) theta, activity and dk_geno mock_control["transformation"][0].assert_called_once_with( - "transformation", mock_data.growth, "prior_trans", anchors=(0.0, 1.0) - ) - mock_control["transformation"][1].assert_called_once_with( - jnp.array(20.0), # theta_growth - params=(1.0, 1.0, 1.0), - mask="mock_mask" + "transformation", mock_data.growth, "prior_trans" ) + (focal, population, params, data), _ = \ + mock_control["transformation"][1].call_args + assert jnp.isclose(focal[0], 20.0) and focal[1] == 1.0 and focal[2] == 0.0 + assert population is None + assert params == 1.0 + assert data is mock_data.growth # Observers mock_control["observe_growth"].assert_called_once() @@ -251,16 +266,21 @@ def test_jax_model_guide_flow(mock_data, mock_priors, mock_control): # --------------------------------------------------------------------------- -# transformation_needs_population wiring (congression full-population fix) +# transformation_needs_population wiring (congression mixture) # --------------------------------------------------------------------------- +def _needs_population(mock_control): + transformation_model, cell_classes, _ = mock_control["transformation"] + mock_control["transformation"] = (transformation_model, cell_classes, True) + return cell_classes + + def test_jax_model_population_not_needed_skips_extra_calc_theta( mock_data, mock_priors, mock_control): """ - When the transformation component doesn't need a population reference - (the "single" / "logit_norm" case, needs_population=False), calc_theta - must be called exactly twice (binding, growth) and transformation_update - must not receive a population_theta kwarg at all. + Without a population need ("single"), calc_theta runs exactly twice + (binding, growth), dk_geno/activity are called without + return_population, and cell_classes gets no population. """ assert mock_control["transformation"][2] is False @@ -268,65 +288,77 @@ def test_jax_model_population_not_needed_skips_extra_calc_theta( jax_model(mock_data, mock_priors, **mock_control) assert mock_control["theta"][1].call_count == 2 - - _, kwargs = mock_control["transformation"][1].call_args - assert "population_theta" not in kwargs + assert "return_population" not in mock_control["dk_geno"].call_args.kwargs + assert "return_population" not in mock_control["activity"].call_args.kwargs + (_, population, _, _), _ = mock_control["transformation"][1].call_args + assert population is None def test_jax_model_population_needed_computes_locally( mock_data, mock_priors, mock_control): """ - When needs_population=True and no external override is supplied - (data.growth.external_theta_population is None — the training-time case), - jax_model must compute the population reference itself by calling - calc_theta a third time against a full-population data view (batch_idx / - geno_theta_idx spanning arange(num_genotype)). scatter_theta must be left - untouched (not reset to 0) so the result's leading dimensions match - theta_growth's exactly, which update_thetas relies on for broadcasting. + With a population need and no external references (training), jax_model + computes theta over a full-population data view (batch_idx / + geno_theta_idx = arange(num_genotype), scatter_theta untouched) and takes + dk_geno/activity populations from their components. """ - transformation_model, transformation_update, _ = mock_control["transformation"] - mock_control["transformation"] = (transformation_model, transformation_update, True) + cell_classes = _needs_population(mock_control) with numpyro.handlers.seed(rng_seed=0): jax_model(mock_data, mock_priors, **mock_control) # binding, growth, and the extra population pass assert mock_control["theta"][1].call_count == 3 - third_call_data = mock_control["theta"][1].call_args_list[2].args[1] assert jnp.array_equal(third_call_data.batch_idx, jnp.arange(mock_data.growth.num_genotype)) assert jnp.array_equal(third_call_data.geno_theta_idx, jnp.arange(mock_data.growth.num_genotype)) assert third_call_data.scatter_theta == mock_data.growth.scatter_theta - _, kwargs = transformation_update.call_args - # calc_theta's mock is `lambda t, d: t * 2.0`; theta == 10.0 either way, - # so the population call reduces to the same 20.0 as the growth call. - assert jnp.isclose(kwargs["population_theta"], 20.0) + assert mock_control["dk_geno"].call_args.kwargs["return_population"] is True + assert mock_control["activity"].call_args.kwargs["return_population"] is True + + (_, population, _, _), _ = cell_classes.call_args + theta_pop, activity_pop, dk_pop = population + assert jnp.isclose(theta_pop, 20.0) + assert jnp.array_equal(activity_pop, jnp.array([1.0])) + assert jnp.array_equal(dk_pop, jnp.array([0.0])) def test_jax_model_population_needed_uses_external_override( mock_data, mock_priors, mock_control): """ - When needs_population=True and data.growth.external_theta_population is - already supplied (the prediction-time case, where data.growth may only - span a genotype subset), jax_model must use it directly rather than - computing a local (and, in that scenario, wrong) full-population value — - so calc_theta must be called only twice, not three times. + External references (prediction on a genotype subset) are used as-is: no + local population theta pass, and they replace the components' values. """ - transformation_model, transformation_update, _ = mock_control["transformation"] - mock_control["transformation"] = (transformation_model, transformation_update, True) + cell_classes = _needs_population(mock_control) - external_population = jnp.array(999.0) - growth_with_override = mock_data.growth.replace( - external_theta_population=external_population + growth = mock_data.growth.replace( + external_theta_population=jnp.array(999.0), + external_dk_population=jnp.array([7.0]), + external_activity_population=jnp.array([3.0]), ) - data_with_override = mock_data._replace(growth=growth_with_override) - with numpyro.handlers.seed(rng_seed=0): - jax_model(data_with_override, mock_priors, **mock_control) + jax_model(mock_data._replace(growth=growth), mock_priors, **mock_control) - # No extra local population pass — only binding + growth. assert mock_control["theta"][1].call_count == 2 + (_, population, _, _), _ = cell_classes.call_args + assert population[0] is growth.external_theta_population + assert population[1] is growth.external_activity_population + assert population[2] is growth.external_dk_population - _, kwargs = transformation_update.call_args - assert kwargs["population_theta"] is external_population \ No newline at end of file + +def test_jax_model_population_missing_raises(mock_data, mock_priors, + mock_control): + """ + If a component cannot supply its population (batch-sized latents) and no + external reference is given, jax_model refuses rather than building + congressed cells from nothing. + """ + _needs_population(mock_control) + mock_control["dk_geno"] = MagicMock( + side_effect=lambda *a, return_population=False, **k: + (0.0, None) if return_population else 0.0) + + with pytest.raises(ValueError, match="dk_geno"): + with numpyro.handlers.seed(rng_seed=0): + jax_model(mock_data, mock_priors, **mock_control) diff --git a/tests/tfscreen/tfmodel/generative/test_model_math.py b/tests/tfscreen/tfmodel/generative/test_model_math.py index 7eaff61c..fa1cf85b 100644 --- a/tests/tfscreen/tfmodel/generative/test_model_math.py +++ b/tests/tfscreen/tfmodel/generative/test_model_math.py @@ -34,10 +34,10 @@ # --------------------------------------------------------------------------- # Only expose the fields actually consumed by the real simple components and -# by jax_model itself (t_pre, t_sel, congression_mask). +# by jax_model itself (t_pre, t_sel). _MockGrowthData = namedtuple( "_MockGrowthData", - ["batch_size", "t_pre", "t_sel", "congression_mask"], + ["batch_size", "t_pre", "t_sel"], ) _MockBindingData = namedtuple("_MockBindingData", []) @@ -70,7 +70,6 @@ def mock_data(): batch_size=BATCH_SIZE, t_pre=T_PRE, t_sel=T_SEL, - congression_mask=None, ) return _MockData(growth=growth, binding=_MockBindingData()) @@ -127,8 +126,8 @@ def _build_control(mock_data, real_priors, is_guide=False): "dk_geno": dk_geno_fixed.define_model, "growth_transition": growth_transition_instant.define_model, "transformation": (transformation_single.define_model, - transformation_single.update_thetas, - transformation_single.NEEDS_FULL_POPULATION_THETA), + transformation_single.cell_classes, + transformation_single.NEEDS_POPULATION), "theta_growth_noise": noise_zero.define_model, "theta_binding_noise": noise_zero.define_model, "growth_noise": growth_noise_zero.define_model, diff --git a/tests/tfscreen/tfmodel/generative/test_registry.py b/tests/tfscreen/tfmodel/generative/test_registry.py index 93d3846d..a978a170 100644 --- a/tests/tfscreen/tfmodel/generative/test_registry.py +++ b/tests/tfscreen/tfmodel/generative/test_registry.py @@ -49,7 +49,7 @@ "ln_cfu0": 2, "dk_geno": 2, "activity": 5, - "transformation": 3, + "transformation": 2, "theta_rescale": 2, "theta": 4, "theta_growth_noise": 3, @@ -150,11 +150,14 @@ def test_get_priors_returns_object(self, name, mod): assert priors is not None, f"Component '{name}'.get_priors() returned None" @pytest.mark.parametrize("name,mod", model_registry.get("transformation", {}).items()) - def test_transformation_has_update_thetas(self, name, mod): - assert hasattr(mod, "update_thetas"), ( - f"transformation/{name} missing 'update_thetas'" + def test_transformation_has_cell_classes(self, name, mod): + assert hasattr(mod, "cell_classes"), ( + f"transformation/{name} missing 'cell_classes'" + ) + assert callable(mod.cell_classes) + assert isinstance(getattr(mod, "NEEDS_POPULATION", None), bool), ( + f"transformation/{name} must declare NEEDS_POPULATION" ) - assert callable(mod.update_thetas) @pytest.mark.parametrize("key", list(OBSERVE_KEYS)) def test_observe_modules_have_observe_and_guide(self, key): diff --git a/tests/tfscreen/tfmodel/inference/test_batch_safety.py b/tests/tfscreen/tfmodel/inference/test_batch_safety.py index 05bce30a..db1cb9b6 100644 --- a/tests/tfscreen/tfmodel/inference/test_batch_safety.py +++ b/tests/tfscreen/tfmodel/inference/test_batch_safety.py @@ -162,8 +162,7 @@ def test_equal_length_index_sets_rejected(): ("theta_rescale", "passthrough"), ("theta_rescale", "logit"), ("transformation", "single"), - ("transformation", "empirical"), - ("transformation", "logit_norm"), + ("transformation", "mixture"), ("theta_growth_noise", "zero"), ("theta_growth_noise", "logit_normal"), ("theta_binding_noise", "zero"), @@ -176,8 +175,7 @@ def test_equal_length_index_sets_rejected(): # Extra constructor arguments some variants require. _VARIANT_KWARGS = { - ("transformation", "empirical"): {"transformation_lambda": (1.0, 0.1)}, - ("transformation", "logit_norm"): {"transformation_lambda": (1.0, 0.1)}, + ("transformation", "mixture"): {"transformation_lambda": (1.0, 0.1)}, } diff --git a/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py b/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py index b72a573e..df9eface 100644 --- a/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py +++ b/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py @@ -143,14 +143,14 @@ def test_configure_model_passes_base_growth_df_to_orchestrator_and_config(mock_o assert written_config["data"]["base_growth"] == "bg.csv" -def test_configure_model_requires_transformation_lambda_for_empirical(mock_orchestrator, tmpdir): - """transformation_model='empirical' (or 'logit_norm') without transformation_lambda +def test_configure_model_requires_transformation_lambda_for_mixture(mock_orchestrator, tmpdir): + """transformation_model='mixture' without transformation_lambda must raise before ModelOrchestrator is even constructed.""" out_prefix = os.path.join(tmpdir, "test") with pytest.raises(ValueError, match="transformation_lambda"): configure_model( "b.csv", growth_df="g.csv", library_config="lib.yaml", - transformation_model="empirical", + transformation_model="mixture", out_prefix=out_prefix, ) @@ -169,14 +169,14 @@ def test_configure_model_forwards_transformation_lambda_to_orchestrator(mock_orc configure_model( "b.csv", growth_df="g.csv", library_config="lib.yaml", - transformation_model="empirical", + transformation_model="mixture", transformation_lambda=(0.3572, 0.13), out_prefix=out_prefix, skip_model_stats=True, ) assert mock_orchestrator_class.call_args.kwargs["transformation_lambda"] == (0.3572, 0.13) - assert mock_orchestrator_class.call_args.kwargs["transformation"] == "empirical" + assert mock_orchestrator_class.call_args.kwargs["transformation"] == "mixture" def test_configure_model_omits_base_growth_when_not_given(mock_orchestrator, tmpdir): diff --git a/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py b/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py index a81f95ba..d2f41e67 100644 --- a/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py @@ -857,7 +857,7 @@ def test_overrides_replace_production_components(self): "activity": "horseshoe_geno", # → hierarchical "dk_geno": "fixed", # → hierarchical "ln_cfu0": "fixed", # → hierarchical - "transformation": "logit_norm", # → single + "transformation": "mixture", # → single "theta_growth_noise": "beta", # → zero "theta_binding_noise": "beta", # → zero "condition_growth": "linear", # passthrough @@ -909,7 +909,7 @@ def test_dk_geno_pinned_carried_through_from_production(self): "dk_geno": "pinned", "dk_geno_pins_file": "dk_geno_pins.csv", "ln_cfu0": "fixed", - "transformation": "logit_norm", + "transformation": "mixture", "theta_growth_noise": "beta", "theta_binding_noise": "beta", "condition_growth": "linear", @@ -943,7 +943,7 @@ def test_dk_geno_pins_file_dropped_when_not_pinned(self): "dk_geno": "hierarchical_geno", "dk_geno_pins_file": "stale_pins.csv", "ln_cfu0": "fixed", - "transformation": "logit_norm", + "transformation": "mixture", "theta_growth_noise": "beta", "theta_binding_noise": "beta", "condition_growth": "linear", @@ -965,7 +965,7 @@ def test_dk_geno_pins_file_dropped_when_not_pinned(self): def test_transformation_lambda_dropped_when_forced_to_single(self): """ - Production transformation="empirical" carries a transformation_lambda + Production transformation="mixture" carries a transformation_lambda (mean, std) pair anchoring its lambda parameter. The calibration model always overrides transformation to "single", which has no lambda parameter -- ModelOrchestrator raises if transformation_lambda is @@ -977,7 +977,7 @@ def test_transformation_lambda_dropped_when_forced_to_single(self): "activity": "horseshoe_geno", "dk_geno": "fixed", "ln_cfu0": "fixed", - "transformation": "empirical", + "transformation": "mixture", "transformation_lambda": (0.3572, 0.2592), "theta_growth_noise": "beta", "theta_binding_noise": "beta", @@ -1008,7 +1008,7 @@ def test_binding_weight_reset_from_large_production_value(self): "activity": "horseshoe_geno", "dk_geno": "fixed", "ln_cfu0": "fixed", - "transformation": "logit_norm", + "transformation": "mixture", "theta_growth_noise": "beta", "theta_binding_noise": "beta", "condition_growth": "linear", @@ -1034,7 +1034,7 @@ def test_does_not_mutate_production_settings(self): "activity": "horseshoe_geno", "dk_geno": "fixed", "ln_cfu0": "fixed", - "transformation": "logit_norm", + "transformation": "mixture", "theta_growth_noise": "beta", "theta_binding_noise": "beta", "spiked_genotypes": None, @@ -1057,7 +1057,7 @@ def _base_growth_settings(self): "activity": "horseshoe_geno", "dk_geno": "hierarchical_geno", # production value; not "pinned" "ln_cfu0": "fixed", - "transformation": "logit_norm", + "transformation": "mixture", "theta_growth_noise": "beta", "theta_binding_noise": "beta", "condition_growth": "linear", diff --git a/tests/tfscreen/tfmodel/tensors/test_batch.py b/tests/tfscreen/tfmodel/tensors/test_batch.py index e78f8d1d..ed086b06 100644 --- a/tests/tfscreen/tfmodel/tensors/test_batch.py +++ b/tests/tfscreen/tfmodel/tensors/test_batch.py @@ -54,7 +54,6 @@ def full_data_setup(): map_condition_pre = jnp.arange(total_size, dtype=int) map_condition_sel = jnp.arange(total_size, dtype=int) good_mask = jnp.ones(total_size, dtype=bool) - congression_mask = jnp.ones(total_size, dtype=bool) # Initial batch metadata batch_idx = jnp.arange(total_size, dtype=int) @@ -69,8 +68,7 @@ def full_data_setup(): t_sel=t_sel, map_condition_pre=map_condition_pre, map_condition_sel=map_condition_sel, - good_mask=good_mask, - congression_mask=congression_mask + good_mask=good_mask ) return MockDataClass(growth=growth) diff --git a/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py b/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py index 16eff816..3b070ab7 100644 --- a/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py +++ b/tests/tfscreen/tfmodel/tensors/test_batch_consistency.py @@ -39,7 +39,6 @@ def test_batch_scaling_unbiased(): t_pre=jnp.zeros((1, 1, 1, total_genotypes)), t_sel=jnp.zeros((1, 1, 1, total_genotypes)), good_mask=jnp.ones((1, 1, 1, total_genotypes), dtype=bool), - congression_mask=jnp.ones(total_genotypes, dtype=bool), num_replicate=1, num_time=1, num_condition_pre=1, @@ -97,7 +96,6 @@ def test_component_shape_guards(): t_pre=jnp.zeros((1, 1, 1, batch_size)), t_sel=jnp.zeros((1, 1, 1, batch_size)), good_mask=jnp.ones((1, 1, 1, batch_size), dtype=bool), - congression_mask=jnp.ones(batch_size, dtype=bool), num_replicate=1, num_time=1, num_condition_pre=1, @@ -157,7 +155,6 @@ def test_num_genotype_preserved(): t_pre=jnp.zeros((1, 1, 1, total_genotypes)), t_sel=jnp.zeros((1, 1, 1, total_genotypes)), good_mask=jnp.ones((1, 1, 1, total_genotypes), dtype=bool), - congression_mask=jnp.ones(total_genotypes, dtype=bool), num_replicate=1, num_time=1, num_condition_pre=1, diff --git a/tests/tfscreen/tfmodel/tensors/test_batch_fix.py b/tests/tfscreen/tfmodel/tensors/test_batch_fix.py index 642833a6..7024ecd4 100644 --- a/tests/tfscreen/tfmodel/tensors/test_batch_fix.py +++ b/tests/tfscreen/tfmodel/tensors/test_batch_fix.py @@ -39,8 +39,7 @@ def test_get_batch_metadata_updates(): t_sel=jnp.zeros((1, 1, 1, 1, 1, 1, total_size)), map_condition_pre=jnp.zeros((1, total_size)), map_condition_sel=jnp.zeros((1, total_size)), - good_mask=jnp.ones((1, total_size), dtype=bool), - congression_mask=jnp.ones((total_size,), dtype=bool) + good_mask=jnp.ones((1, total_size), dtype=bool) ) full_data = MockDataClass(growth=growth) @@ -60,4 +59,3 @@ def test_get_batch_metadata_updates(): # Verify shape of sliced data (last dim should be new_batch_size) assert batch_data.growth.ln_cfu.shape[-1] == new_batch_size - assert batch_data.growth.congression_mask.shape[-1] == new_batch_size diff --git a/tests/tfscreen/tfmodel/test_data_class.py b/tests/tfscreen/tfmodel/test_data_class.py index 9050ac3b..c71f93bc 100644 --- a/tests/tfscreen/tfmodel/test_data_class.py +++ b/tests/tfscreen/tfmodel/test_data_class.py @@ -43,7 +43,6 @@ def _make_growth_data(num_genotype=4, **overrides): t_pre=jnp.zeros(shape), t_sel=jnp.zeros(shape), good_mask=jnp.ones(shape, dtype=bool), - congression_mask=jnp.ones(G, dtype=bool), num_replicate=1, num_time=1, num_condition_pre=1, diff --git a/tests/tfscreen/tfmodel/test_data_class_jit.py b/tests/tfscreen/tfmodel/test_data_class_jit.py index abbc6c10..65a1dbfc 100644 --- a/tests/tfscreen/tfmodel/test_data_class_jit.py +++ b/tests/tfscreen/tfmodel/test_data_class_jit.py @@ -26,7 +26,6 @@ def create_dummy_data(): t_pre=jnp.zeros((2, 5, 2, 2, 2, 2, 10)), t_sel=jnp.zeros((2, 5, 2, 2, 2, 2, 10)), good_mask=jnp.ones((2, 5, 2, 2, 2, 2, 10), dtype=bool), - congression_mask=jnp.ones(10, dtype=bool), num_replicate=2, num_time=5, num_condition_pre=2, diff --git a/tests/tfscreen/tfmodel/test_library_file.py b/tests/tfscreen/tfmodel/test_library_file.py index a61f0d93..b0310a4e 100644 --- a/tests/tfscreen/tfmodel/test_library_file.py +++ b/tests/tfscreen/tfmodel/test_library_file.py @@ -93,7 +93,7 @@ def _masks(orchestrator): idx = orchestrator.growth_tm.tensor_dim_names.index("genotype") labels = list(orchestrator.growth_tm.tensor_dim_labels[idx]) return (labels, - np.array(orchestrator.data.growth.congression_mask), + ~np.array(orchestrator.data.growth.ln_cfu0_spiked_mask), np.array(orchestrator.data.growth.ln_cfu0_spiked_mask)) @@ -255,7 +255,7 @@ def test_shapes_and_strata(self, library_file): def test_pool_is_bulk_share_of_genotypes_with_data(self, library_file): orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), library_file=library_file) - mask = np.array(orchestrator.data.growth.congression_mask) + mask = ~np.array(orchestrator.data.growth.ln_cfu0_spiked_mask) pool = orchestrator._coresident_pool(mask) table = orchestrator.library_df.set_index("genotype") weights = np.array([table.loc[g, "pool_fraction"] @@ -267,7 +267,7 @@ def test_draws_follow_pool(self, library_file): orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), library_file=library_file, congression_sets=[4000]) - mask = np.array(orchestrator.data.growth.congression_mask) + mask = ~np.array(orchestrator.data.growth.ln_cfu0_spiked_mask) pool = orchestrator._coresident_pool(mask) idx = np.asarray(orchestrator.data.growth.coresident_idx) counts = np.bincount(idx[idx >= 0], minlength=len(pool)) @@ -286,7 +286,7 @@ def test_unknown_never_drawn(self, library_file): def test_legacy_pool_uniform_over_non_spiked(self): orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), spiked_genotypes=["wt"]) - mask = np.array(orchestrator.data.growth.congression_mask) + mask = ~np.array(orchestrator.data.growth.ln_cfu0_spiked_mask) pool = orchestrator._coresident_pool(mask) labels = _labels(orchestrator) assert pool[labels.index("wt")] == 0.0 @@ -298,6 +298,21 @@ def test_empty_pool_gives_empty_sets(self): spiked_genotypes=GENOTYPES) assert np.all(np.asarray(orchestrator.data.growth.coresident_idx) == -1) + def test_mixture_refuses_empty_pool_with_bulk_genotypes(self, + library_file): + """Bulk genotypes but nothing drawable: a mixture model cannot build + congressed cells, so it refuses; 'single' does not care.""" + table = pd.read_csv(library_file) + table["pool_fraction"] = 0.0 + table.to_csv(library_file, index=False) + + with pytest.raises(ValueError, match="co-resident pool is empty"): + ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file, + transformation="mixture") + ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file, transformation="single") + def test_seed_reproduces_and_changes_draws(self, library_file): def draw(seed_value): o = ModelOrchestrator(_growth_df(), _binding_df(), diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index 52722622..5812bfd5 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -15,7 +15,6 @@ _build_growth_tm, _build_binding_tm, _setup_batching, - _check_theta_transformation_compatibility, get_batch ) from tfscreen.tfmodel.generative.components.growth.linear import _parse_condition_label @@ -413,7 +412,7 @@ def test_initialize_classes_logic(mocker): "dk_geno": {"hierarchical_geno": MagicMock()}, "activity": {"hierarchical_geno": MagicMock(), "horseshoe_geno": MagicMock()}, "theta": {"categorical_geno": MagicMock(), "hill_geno": MagicMock(), "fixed": MagicMock()}, - "transformation": {"logit_norm": MagicMock(), "single": MagicMock()}, + "transformation": {"mixture": MagicMock(), "single": MagicMock()}, "theta_rescale": {"passthrough": MagicMock()}, "theta_growth_noise": {"zero": MagicMock(), "logit_normal": MagicMock()}, "theta_binding_noise": {"zero": MagicMock()}, @@ -427,7 +426,7 @@ def test_initialize_classes_logic(mocker): tfscreen.tfmodel.model_orchestrator.model_registry[k][sub_k].get_priors.return_value = {} tfscreen.tfmodel.model_orchestrator.model_registry[k][sub_k].get_guesses.return_value = {} - model = ModelOrchestrator("g.csv", "b.csv", theta="categorical_geno", transformation="logit_norm", condition_growth="independent", growth_transition="instant") + model = ModelOrchestrator("g.csv", "b.csv", theta="categorical_geno", transformation="single", condition_growth="independent", growth_transition="instant") assert model._theta == "categorical_geno" @@ -489,7 +488,7 @@ def test_initialize_classes_forwards_presplit_to_declaring_component(mocker): "dk_geno": {"hierarchical_geno": MagicMock()}, "activity": {"hierarchical_geno": MagicMock()}, "theta": {"categorical_geno": MagicMock()}, - "transformation": {"logit_norm": MagicMock()}, + "transformation": {"single": MagicMock()}, "theta_rescale": {"passthrough": MagicMock()}, "theta_growth_noise": {"zero": MagicMock()}, "theta_binding_noise": {"zero": MagicMock()}, @@ -508,7 +507,7 @@ def test_initialize_classes_forwards_presplit_to_declaring_component(mocker): ModelOrchestrator( "g.csv", "b.csv", - theta="categorical_geno", transformation="logit_norm", + theta="categorical_geno", transformation="single", condition_growth="independent", growth_transition="instant", ln_cfu0="hierarchical", activity="hierarchical_geno", theta_growth_noise="zero", @@ -530,7 +529,7 @@ def test_dk_geno_pinned_requires_pins_file(): """ dk_geno='pinned' without dk_geno_pins_file must raise before any data I/O happens (mirrors - test_model_orchestrator_rejects_categorical_geno_with_empirical: + test_model_orchestrator_refuses_retired_transformations: "g.csv"/"b.csv" are never touched). """ with pytest.raises(ValueError, match="requires dk_geno_pins_file"): @@ -667,15 +666,15 @@ def test_transformation_lambda_wrong_length_raises(): with pytest.raises(ValueError, match="mean, std"): ModelOrchestrator( "g.csv", "b.csv", - transformation="empirical", + transformation="mixture", transformation_lambda=(0.36,), ) class _SpyTransformationModule: """ - Thin real-object wrapper around a transformation component (logit_norm/ - empirical), recording what get_priors/get_guesses were actually called + Thin real-object wrapper around a transformation component (mixture), + recording what get_priors/get_guesses were actually called with. inspect.signature(component_module.get_priors) must see the real @@ -723,7 +722,7 @@ def _build_orchestrator_with_transformation_spy(mocker, spy, transformation_lamb "dk_geno": {"hierarchical_geno": MagicMock()}, "activity": {"hierarchical_geno": MagicMock()}, "theta": {"hill_geno": MagicMock()}, - "transformation": {"logit_norm": spy}, + "transformation": {"mixture": spy}, "theta_rescale": {"passthrough": MagicMock()}, "theta_growth_noise": {"zero": MagicMock()}, "theta_binding_noise": {"zero": MagicMock()}, @@ -741,7 +740,7 @@ def _build_orchestrator_with_transformation_spy(mocker, spy, transformation_lamb return ModelOrchestrator( "g.csv", "b.csv", - theta="hill_geno", transformation="logit_norm", + theta="hill_geno", transformation="mixture", transformation_lambda=transformation_lambda, condition_growth="independent", growth_transition="instant", activity="hierarchical_geno", theta_growth_noise="zero", @@ -752,9 +751,9 @@ def test_transformation_lambda_wired_into_component_priors_and_guesses(mocker): """End-to-end: transformation_lambda=(mean, std) must reach the real component's get_priors(lam_mean=..., lam_std=...) and get_guesses(..., lam_mean=...) via signature-based dispatch in _initialize_classes.""" - from tfscreen.tfmodel.generative.components.transformation import logit_norm as real_logit_norm + from tfscreen.tfmodel.generative.components.transformation import mixture as real_mixture - spy = _SpyTransformationModule(real_logit_norm) + spy = _SpyTransformationModule(real_mixture) model = _build_orchestrator_with_transformation_spy(mocker, spy, (0.3572, 0.13)) assert spy.priors_calls == [(0.3572, 0.13)] @@ -769,9 +768,9 @@ def test_transformation_lambda_omitted_falls_back_to_placeholder(mocker): lam_mean=lam_std=None) rather than being skipped -- it falls back to its own placeholder prior rather than ModelOrchestrator refusing to build the model.""" - from tfscreen.tfmodel.generative.components.transformation import logit_norm as real_logit_norm + from tfscreen.tfmodel.generative.components.transformation import mixture as real_mixture - spy = _SpyTransformationModule(real_logit_norm) + spy = _SpyTransformationModule(real_mixture) model = _build_orchestrator_with_transformation_spy(mocker, spy, None) assert spy.priors_calls == [(None, None)] @@ -781,17 +780,16 @@ def test_transformation_lambda_omitted_falls_back_to_placeholder(mocker): @pytest.mark.parametrize("transformation_key, expected_needs_population", [ ("single", False), - ("logit_norm", False), - ("empirical", True), + ("mixture", True), ]) def test_transformation_control_kwargs_carry_needs_population_flag( mocker, transformation_key, expected_needs_population): """ main_control_kwargs["transformation"] must be a 3-tuple whose third element reflects the *real* transformation component's - NEEDS_FULL_POPULATION_THETA flag (empirical=True; single/logit_norm=False) - — this is the wiring jax_model relies on to decide whether it needs a - population-wide theta reference for the congression correction. + NEEDS_POPULATION flag (mixture=True; single=False) — this is the wiring + jax_model relies on to decide whether it needs library-wide theta, + activity and dk_geno for the congression mixture. """ import tfscreen.tfmodel.generative.components.transformation as transformation_pkg @@ -812,9 +810,6 @@ def test_transformation_control_kwargs_carry_needs_population_flag( "ln_cfu0": {"hierarchical": MagicMock()}, "dk_geno": {"hierarchical_geno": MagicMock()}, "activity": {"horseshoe_geno": MagicMock()}, - # Use a mocked "hill_geno" stand-in (not "categorical_geno") so this - # wiring test doesn't trip the real theta/transformation compatibility - # check exercised separately below. "theta": {"hill_geno": MagicMock()}, "transformation": {transformation_key: real_transformation_module}, "theta_rescale": {"passthrough": MagicMock()}, @@ -846,61 +841,24 @@ def test_transformation_control_kwargs_carry_needs_population_flag( # --------------------------------------------------------------------------- -# _check_theta_transformation_compatibility +# Retired transformation components # --------------------------------------------------------------------------- -def test_check_theta_transformation_compatibility_rejects_categorical_geno_empirical(): - """categorical_geno cannot supply a full-population theta reference, so - pairing it with transformation='empirical' must raise, not silently - reproduce the population-CDF bug.""" - with pytest.raises(ValueError, match="categorical_geno.*empirical|empirical.*categorical_geno"): - _check_theta_transformation_compatibility("categorical_geno", "empirical") - - -@pytest.mark.parametrize("transformation_key", ["single", "logit_norm"]) -def test_check_theta_transformation_compatibility_allows_categorical_geno_elsewhere( - transformation_key): - """categorical_geno is fine with transformation models that don't need a - population-wide theta reference.""" - _check_theta_transformation_compatibility("categorical_geno", transformation_key) - - -@pytest.mark.parametrize("theta_key", ["hill_geno", "hill_mut", "some_thermo_variant"]) -def test_check_theta_transformation_compatibility_allows_other_theta_with_empirical( - theta_key): - """Any theta component other than the known-incompatible ones must be - allowed with transformation='empirical' (including forward-compatibility - with theta components this check has never heard of).""" - _check_theta_transformation_compatibility(theta_key, "empirical") - - -def test_model_orchestrator_rejects_categorical_geno_with_empirical(): - """ - End-to-end: constructing a ModelOrchestrator with the incompatible pair - must raise before any data loading happens (no growth_df/binding_df I/O - needed for this to fire — "g.csv"/"b.csv" are never touched). - """ - with pytest.raises(ValueError, match="categorical_geno"): - ModelOrchestrator( - "g.csv", "b.csv", - theta="categorical_geno", - transformation="empirical", - ) - - -def test_check_theta_transformation_compatibility_binding_only_skips_check(): +@pytest.mark.parametrize("name,match", [ + ("empirical", "replaced by 'mixture'"), + ("logit_norm", "has been removed"), +]) +@pytest.mark.parametrize("binding_only", [False, True]) +def test_model_orchestrator_refuses_retired_transformations(name, match, + binding_only): """ - In binding-only mode jax_model returns before ever reaching the - transformation/congression code path (see generative/model.py's early - `if binding_only: ... return`), so the transformation setting is inert - and categorical_geno + empirical must be allowed. Regression test for - the smoke-test failure where tfs-configure-model's binding-only pipeline - (theta="categorical_geno", transformation left at its "empirical" - default) was incorrectly rejected by this check. + A config naming a retired transformation fails before any data I/O + ("g.csv"/"b.csv" are never touched), with a message saying what + replaced it, so an old config cannot silently switch physics. """ - _check_theta_transformation_compatibility( - "categorical_geno", "empirical", binding_only=True - ) + with pytest.raises(ValueError, match=match): + ModelOrchestrator("g.csv", "b.csv", transformation=name, + binding_only=binding_only) def test_model_class_properties(initialized_model_class): @@ -966,7 +924,7 @@ def test_extract_parameters_full(initialized_model_class): model._condition_growth = "hierarchical" model._dk_geno = "hierarchical_geno" model._activity = "hierarchical_geno" - model._transformation = "logit_norm" + model._transformation = "mixture" model.growth_tm.df = pd.DataFrame({ "genotype": ["wt"], "titrant_name": ["T"], "replicate": [1], "condition_pre": ["A"], @@ -1209,7 +1167,7 @@ def test_binding_weight_explicit_in_settings(mocker): model._dk_geno = "hierarchical_geno" model._activity = "horseshoe_geno" model._theta = "hill_geno" - model._transformation = "empirical" + model._transformation = "mixture" model._theta_rescale = "passthrough" model._theta_growth_noise = "zero" model._theta_binding_noise = "zero" @@ -1234,7 +1192,7 @@ def test_binding_weight_auto_in_settings(mocker): model._dk_geno = "hierarchical_geno" model._activity = "horseshoe_geno" model._theta = "hill_geno" - model._transformation = "empirical" + model._transformation = "mixture" model._theta_rescale = "passthrough" model._theta_growth_noise = "zero" model._theta_binding_noise = "zero" diff --git a/tests/tfscreen/tfmodel/test_spiked_genotypes.py b/tests/tfscreen/tfmodel/test_spiked_genotypes.py index 5e097104..1b38b75f 100644 --- a/tests/tfscreen/tfmodel/test_spiked_genotypes.py +++ b/tests/tfscreen/tfmodel/test_spiked_genotypes.py @@ -55,8 +55,8 @@ def test_spiked_genotypes_masking(dummy_data): genotype_idx = orchestrator.growth_tm.tensor_dim_names.index("genotype") genotype_labels = orchestrator.growth_tm.tensor_dim_labels[genotype_idx] - # Check the congression_mask in the data object - mask = np.array(orchestrator.data.growth.congression_mask) + # Spiked genotypes are the ones in the spiked ln_cfu0 class + mask = ~np.array(orchestrator.data.growth.ln_cfu0_spiked_mask) for i, label in enumerate(genotype_labels): if label == "A10G": assert not mask[i], f"Genotype {label} should be masked (False)" @@ -93,7 +93,7 @@ def test_spiked_genotypes_single_string(dummy_data): genotype_idx = orchestrator.growth_tm.tensor_dim_names.index("genotype") genotype_labels = orchestrator.growth_tm.tensor_dim_labels[genotype_idx] - mask = np.array(orchestrator.data.growth.congression_mask) + mask = ~np.array(orchestrator.data.growth.ln_cfu0_spiked_mask) for i, label in enumerate(genotype_labels): if label == "A10G": assert not mask[i] From c3354b895f478102202d991aea83ed1835c0b780 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 06:45:42 -0700 Subject: [PATCH 019/208] Match congression weights to the simulator; retire Stage 1.5 (step 3.4) Since step 1 the simulator splits a cell's abundance among the plasmids it carries, so a genotype's abundance by co-resident count n is the zero-truncated P(M = n + 1), not Poisson(n; lambda). The 3.3c mixture still used the Poisson weights (each plasmid getting the whole cell): at lambda = 0.357 it made a bulk genotype 70% clean instead of 83%, and would have recovered lambda ~ 0.18 against a simulated 0.357. - mixture: w_cong = f (1 - P(M = 1)), P(M = 1) = lambda e^-lambda / (1 - e^-lambda); congressed sets weighted by P(M = n + 1). A series branch keeps small lambda (and its gradient) accurate. The fit's lam is now the simulator's transformation_poisson_lambda; the zero class (cells that never grow under selection) plays no part. Docs define lambda and the conversion from a measured mean plasmids/transformant. - Retire Stage 1.5 of the empirical pipeline: --congression_lambda is removed from tfs-fit-genotypes and tfs-build-empirical (plus --library_config and --save_theta_history on tfs-fit-genotypes) with their outputs. It corrected theta alone with the E[max] operator the fit dropped in 3.3c, used Poisson weights and a spiked/bulk split, and ignored dk dilution. genotype_fit/congression.py, simulate/empirical/congression.py and transformation/_congression.py are deleted; a mixture-refit replacement is filed as planning/empirical-mixture-refit.md. - tfs-summarize-calibration: the spiked/bulk "origin" stratum becomes "purity" (spike / mixed / bulk, i.e. bulk_fraction 0, between, 1). Verified: new tests check the weights against simulated cell shares (selection_experiment._plasmid_shares) and the zero-truncated strata, and that the small-lambda series agrees with the direct formula with finite gradients; the retired arguments raise; purity strata cover spike, mixed and bulk. Full tests/tfscreen passes with --runslow (4744); all smoke tests pass (39). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 30 +- CLAUDE.md | 15 +- docs/source/model-inputs.rst | 8 + planning/congression-physics-plan.md | 56 +++- planning/empirical-mixture-refit.md | 63 ++++ .../estimate-dk-alpha-by-varying-lambda.md | 2 +- src/tfscreen/analysis/calibration_grid.py | 34 ++- .../simulate/empirical/congression.py | 18 -- .../simulate/scripts/build_empirical_cli.py | 56 +--- .../simulate/transformation_lam_output.py | 6 +- .../components/theta_rescale/logit.py | 2 +- .../components/transformation/_congression.py | 287 ------------------ .../components/transformation/mixture.py | 54 +++- src/tfscreen/tfmodel/genotype_fit/__init__.py | 6 +- .../tfmodel/genotype_fit/congression.py | 231 -------------- src/tfscreen/tfmodel/genotype_fit/fit.py | 13 +- .../tfmodel/scripts/fit_genotypes_cli.py | 99 +----- .../analysis/test_calibration_grid.py | 26 +- .../empirical/test_build_empirical_cli.py | 6 + .../simulate/empirical/test_congression.py | 130 -------- .../transformation/test__congression.py | 189 ------------ .../transformation/test_congression_mask.py | 57 ---- .../components/transformation/test_mixture.py | 57 +++- .../tfmodel/generative/test_reference_math.py | 131 +------- .../tfmodel/genotype_fit/test_congression.py | 111 ------- .../genotype_fit/test_fit_genotypes_cli.py | 68 +---- 26 files changed, 320 insertions(+), 1435 deletions(-) create mode 100644 planning/empirical-mixture-refit.md delete mode 100644 src/tfscreen/simulate/empirical/congression.py delete mode 100644 src/tfscreen/tfmodel/generative/components/transformation/_congression.py delete mode 100644 src/tfscreen/tfmodel/genotype_fit/congression.py delete mode 100644 tests/tfscreen/simulate/empirical/test_congression.py delete mode 100644 tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py delete mode 100644 tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py delete mode 100644 tests/tfscreen/tfmodel/genotype_fit/test_congression.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 46bce41f..85ae93bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,8 +66,10 @@ fall into two kinds: directory, and reports coverage at several interval levels, calibration error and bias, PIT uniformity (KS), interval width, and median RMSE and Pearson r against the simulated truth. Rows are per run x quantity x - stratum: whether the genotype has binding data, whether it is encoded by a - spiked sequence, and, for theta, whether the true value is resolvable or + stratum: whether the genotype has binding data, its purity (`spike`: only + a spiked sequence encodes it, `bulk_fraction` 0; `bulk`: only the bulk + sub-libraries, `bulk_fraction` 1; `mixed`: both, like wt and the spiked + single mutants), and, for theta, whether the true value is resolvable or saturated. Arms (runs sharing every grid variable except `--replicate_keys`) are averaged, and `--baseline key=value ...` pairs each run with the baseline run fit to the same simulated data. Unfinished runs are listed in @@ -126,14 +128,16 @@ fall into two kinds: `theta_rescale` → `calculate_growth` → `growth_transition` pipeline on a leading class axis, and the classes are mixed as `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`, with - `w_cong = bulk_fraction * (1 - exp(-lambda))` split over the sets by the - Poisson(lambda) probability of their co-resident count. Theta noise acts on + `w_cong = bulk_fraction * (1 - P(M = 1))` split over the sets by + `P(M = n + 1)`, where a transformant carries `M` ~ zero-truncated + Poisson(lambda) plasmids that share its abundance (as in the simulator, so + the fit's lambda is the simulator's `transformation_poisson_lambda`; the + zero class of cells that never took up a plasmid is not observed). Theta noise acts on the genotype's own theta before the classes are built; `theta_growth_pred` is still the genotype's own theta. - `empirical` and `logit_norm` are removed and refused by name with a message; configs must switch to `transformation: mixture` (fits are not - comparable). `_congression.update_thetas` stays as a plain function for - Stage 1.5 of `tfs-fit-genotypes`. + comparable). - New transformation interface: `define_model`/`guide` sample lambda only; `cell_classes(focal, population, params, data)` returns the classes; `NEEDS_POPULATION` replaces `NEEDS_FULL_POPULATION_THETA`. @@ -152,6 +156,20 @@ fall into two kinds: - Growth tensors grow by a factor of 1 + K (K = 16 by default); use mini-batching or a smaller `congression_sets` on large libraries. +- **Breaking: the empirical pipeline's congression de-attenuation (Stage 1.5) + is retired.** `--congression_lambda` is removed from `tfs-fit-genotypes` + and `tfs-build-empirical`, together with `--library_config` and + `--save_theta_history` on `tfs-fit-genotypes` and the + `*_params_deattenuated.csv`, `*_theta_history.csv` and + `*_stage1p5_fits.csv` outputs. It corrected theta alone with the + expected-maximum operator the fit dropped above, and it used Poisson rather + than zero-truncated co-resident weights, a spiked/bulk split rather than + `bulk_fraction`, and no dk_geno dilution. Empirical distributions are now + built from uncorrected per-genotype fits. `genotype_fit/congression.py`, + `simulate/empirical/congression.py` and + `transformation/_congression.py` are deleted. A replacement is filed as + `planning/empirical-mixture-refit.md`. + - **Test reports and badges are no longer committed.** `reports/` and `docs/badges/` are gitignored and untracked; `run_all_tests.sh` now writes everything, badges included, under `reports/`, and stops on the first diff --git a/CLAUDE.md b/CLAUDE.md index 09ad1716..98860ce0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -46,7 +46,7 @@ tfs-process-presplit # Process pre-split count files tfs-configure-model # Generate YAML config template (+ library composition snapshot) tfs-prefit-calibration # Pre-fit linking function via MAP tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale) -tfs-fit-genotypes # Per-genotype MLE fits of the growth model (+ optional congression de-attenuation; spiked genotypes come from --library_config) +tfs-fit-genotypes # Per-genotype MLE fits of the growth model (no congression correction) tfs-sample-posterior # Draw posterior samples from fitted model tfs-sample-prior # Draw prior predictive samples tfs-extract-params # Extract parameters from checkpoint @@ -125,7 +125,7 @@ The hierarchical Bayesian inference engine. Key files: - `activity/`: `fixed`, `hierarchical_geno`, `hierarchical_mut`, `horseshoe_geno`, `horseshoe_mut` - `growth/` (registry key `condition_growth`): `linear`, `power`, `saturation`. Their per-condition prior loc/scale fields accept a scalar (broadcast to all conditions) **or** a per-condition array; the pre-fit calibration writes per-condition arrays to pin the baselines (see **Per-condition growth priors** below). Each declares `get_scale_bounds()`. - `growth_transition/`: `instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop` - - `transformation/`: `single`, `mixture` (`empirical`/`logit_norm` were removed; `ModelOrchestrator` refuses them by name with a message, `_RETIRED_TRANSFORMATIONS`). `_congression.update_thetas` (the old E[max] θ operator) is kept only for Stage 1.5 of `tfs-fit-genotypes` + - `transformation/`: `single`, `mixture` (`empirical`/`logit_norm` were removed; `ModelOrchestrator` refuses them by name with a message, `_RETIRED_TRANSFORMATIONS`). The old E[max] θ operator (`_congression.py`) is gone, along with Stage 1.5 of the empirical pipeline that used it - `theta/`: `categorical_geno`, `hill_geno`, `hill_mut`; thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) - `theta_rescale/`: `passthrough`, `logit` - `dk_geno/`: `fixed`, `hierarchical_geno`, `pinned` @@ -185,7 +185,7 @@ Flow: `genetics.library_composition_table(library_config)` (`genetics/library_de A library-derived spiked genotype that has no growth data is **reported, not fatal** (spikes can drop out of a real dataset), unlike the hand-supplied `spiked_genotypes` list, which still raises. -`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) and is the `f_g` of the `mixture` transformation: a genotype's congressed fraction is `f_g (1 - exp(-lambda))`. Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the old binary `congression_mask` is gone. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. +`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) and is the `f_g` of the `mixture` transformation: a genotype's congressed fraction is `f_g (1 - P(M = 1))`, with `M` ~ zero-truncated Poisson(λ) plasmids per transformant (a cell's abundance is shared among its plasmids, so abundance by co-resident count n is `P(M = n + 1)`; λ is the simulator's `transformation_poisson_lambda`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the old binary `congression_mask` is gone. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. ### Pre-fit model accounting (`tfmodel/model_stats.py`) @@ -306,14 +306,15 @@ These two dicts are the mechanism by which binding data is "pinned" into the gro An alternative to prior-predictive phenotype sampling: instead of drawing theta from made-up priors, fit **real** screen data to an empirical phenotype-generating distribution and resample from it, so the simulated library's phenotype *distribution* matches reality while ground truth stays known. Targets `hill_geno` + linear growth; asserts `A ≡ 1` (repressor: blocks or not, leaky binding absorbed into `theta_low`). Three stages: -**Module location note.** Stage 1 (per-genotype MLE fit) and Stage 1.5 (congression de-attenuation) live in `tfmodel/genotype_fit/` (`fit.py`, `congression.py`) — they are a general per-genotype inference engine for the growth model, exposed standalone as **`tfs-fit-genotypes`** (`tfmodel/scripts/fit_genotypes_cli.py`). `simulate/empirical/fit_phenotypes.py` and `.../congression.py` are back-compat re-export shims. `tfs-fit-genotypes` takes `growth_file` + `calibration_file` (positional; a prefit priors CSV or wide `condition_rep,growth_k,growth_m`) and writes `_params.csv` (raw fit), `_theta.csv` (predicted θ vs `[genotype,titrant_name,titrant_conc]`), and — with `--congression_lambda` — `_params_deattenuated.csv` + a `theta_deattenuated` column (and, with `--save_theta_history`, the fixed-point trajectory `_theta_history.csv`). Reusable helpers `fits_to_results_df(fits)` (rebuild the params table from any fits dict) and `predict_theta(fits, growth_df)` back both this CLI and `tfs-build-empirical`. **`_stage1_fits.csv` from `tfs-build-empirical` is the RAW (pre-de-attenuation) fit; the de-attenuated fits are now also written to `_stage1p5_fits.csv` when `--congression_lambda` is given.** The Stage-1.5 correction is inherently a *population* operation (the background CDF couples all bulk genotypes), even though the per-genotype MLE fits themselves are independent/parallel. +**Module location note.** Stage 1 (per-genotype MLE fit) lives in `tfmodel/genotype_fit/fit.py` — a general per-genotype inference engine for the growth model, exposed standalone as **`tfs-fit-genotypes`** (`tfmodel/scripts/fit_genotypes_cli.py`). `simulate/empirical/fit_phenotypes.py` is a back-compat re-export shim. `tfs-fit-genotypes` takes `growth_file` + `calibration_file` (positional; a prefit priors CSV or wide `condition_rep,growth_k,growth_m`) and writes `_params.csv` and `_theta.csv` (predicted θ, column `theta_raw`, vs `[genotype,titrant_name,titrant_conc]`). Reusable helpers `fits_to_results_df(fits)` (rebuild the params table from any fits dict) and `predict_theta(fits, growth_df)` back both this CLI and `tfs-build-empirical`. + +**No congression correction (Stage 1.5 retired, 2026-09-24).** The Stage 1 fits of bulk genotypes carry the congression bias (small in the measured regime, about 0.05 ln units), and Stage 2 builds the distribution from them as-is. The old Stage 1.5 de-attenuated θ with the θ-only `E[max]` operator the main fit dropped in step 3.3c (Poisson rather than zero-truncated co-resident weights, binary spiked/bulk purity, no dk dilution); `--congression_lambda` was removed from `tfs-fit-genotypes` and `tfs-build-empirical`. A proper replacement (an iterated per-genotype refit under the same observable-level mixture as the fit) waits on a review of the whole empirical pipeline (`planning/empirical-mixture-refit.md`). - **Stage 1** (`fit_phenotypes.py`): per-genotype MLE of the growth model on a real `ln_cfu` DataFrame (derives `ln_cfu_std` from the processed `ln_cfu_var` via `get_scaled_cfu`, like `model_orchestrator`), calibration (`growth_k`/`growth_m` per `condition_rep`) frozen. Fits `(dk_geno, theta_low, theta_high, log_hill_K, hill_n)` in transformed coords (logit theta bounds, log n) so `run_least_squares` returns covariance in the space Stage 2 needs. Per-genotype independent (no cross-genotype coupling); weak `dk_geno` Tikhonov prior; ±16 logit clamp. Returns `GenotypeFit(estimate, covariance)` per genotype. The fits are embarrassingly parallel — `num_workers` (`-1` = `cpu_count-1`) runs them over a `ProcessPoolExecutor`; the parallel path strips the genotype `Categorical` first (it carries all categories on every group → O(N²) pickling). Worker startup pays a ~2s JAX import, so parallelism is a wash for tiny/fast runs and near-linear for large real libraries. `_hill_theta` is numerically identical to `hill_geno.run_model` and `binding_params._hill_theta` (verified — same `_ZERO_CONC_SENTINEL`). - **Stage 2** (`population.py`): measurement-error EM (`z_i~N(mu,Σ)`, `y_i~N(z_i,S_i)`) that **deconvolves estimation noise** (`Cov(y)=Σ+mean(S_i)`), so it recovers a narrower population than a naive KDE on the point estimates. `fit_population()` → `PopulationModel` (single MV-Normal in transformed space; `wt_ref` field holds wt's actual Stage-1 fit; `.sample(n)` → natural-space DataFrame; `.save()`/`.load()`). -- **Stage 1.5** (`congression.py`, optional; between Stage 1 and Stage 2, gated by `--congression_lambda`): de-attenuates the **bulk** genotypes' theta curves for co-transformation. Reuses the old inference θ-level operator `transformation._congression.update_thetas` (no longer a registered component; the fit now uses the `mixture` transformation) (the `E[max(x,M)]` **dominant-max occupancy** map — the tightest-bound operator sets effective θ, so `E[max]` only, never the min variant — with an empirical background CDF). `correct_theta_matrix` is the fixed point: `θ_true ← θ_obs`; iterate `θ_true += gain·(θ_obs − update_thetas(θ_true; background=θ_true))` per-concentration until converged (the background *is* the corrected population, hence the iteration). `deattenuate_congression` evaluates each bulk genotype's Stage-1 Hill at the growth `titrant_conc` grid, corrects, and refits Hill (dk_geno and the Stage-1 covariance are left untouched — a deliberate bias-only correction; Stage 2's estimation-noise deconvolution still runs after). λ passes straight through **unconverted**: a focal barcode is size-biased into its cell, so co-residents are Poisson(λ) at the *same* zero-truncated `transformation_poisson_lambda` (`_sim_transform` uses `zero_truncated_poisson` + i.i.d. plasmid draws). Spiked genotypes are congression-free → excluded from correction and the background CDF, and pass through unchanged. This is the θ-level analogue of the simulator's cell-level congression (`congression_theta_rule: max`; the simulator also dilutes dk_geno across a cell's plasmids, which Stage 1.5 does not model); spiked-only vs bulk distribution is the external check. - **Stage 3** (`resample.py`): `resample_phenotypes` draws one i.i.d. phenotype per genotype (wt pinned to `dk_geno=0` + `wt_ref` Hill); `make_empirical_overrides` reuses `build_theta_gc_override_hill_geno` → `(theta_gc_override, theta_params_override, dk_geno_override)`. `thermo_to_growth` gained a `dk_geno_override` param (the one growth-path change; `theta_params_override` only patches θ columns). `build_empirical_binding_theta` rebuilds spiked `binding_theta_df` from resampled params (selection from the `binding_data` config; θ from resampled Hill, not `sample_theta_stratified`). -Integration: `library_prediction` gains a `phenotype_source: empirical` branch (needs an `empirical: {phenotype_model: }` block pointing at the single self-contained `_phenotype_model.json`; `_resolve_phenotype_model_path` accepts that path with/without `.json` or the bare ``, and the fit prints the absolute path — use it so no file-copying is needed) that resamples all genotypes, injects the overrides, forces `theta_component=hill_geno` (warns + ignores any other value; the resampled phenotypes are per-genotype Hill curves and the discarded prior draw must match the `parameters_df` schema — this also avoids running/overflowing an e.g. `hill_mut` draw), drops the ignored `theta_priors`/`theta_sim_priors`, and forces `activity=fixed/1`. `phenotype_source`/`empirical` are in `selection_experiment.SIMULATE_KNOWN_KEYS`. Resampled ground truth flows into `parameters_df`/`genotype_theta_df` automatically (no new return value); `library_binding` regenerates for free (reads `parameters_df`). `tfs-build-empirical` (`simulate/scripts/build_empirical_cli.py`) is a **one-command orchestrator**: given the experimental inputs (`growth_file` and `seed` positional; `--binding_file` required; optional `--spiked_file`/`--base_growth_file`/`--thermo_data`/`--congression_lambda`/`--num_workers`) it internally calls `configure_model` (linear + hill_geno defaults — no model choices exposed, since here they'd only be wrong) then `run_prefit_calibration` (MAP-calibrates per-condition k/m), then Stages 1-2 (plus optional Stage 1.5 congression de-attenuation when `--congression_lambda` is given), saving the deliverable `_phenotype_model.json` (one self-contained, human-readable file = the generating distribution; `PopulationModel.save`/`.load`) + the diagnostic `_stage1_fits.csv`, plus the `_configure_*`/`_prefit_*` intermediates. The configure/prefit imports are lazy (the heavy JAX stack loads only on this path). The MAP prefit is the slow step, so `--calibration_file` skips configure+prefit and reuses a calibration for fast Stage-1/2 iteration — either a prefit **priors CSV** (read via `fit_phenotypes.read_calibration`, which pivots the `growth.condition_growth.k_loc`/`growth.condition_growth.m_loc` per-`condition_rep` rows — prefit writes these via `_csv_row_name` = `growth.{component}.{field}` — to wide k/m) or a wide `(condition_rep, growth_k, growth_m)` CSV. This **complements** the fully-synthetic prior path (the *accuracy* benchmark) as a *realism* benchmark. +Integration: `library_prediction` gains a `phenotype_source: empirical` branch (needs an `empirical: {phenotype_model: }` block pointing at the single self-contained `_phenotype_model.json`; `_resolve_phenotype_model_path` accepts that path with/without `.json` or the bare ``, and the fit prints the absolute path — use it so no file-copying is needed) that resamples all genotypes, injects the overrides, forces `theta_component=hill_geno` (warns + ignores any other value; the resampled phenotypes are per-genotype Hill curves and the discarded prior draw must match the `parameters_df` schema — this also avoids running/overflowing an e.g. `hill_mut` draw), drops the ignored `theta_priors`/`theta_sim_priors`, and forces `activity=fixed/1`. `phenotype_source`/`empirical` are in `selection_experiment.SIMULATE_KNOWN_KEYS`. Resampled ground truth flows into `parameters_df`/`genotype_theta_df` automatically (no new return value); `library_binding` regenerates for free (reads `parameters_df`). `tfs-build-empirical` (`simulate/scripts/build_empirical_cli.py`) is a **one-command orchestrator**: given the experimental inputs (`growth_file` and `seed` positional; `--binding_file` required; optional `--library_config`/`--base_growth_file`/`--thermo_data`/`--num_workers`) it internally calls `configure_model` (linear + hill_geno defaults — no model choices exposed, since here they'd only be wrong) then `run_prefit_calibration` (MAP-calibrates per-condition k/m), then Stages 1-2, saving the deliverable `_phenotype_model.json` (one self-contained, human-readable file = the generating distribution; `PopulationModel.save`/`.load`) + the diagnostic `_stage1_fits.csv`, plus the `_configure_*`/`_prefit_*` intermediates. The configure/prefit imports are lazy (the heavy JAX stack loads only on this path). The MAP prefit is the slow step, so `--calibration_file` skips configure+prefit and reuses a calibration for fast Stage-1/2 iteration — either a prefit **priors CSV** (read via `fit_phenotypes.read_calibration`, which pivots the `growth.condition_growth.k_loc`/`growth.condition_growth.m_loc` per-`condition_rep` rows — prefit writes these via `_csv_row_name` = `growth.{component}.{field}` — to wide k/m) or a wide `(condition_rep, growth_k, growth_m)` CSV. This **complements** the fully-synthetic prior path (the *accuracy* benchmark) as a *realism* benchmark. ## Categorical response assessment (`analysis/cat_response/`) @@ -536,7 +537,7 @@ Positional argument order (use only what the script needs): ### `--library_config` -`tfs-configure-model`, `tfs-fit-genotypes` and `tfs-build-empirical` take the library YAML as `--library_config`. It is an exception to the positional-if-required rule: `tfs-configure-model` requires it only when `growth_df` is given, and `growth_df` is itself a flag, so a positional would be wrong for the binding-only call. Validate it in the function body instead. +`tfs-configure-model` and `tfs-build-empirical` take the library YAML as `--library_config`. It is an exception to the positional-if-required rule: `tfs-configure-model` requires it only when `growth_df` is given, and `growth_df` is itself a flag, so a positional would be wrong for the binding-only call. Validate it in the function body instead. ### Output flag diff --git a/docs/source/model-inputs.rst b/docs/source/model-inputs.rst index e981801c..02aaef50 100644 --- a/docs/source/model-inputs.rst +++ b/docs/source/model-inputs.rst @@ -219,6 +219,14 @@ and guesses CSVs with rescaled log-space values. See :ref:`model-components`'s Transformation Correction section for what the ``mixture``/``single`` models each do with it. +Lambda is the rate of a zero-truncated Poisson: a transformant (a cell that +took up at least one plasmid and survives selection) carries ``M`` plasmids +with ``P(M = m) = Poisson(m; lambda) / (1 - exp(-lambda))``. The zero class +is never observed, so it plays no part. A measurement of the mean number of +distinct plasmids per transformant, ``E[M] = lambda / (1 - exp(-lambda))``, +has to be converted to lambda before it is passed here. This is the same +lambda as the simulator's ``transformation_poisson_lambda``. + **Scale** A single measurement (one mean, one uncertainty) from an independent diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index fdbf295e..6800647c 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -7,11 +7,11 @@ revisit_when: >- Active now. Update the step list as steps finish. related: - src/tfscreen/simulate/selection_experiment.py - - src/tfscreen/tfmodel/generative/components/transformation/_congression.py + - src/tfscreen/tfmodel/generative/components/transformation/mixture.py - src/tfscreen/tfmodel/generative/model.py - src/tfscreen/tfmodel/model_orchestrator.py - src/tfscreen/tfmodel/analysis/prediction.py - - src/tfscreen/tfmodel/genotype_fit/congression.py + - planning/empirical-mixture-refit.md - src/tfscreen/simulate/transformation_lam_output.py - src/tfscreen/genetics/library_design.py - planning/estimate-dk-alpha-by-varying-lambda.md @@ -45,7 +45,10 @@ A code analysis revealed the simulator and the fit describe congression Checked and ruled out: the definition of lambda (sim cell sizes are zero-truncated Poisson(lambda), so a focal plasmid's co-residents are exactly -Poisson(lambda), as the fit assumes), and the fit's unweighted background +Poisson(lambda), as the fit assumes; true only while every plasmid got its +whole cell's abundance. Since step 1 a cell's abundance is shared among its +plasmids, and the co-resident weights are zero-truncated; corrected in 3.4), +and the fit's unweighted background distribution (the lambda that reproduces the sim's true theta inflation is 0.30 to 0.35 against a true 0.357). @@ -170,8 +173,10 @@ dk_cell = -(1/alpha) * log sum_g x_g exp(-alpha * dk_g) dominance (the worst variant sets the cost). Alpha is set from biology with a sensitivity check, not fit (`planning/estimate-dk-alpha-by-varying-lambda.md`). Under dilution the average effect is a uniform shrinkage of each genotype's -dk toward the population mean, by `E[1/(1+N)] = (1 - exp(-lambda))/lambda` = -0.841 at lambda = 0.357, which the hierarchical dk_geno prior mostly absorbs. +dk toward the population mean, by `E[1/M]` over the abundance-weighted cell +size (`M` zero-truncated Poisson, see 3.4) = 0.913 at lambda = 0.357 (0.841 +under the old size-biased weighting), which the hierarchical dk_geno prior +mostly absorbs. The fit's current behavior (each plasmid keeps its own dk) has no cell-level counterpart: a cell carrying two plasmids has one growth rate. It is wrong, @@ -188,7 +193,10 @@ subset genotypes need an external dk population reference. A genotype's cells are a mixture of classes growing at different rates, so mix `exp(ln_cfu)`, not rates or theta. With `f_g` the fraction of genotype g's cells from the bulk library (computed from the library design), a focal plasmid -has no co-residents with probability `exp(-lambda)`: +has no co-residents with probability `exp(-lambda)` (superseded in 3.4: with +a cell's abundance shared among its plasmids, the clean fraction of a bulk +genotype's abundance is the zero-truncated `P(M = 1) = lambda exp(-lambda) / +(1 - exp(-lambda))`, so `w_congressed = f_g (1 - P(M = 1))`): ``` w_congressed = f_g * (1 - exp(-lambda)) @@ -256,7 +264,8 @@ ln_cfu_g(t) = ln_cfu0_g + logsumexp_c [ log w_{g,c} + G_{g,c}(t) ] + delta_sampl *Congressed*: the genotype plus co-residents; cell theta and activity from the theta rule (max), dk from the dk rule (dilution), matching the simulator (`simulate/cell_rules.py`). -- **Weights.** `w_cong = f_g * (1 - exp(-lambda))`, `w_clean = 1 - w_cong`; +- **Weights.** `w_cong = f_g * (1 - exp(-lambda))`, `w_clean = 1 - w_cong` + (zero-truncated form since 3.4: `w_cong = f_g (1 - P(M = 1))`); time-independent. `f_g` is `bulk_fraction` from the library table. - **G** is each class's whole trajectory through the existing pipeline (`theta_rescale` -> `calculate_growth` -> `growth_transition`) over pre and @@ -487,7 +496,7 @@ checked with `tfs-summarize-calibration`. broadcast) -> `ln_cfu_pred = ln_cfu0 + logsumexp(log_w + G, 0) + delta_sample`. `theta_growth_pred` stays the genotype's own uncorrected theta. The guide skips class construction. - - *Weights.* `w_cong = f_g (1 - exp(-lambda))`; `log w_clean = + - *Weights* (superseded in 3.4 by the zero-truncated form). `w_cong = f_g (1 - exp(-lambda))`; `log w_clean = log1p(-w_cong)`; `log w_k = log f_g + log(1 - exp(-lambda)) + log P(N = n_k | N in strata; lambda) - log K_{n_k}` (strata renormalized over the counts that have sets), so the lambda gradient stays finite for @@ -514,11 +523,32 @@ checked with `tfs-summarize-calibration`. implementation; lambda -> 0 and `f_g = 0` reduce to `single`; finite gradients; registry-wide batch shape/order checks; subset prediction equals full prediction rows; refusals; smoke tests. - - [ ] **3.4 Other consumers.** Lambda extraction - (`simulate/transformation_lam_output.py`), `genotype_fit/congression.py` - (Stage 1.5 of `tfs-fit-genotypes` / `tfs-build-empirical`), and - `tfs-summarize-calibration` strata by `bulk_fraction` instead of - spiked/bulk origin. + - [x] **3.4 Other consumers.** Done 2026-09-24, three commits: + - *Weights (a 3.3c fix found while checking the lambda echo).* Since + step 1 the simulator shares a cell's abundance among its plasmids, so + a genotype's abundance by co-resident count n is the zero-truncated + `P(M = n + 1)`, not Poisson(n; lambda) (which assumed each plasmid got + the whole cell). At lambda = 0.357 a bulk genotype is 83% clean, not + 70%; the old weights would have recovered lambda ~ 0.18 against a + simulated 0.357. `mixture._log_class_weights` now uses + `w_cong = f_g (1 - P(M = 1))`, `P(M = 1) = lambda e^-lambda / + (1 - e^-lambda)`, and strata by `P(M = n + 1)`; a test checks them + against simulated cell shares. Zero-truncation is physical: the zero + class (no plasmid, marker dead, ...) never grows under selection + (user, 2026-09-24). The 3.0 study used the old weights for its + "exact" reference as well as the estimators, so its comparisons + stand. + - *Lambda echo.* With the weights fixed, the fit's `lam` is the + simulator's `transformation_poisson_lambda`; docstrings and + `docs/source/model-inputs.rst` define it. + - *Stage 1.5 retired* (user, 2026-09-24): `--congression_lambda` removed + from `tfs-fit-genotypes`/`tfs-build-empirical`; `genotype_fit/ + congression.py` and `transformation/_congression.py` deleted. The + whole empirical pipeline is to be reviewed before it is used again; + the replacement is filed as `planning/empirical-mixture-refit.md`. + - *`tfs-summarize-calibration`* strata: `origin` (spiked/bulk) became + `purity` (`spike`/`mixed`/`bulk`, from the sub-libraries encoding each + genotype, i.e. `bulk_fraction` 0, between, or 1). - [ ] **3.5 Calibration.** Step 2 simulator vs the new fit, with `tfs-summarize-calibration`; watch bulk genotypes without binding data. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench diff --git a/planning/empirical-mixture-refit.md b/planning/empirical-mixture-refit.md new file mode 100644 index 00000000..ccf420d0 --- /dev/null +++ b/planning/empirical-mixture-refit.md @@ -0,0 +1,63 @@ +--- +title: Correct the empirical pipeline's per-genotype fits for congression +status: idea +filed: 2026-09-24 +area: simulate +revisit_when: >- + When the empirical-phenotype pipeline (tfs-build-empirical, + tfs-fit-genotypes) is reviewed as a whole, and after steps 4-5 of the + congression plan settle the theta and dk cell rules. +related: + - planning/congression-physics-plan.md + - src/tfscreen/tfmodel/genotype_fit/fit.py + - src/tfscreen/simulate/scripts/build_empirical_cli.py + - src/tfscreen/tfmodel/scripts/fit_genotypes_cli.py + - src/tfscreen/simulate/cell_rules.py + - src/tfscreen/tfmodel/generative/components/transformation/mixture.py +--- + +**Context:** Step 3.4 of the congression plan. `tfs-build-empirical` builds +simulation ground truth from real data: per-genotype maximum-likelihood fits +(Stage 1), a population distribution (Stage 2), resampling (Stage 3). Real +bulk genotypes are measured with congression built in, so resampling their +fits and simulating congression again counts it twice. The optional Stage 1.5 +(`--congression_lambda`) removed that bias from the theta curves with the +theta-only `E[max(theta_g, co-residents)]` operator. Step 3.3c dropped that +operator from the main fit (the 3.0 study showed averaging theta cannot +represent a mixture of growth rates), and Stage 1.5 also used Poisson rather +than zero-truncated co-resident weights, treated purity as spiked/bulk, and +ignored dk dilution. It was retired on 2026-09-24 (user); the pipeline now +builds its distribution from uncorrected fits. + +**Idea:** Replace Stage 1.5 with an iterated Stage 1 refit under the same +observable-level mixture as `tfs-fit-model`: + +- Pass 1 is plain Stage 1. +- In each later pass, refit every genotype with + `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`. The genotype's own + parameters are free; its congressed classes combine them with fixed + co-resident sets whose theta, activity and dk come from the previous pass, + through the simulator's cell rules (`simulate/cell_rules.py`) and the + zero-truncated weights with `bulk_fraction`. +- Iterate until the fits stop moving (expect 2-3 passes). + +This corrects dk as well as theta, follows any change to the cell rules, and +gives each genotype a covariance under the corrected model. + +**Why not now:** The user wants the whole empirical pipeline reviewed before +it is used again, and the theta and dk rules are about to change (steps 4-5). +In the measured regime the bias is modest (about 0.05 ln units RMS; see +`planning/studies/congression-estimator/`). + +**What it would take:** + +- A mixture likelihood in `genotype_fit/fit.py`, sharing the class + construction with `transformation/mixture.py` or `cell_rules.py` rather + than a third copy. +- Co-resident sets as in `ModelOrchestrator._draw_coresident_sets`. +- Cost: about (1 + K) times the work per fit, times the number of passes. The + fits within a pass stay independent and parallel. +- Tests: reduction to plain Stage 1 as lambda -> 0; recovery of simulated + phenotypes from a congressed simulation. +- Open question: whether the refit should share lambda with, or estimate it + alongside, the main fit. diff --git a/planning/estimate-dk-alpha-by-varying-lambda.md b/planning/estimate-dk-alpha-by-varying-lambda.md index 86024a89..d2634d4e 100644 --- a/planning/estimate-dk-alpha-by-varying-lambda.md +++ b/planning/estimate-dk-alpha-by-varying-lambda.md @@ -9,7 +9,7 @@ revisit_when: >- related: - planning/congression-physics-plan.md - src/tfscreen/simulate/selection_experiment.py - - src/tfscreen/tfmodel/generative/components/transformation/_congression.py + - src/tfscreen/tfmodel/generative/components/transformation/mixture.py --- **Context:** While fixing the simulator/fit mismatch in how co-resident diff --git a/src/tfscreen/analysis/calibration_grid.py b/src/tfscreen/analysis/calibration_grid.py index 8da342dd..d0631067 100644 --- a/src/tfscreen/analysis/calibration_grid.py +++ b/src/tfscreen/analysis/calibration_grid.py @@ -27,10 +27,14 @@ Strata ------ Genotype-indexed quantities are also broken out by ``has_binding`` (the -genotype has binding data: ``*_sim_binding.csv``) and ``origin`` (``spiked`` --- encoded by a spiked sequence -- vs ``bulk``, from ``*_sim_library.csv``), -separately and crossed. ``spiked`` is not the same as congression-free: wt and -the spiked single mutants are also encoded in the bulk sub-libraries. θ is additionally split by ``theta_regime``: +genotype has binding data: ``*_sim_binding.csv``) and ``purity`` (from the +sub-libraries encoding the genotype in ``*_sim_library.csv``), separately and +crossed. ``purity`` follows the genotype's ``bulk_fraction``, which sets its +congressed fraction: ``spike`` (only a spiked sequence encodes it, +``bulk_fraction`` 0, never congressed), ``bulk`` (only bulk sub-libraries, +``bulk_fraction`` 1) or ``mixed`` (both, as for wt and the spiked single +mutants, which the bulk sub-libraries also encode). θ is additionally split +by ``theta_regime``: ``resolvable`` when the true θ lies in ``[regime_eps, 1 - regime_eps]``, ``saturated`` otherwise. The pooled row carries ``"all"`` in every stratum column. @@ -55,7 +59,8 @@ CURVE_LEVELS = (0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 0.99) WIDTH_LEVELS = (0.5, 0.8, 0.95) -STRATUM_COLS = ("has_binding", "origin", "theta_regime") +STRATUM_COLS = ("has_binding", "purity", "theta_regime") +SPIKED_ORIGIN = "spiked" ALL = "all" # Metrics compared against the baseline in paired_differences. @@ -182,15 +187,19 @@ def genotype_strata(run_dir): Per-genotype strata from the simulation outputs, or None. Returns a DataFrame with ``genotype``, ``has_binding`` ("yes"/"no") and - ``origin`` ("spiked"/"bulk"). None when ``*_sim_library.csv`` is absent. + ``purity`` ("spike"/"mixed"/"bulk"). None when ``*_sim_library.csv`` is + absent. """ lib_path = _sim_file(run_dir, "library") if lib_path is None: return None lib_df = pd.read_csv(lib_path) genotypes = pd.unique(lib_df["genotype"].astype(str)) - spiked = set(lib_df.loc[lib_df["library_origin"] == "spiked", - "genotype"].astype(str)) + is_spiked = lib_df["library_origin"].astype(str) == SPIKED_ORIGIN + by_genotype = (lib_df.assign(genotype=lib_df["genotype"].astype(str), + _spiked=is_spiked) + .groupby("genotype")["_spiked"]) + any_spiked, all_spiked = by_genotype.any(), by_genotype.all() binding_path = _sim_file(run_dir, "binding") binding = (set(pd.read_csv(binding_path)["genotype"].astype(str)) @@ -199,7 +208,8 @@ def genotype_strata(run_dir): return pd.DataFrame({ "genotype": genotypes, "has_binding": ["yes" if g in binding else "no" for g in genotypes], - "origin": ["spiked" if g in spiked else "bulk" for g in genotypes], + "purity": ["spike" if all_spiked[g] else + "mixed" if any_spiked[g] else "bulk" for g in genotypes], }) @@ -232,8 +242,8 @@ def _groupings(df): """Stratum groupings present in ``df`` (the pooled one first).""" present = [c for c in STRATUM_COLS if c in df.columns and df[c].notna().any()] groupings = [()] + [(c,) for c in present] - if "has_binding" in present and "origin" in present: - groupings.append(("has_binding", "origin")) + if "has_binding" in present and "purity" in present: + groupings.append(("has_binding", "purity")) return groupings @@ -264,7 +274,7 @@ def summarize_run(run_dir, summary_subdir="summary", regime_eps=0.01): if "genotype" in df.columns and strata is not None: df["genotype"] = df["genotype"].astype(str) df = df.merge(strata, on="genotype", how="left") - unmatched = df["origin"].isna().mean() + unmatched = df["purity"].isna().mean() if unmatched > 0: warnings.warn(f"{run_dir}: {unmatched:.1%} of '{quantity}' rows " f"have genotypes missing from the sim library; " diff --git a/src/tfscreen/simulate/empirical/congression.py b/src/tfscreen/simulate/empirical/congression.py deleted file mode 100644 index c9b4b557..00000000 --- a/src/tfscreen/simulate/empirical/congression.py +++ /dev/null @@ -1,18 +0,0 @@ -""" -Backward-compatible shim: Stage 1.5 of the empirical-phenotype pipeline. - -The congression de-attenuation moved to -:mod:`tfscreen.tfmodel.genotype_fit.congression` (it is reused by the standalone -``tfs-fit-genotypes`` command). This module re-exports it so existing -``simulate.empirical.congression`` imports keep working. -""" - -from tfscreen.tfmodel.genotype_fit.congression import * # noqa: F401,F403 -from tfscreen.tfmodel.genotype_fit.congression import ( # noqa: F401 - correct_theta_matrix, - deattenuate_congression, - _theta_from_fit, - _refit_hill_theta, - _THETA_PARAM_IDX, - _THETA_EPS, -) diff --git a/src/tfscreen/simulate/scripts/build_empirical_cli.py b/src/tfscreen/simulate/scripts/build_empirical_cli.py index 570f543b..b5b5bc1d 100644 --- a/src/tfscreen/simulate/scripts/build_empirical_cli.py +++ b/src/tfscreen/simulate/scripts/build_empirical_cli.py @@ -28,11 +28,10 @@ import warnings from tfscreen.tfmodel.genotype_fit.fit import ( - fit_phenotypes, fits_to_results_df, _natural_from_transformed, + fit_phenotypes, _natural_from_transformed, ) from tfscreen.simulate.empirical.population import fit_population from tfscreen.util.io import read_dataframe -from tfscreen.genetics import library_composition_table from tfscreen.util.cli.generalized_main import generalized_main _WT_REF_COLS = ["theta_low", "theta_high", "log_hill_K", "hill_n"] @@ -90,7 +89,6 @@ def build_empirical(growth_file, library_config=None, base_growth_file=None, thermo_data=None, - congression_lambda=None, intercept_cols="replicate", dk_geno_prior_sd=1.0, min_obs=None, @@ -111,9 +109,8 @@ def build_empirical(growth_file, identifies the growth slope ``m`` from data (the in-library anchors). out_prefix : str Output prefix. Writes ``_model.npz`` (+ ``.names.json``), - ``_stage1_fits.csv`` (the RAW per-genotype fits), and — when - ``congression_lambda`` is given — ``_stage1p5_fits.csv`` (the - de-attenuated fits that feed Stage 2). Unless ``calibration_file`` is + ``_stage1_fits.csv`` (the per-genotype fits that feed Stage 2). + Unless ``calibration_file`` is given, also the ``_configure_*`` / ``_prefit_*`` intermediates. calibration_file : str, optional Skip the configure+prefit step and use this calibration directly — a @@ -122,19 +119,12 @@ def build_empirical(growth_file, library_config : str, optional Library YAML describing the screened library (the same file handed to ``tfs-process-fastq``), forwarded to ``configure_model``. Required - unless ``calibration_file`` is given. Genotypes encoded by a spiked - sequence are congression-free and are left alone by Stage 1.5. + unless ``calibration_file`` is given. base_growth_file : str, optional Direct growth-rate calibration CSV forwarded to ``configure_model``. thermo_data : str, optional Thermodynamic data path forwarded to ``configure_model`` (unused by the default hill_geno theta). - congression_lambda : float, optional - Zero-truncated Poisson congression rate (the same lambda as the - simulator's ``transformation_poisson_lambda``). When given, run Stage - 1.5: de-attenuate the bulk theta curves for co-transformation before - building the distribution (spiked genotypes are congression-free and - left alone). Omit for no correction. intercept_cols : str Comma-separated columns whose unique combinations each get a nuisance ``ln_cfu0`` (default ``"replicate"``; empty string -> single intercept). @@ -150,12 +140,6 @@ def build_empirical(growth_file, Recommended for large libraries (the fits are embarrassingly parallel). """ growth_df = read_dataframe(growth_file) - spiked = None - if library_config is not None: - composition = library_composition_table(library_config) - spiked = list(composition.loc[composition["in_spiked_origin"], - "genotype"]) - icols = [c.strip() for c in str(intercept_cols).split(",") if c.strip()] dk_prior = None @@ -177,27 +161,13 @@ def build_empirical(growth_file, growth_df, calibration_file, intercept_cols=icols, dk_geno_prior=dk_prior, min_obs=min_obs, num_workers=num_workers) - # Stage 1.5 (optional): de-attenuate the bulk theta curves for congression. - # The raw Stage-1 table (results_df) is left as-is; the corrected fits are - # written to their own table so both are available and unambiguous. - stage1p5_df = None - if congression_lambda is not None and float(congression_lambda) > 0: - from tfscreen.tfmodel.genotype_fit.congression import ( - deattenuate_congression, - ) - print(f"Stage 1.5: de-attenuating congression " - f"(lambda={float(congression_lambda):g})...", flush=True) - fits = deattenuate_congression( - fits, growth_df, float(congression_lambda), spiked=spiked) - stage1p5_df = fits_to_results_df(fits) - # Stage 2: turn the per-genotype fits into ONE generating distribution # (deconvolving estimation noise). This distribution is the deliverable. print(f"Stage 2: building the generating distribution from " f"{len(fits)} per-genotype fits...", flush=True) model = fit_population(fits, drop_railed=drop_railed) - # Embed wt's actual (congression-corrected, if applied) phenotype so the + # Embed wt's actual phenotype so the # simulation pins wt to its real value rather than a resampled/mean draw. wt_keys = [k for k in fits if k[0] == "wt"] if wt_keys: @@ -214,26 +184,14 @@ def build_empirical(growth_file, fits_path = os.path.abspath(f"{out_prefix}_stage1_fits.csv") results_df.to_csv(fits_path, index=False) - # The de-attenuated (Stage-1.5) fits, when congression was applied. The - # Stage-1 table above is always the *raw* (pre-de-attenuation) fit. - stage1p5_path = None - if stage1p5_df is not None: - stage1p5_path = os.path.abspath(f"{out_prefix}_stage1p5_fits.csv") - stage1p5_df.to_csv(stage1p5_path, index=False) - bar = "=" * 72 print(f"\n{bar}") print(f"Fit the generating distribution from {model.n_used} genotypes " f"(loglik={model.loglik:.4g}, {model.n_iter} EM iters).") print("\n Phenotype model (the distribution tfs-simulate samples from):") print(f" {model_path}") - print(" Per-genotype Stage-1 fits, RAW / pre-de-attenuation " - "(diagnostic only, not used downstream):") + print(" Per-genotype Stage-1 fits (what feeds Stage 2):") print(f" {fits_path}") - if stage1p5_path is not None: - print(" Per-genotype Stage-1.5 fits, congression-de-attenuated " - "(what feeds Stage 2):") - print(f" {stage1p5_path}") print("\nTo simulate from it, add to your tfs-simulate config:") print(" phenotype_source: empirical") print(" empirical:") @@ -248,4 +206,4 @@ def main(): manual_arg_types={"binding_file": str, "calibration_file": str, "library_config": str, "base_growth_file": str, "thermo_data": str, "seed": int, "min_obs": int, - "congression_lambda": float, "num_workers": int}) + "num_workers": int}) diff --git a/src/tfscreen/simulate/transformation_lam_output.py b/src/tfscreen/simulate/transformation_lam_output.py index e8c9c4d9..a8e4e12a 100644 --- a/src/tfscreen/simulate/transformation_lam_output.py +++ b/src/tfscreen/simulate/transformation_lam_output.py @@ -8,7 +8,11 @@ global congression rate (see ``generative/components/transformation/mixture.py``) and extracts it as ``lam`` (see those modules' ``get_extract_specs``, which writes -``*_params_lam.csv``). This mirrors ``base_growth_data.generate_k_ref_df``: +``*_params_lam.csv``). The two are the same quantity: the fit's class +weights are the abundance shares of zero-truncated Poisson(lambda) cells +whose plasmids split the cell's abundance, as in the simulator +(``selection_experiment._plasmid_shares``), so the fit's ``lam`` is compared +to this value directly. This mirrors ``base_growth_data.generate_k_ref_df``: a single global scalar, not genotype- or condition-indexed, echoed to its own single-row ground-truth file. """ diff --git a/src/tfscreen/tfmodel/generative/components/theta_rescale/logit.py b/src/tfscreen/tfmodel/generative/components/theta_rescale/logit.py index ffe506a2..f7072b67 100644 --- a/src/tfscreen/tfmodel/generative/components/theta_rescale/logit.py +++ b/src/tfscreen/tfmodel/generative/components/theta_rescale/logit.py @@ -9,6 +9,6 @@ def rescale(theta: jnp.ndarray) -> jnp.ndarray: Clips theta to [_EPS, 1 - _EPS] before applying the logit so that the output is always finite. The same clipping pattern is used throughout - the rest of the theta pipeline (e.g. _congression.py, hill.py). + the rest of the theta pipeline (e.g. hill.py). """ return jax.scipy.special.logit(jnp.clip(theta, _EPS, 1.0 - _EPS)) diff --git a/src/tfscreen/tfmodel/generative/components/transformation/_congression.py b/src/tfscreen/tfmodel/generative/components/transformation/_congression.py deleted file mode 100644 index c836bf97..00000000 --- a/src/tfscreen/tfmodel/generative/components/transformation/_congression.py +++ /dev/null @@ -1,287 +0,0 @@ -""" -The expected-maximum theta operator for co-transformation. - -``update_thetas`` replaces a genotype's theta by ``E[max(theta, M)]``, where M -is the largest theta among Poisson(lambda) co-resident plasmids drawn from a -background distribution (logit-normal or the empirical population). It was -the fit's congression correction until step 3.3c of -``planning/congression-physics-plan.md`` replaced it with the observable-level -mixture (``mixture.py``). It is kept as a plain function for Stage 1.5 of -``tfs-fit-genotypes`` / ``tfs-build-empirical`` -(``tfmodel/genotype_fit/congression.py``), which de-attenuates theta curves -with it; it is not a registered transformation component. -""" - -import jax -import jax.numpy as jnp - -def _logit_normal_cdf(x, mu, sigma): - """ - Cumulative Distribution Function for Logit-Normal distribution: - F(x) = Phi((logit(x) - mu) / sigma) - - Parameters - ---------- - x : jax.array - occupancy value between 0 and 1 - mu : float - Mean of the underlying Normal distribution in logit-space. - sigma : float - Standard deviation of the underlying Normal distribution in logit-space. - - Returns - ------- - jax.array - cdf array - """ - # Clip x to [eps, 1-eps] for stability in logit - eps = 1e-6 - x_safe = jnp.clip(x, eps, 1.0 - eps) - - # Calculate logit(x) - logit_x = jax.scipy.special.logit(x_safe) - - # Return Phi((logit(x) - mu) / sigma) - return jax.scipy.stats.norm.cdf(logit_x, loc=mu, scale=sigma) - - -def _empirical_cdf(theta, t_grid): - """ - Cumulative Distribution Function estimated from the observed population - of theta values. - """ - n = theta.shape[-1] - sorted_theta = jnp.sort(theta, axis=-1) - - # Empirical CDF values at the sorted points. - # We use (i + 0.5) / n to be unbiased for a continuous distribution. - y = (jnp.arange(n) + 0.5) / n - - # Interpolate to the integration grid - shape = theta.shape[:-1] - flat_sorted = sorted_theta.reshape(-1, n) - - def get_cdf(s): - return jnp.interp(t_grid, s, y) - - flat_cdf = jax.vmap(get_cdf)(flat_sorted) - return flat_cdf.reshape(shape + (len(t_grid),)) - - -def update_thetas(theta, params, theta_dist=None, mask=None, n_grid=256, - population_theta=None): - """ - Corrects theta values for co-transformation using the method of - re-sampling from the background distribution. - - Parameters - ---------- - theta : jnp.array - Array of theta values to correct. - Expected shape: (..., num_genotype) - params : tuple - Tuple of parameters defining the background distribution. - If theta_dist is "logit_norm" (default): (lam, mu, sigma) - If theta_dist is "empirical": (lam,) - theta_dist : str, optional - One of "logit_norm" or "empirical". - If None, the distribution is inferred from the length of params. - mask : jnp.array, optional - Boolean array of shape (num_genotype,) where True indicates the - genotype should be corrected for congression. If None, all genotypes - are corrected. - n_grid : int, optional - Number of points for grid-based numerical integration (default 256). - population_theta : jnp.array, optional - Array of theta values used to build the background (empirical) CDF, - expected shape (..., num_population_genotype), broadcastable against - ``theta`` on every axis except the last. Only consulted when - ``theta_dist == "empirical"``. If None (default), ``theta`` itself is - used as the population sample, which is only statistically valid when - ``theta`` already spans the full genotype population — callers that - only ever see a genotype subset or minibatch (e.g. batched training or - single-genotype prediction) must pass the true population sample here - or the empirical CDF silently degenerates to whatever subset is - present, biasing the correction. Ignored for "logit_norm", which uses - the smooth analytic CDF in ``params`` instead of raw samples. - - Returns - ------- - jnp.array - Corrected theta array with shape broadcasted from inputs. - """ - # Extract parameters. We assume the first is always lam. - lam = params[0] - bg_params = params[1:] - - # Infer theta_dist if not provided - if theta_dist is None: - if len(bg_params) == 2: - theta_dist = "logit_norm" - elif len(bg_params) == 0: - theta_dist = "empirical" - else: - raise ValueError(f"Ambiguous parameter count: {len(params)}. Please specify theta_dist.") - - # Integration grid - t_grid = jnp.linspace(0.0, 1.0, n_grid) - - if theta_dist == "logit_norm": - # (lam, mu, sigma) - b_arrays = jnp.broadcast_arrays(*params[:3]) - flat_params = [jnp.reshape(a, -1) for a in b_arrays] - num_p_batches = flat_params[0].shape[0] - integration_shape = b_arrays[0].shape - flat_lam = flat_params[0] - - Ft_grid = jax.vmap(lambda m, s: _logit_normal_cdf(t_grid, m, s))(flat_params[1], flat_params[2]) - - elif theta_dist == "empirical": - # Build the background CDF from population_theta when supplied (the - # full genotype population) rather than theta itself (which may only - # cover a training minibatch or a handful of requested genotypes). - # See the population_theta docstring above. - pop_theta = theta if population_theta is None else population_theta - - Ft_grid_raw = _empirical_cdf(pop_theta, t_grid) - num_p_batches = Ft_grid_raw.reshape(-1, n_grid).shape[0] - - # Broadcast lambda to match the population's leading (non-genotype) - # dimensions, which must agree with theta's leading dimensions. - lam_b = jnp.broadcast_to(lam, pop_theta.shape[:-1]) - flat_lam = lam_b.reshape(-1) - - Ft_grid = Ft_grid_raw.reshape(-1, n_grid) - integration_shape = pop_theta.shape[:-1] - - else: - raise ValueError(f"Unsupported theta_dist: {theta_dist}") - - # Calculate integrand: exp(lam * (F(t) - 1)) - # integrand_grid shape: (num_p_batches, n_grid) - integrand_grid = jnp.exp(flat_lam[:, None] * (Ft_grid - 1.0)) - - # Cumulative integration using trapezoidal rule - # J(x) = integrate_0^x I(t) dt - h = 1.0 / (n_grid - 1) - f_mid = (integrand_grid[:, :-1] + integrand_grid[:, 1:]) * h / 2.0 - J_grid = jnp.concatenate([jnp.zeros((num_p_batches, 1)), jnp.cumsum(f_mid, axis=1)], axis=1) - - # Expected value calculation part 1: G(x) = integrate_x^1 I(t) dt - # G(x) = J(1) - J(x) - G1 = J_grid[:, -1:] - Gx_grid_p = G1 - J_grid - - # Reshape Gx_grid back to broadcasting-ready shape - # If integration_shape has a trailing 1 (genotype dim), remove it so we can broadcast - # to (target_shape + n_grid) correctly. - if len(integration_shape) > 0 and integration_shape[-1] == 1: - res_batch_shape = integration_shape[:-1] - else: - res_batch_shape = integration_shape - - Gx_grid_final = Gx_grid_p.reshape(res_batch_shape + (n_grid,)) - - # 3. Broadcast integration results to match theta's batch dimensions - target_shape = theta.shape[:-1] - num_genotypes = theta.shape[-1] - - # Gx_grid_final is already (integration_shape, n_grid) - # If integration_shape matches target_shape, we are good. - Gx_grid_b = jnp.broadcast_to(Gx_grid_final, target_shape + (n_grid,)) - - # 4. Interpolate G(x) for each genotype in the full batch - flat_theta = theta.reshape(-1, num_genotypes) - flat_Gx = Gx_grid_b.reshape(-1, n_grid) - - def interp_row(g_row, th_row): - return jnp.interp(th_row, t_grid, g_row) - - integral_vals = jax.vmap(interp_row)(flat_Gx, flat_theta) - - # Expected observed value E[max(x, M)] = 1 - G(x) - corrected_flat = 1.0 - integral_vals - - # Reshape back to original dimensions - corrected_theta = corrected_flat.reshape(target_shape + (num_genotypes,)) - - # 5. Apply mask if provided - if mask is not None: - corrected_theta = jnp.where(mask, corrected_theta, theta) - - return corrected_theta - -def calculate_expected_observed_max(x_val, mu, sigma, lam, n_grid=100): - """ - Calculate E[max(x, M)] where M is the maximum of a Poisson(lam) number - of samples from the background Logit-Normal(mu, sigma) distribution. - - Use the stable formula: - E[max(x, M)] = 1 - integrate_{x}^1 exp(lam * (F(t) - 1)) dt - - Parameters - ---------- - x_val : float - the true value of the object (float) - mu, sigma : float, float - shape parameters of the background population - lam : float - poisson parameter lambda - n_grid : int - number of grid points for integration - - Returns - ------- - float - expected observed value of x - """ - x_safe = jnp.clip(x_val, 0.0, 1.0) - - # 1. Integration part: integrate_{x}^1 exp(lam * (F(t) - 1)) dt - def integrand(t): - Ft = _logit_normal_cdf(t, mu, sigma) - return jnp.exp(lam * (Ft - 1.0)) - - t_grid = jnp.linspace(x_safe, 1.0, n_grid) - y_vals = integrand(t_grid) - integral_val = jnp.trapezoid(y_vals, t_grid) - - return 1.0 - integral_val - - -def calculate_expected_observed_min(x_val, mu, sigma, lam, n_grid=100): - """ - Calculate E[min(x, M)] where M is the minimum of a Poisson(lam) number - of samples from the background Logit-Normal(mu, sigma) distribution. - - Use the stable formula: - E[min(x, M)] = integrate_{0}^x exp(-lam * F(t)) dt - - Parameters - ---------- - x_val : float - the true value of the object (float) - mu, sigma : float, float - shape parameters of the background population - lam : float - poisson parameter lambda - n_grid : int - number of grid points for integration - - Returns - ------- - float - expected observed value of x - """ - x_safe = jnp.clip(x_val, 0.0, 1.0) - - # 1. Integration part: integrate_{0}^x exp(-lam * F(t)) dt - def integrand(t): - Ft = _logit_normal_cdf(t, mu, sigma) - return jnp.exp(-lam * Ft) - - t_grid = jnp.linspace(0.0, x_safe, n_grid) - y_vals = integrand(t_grid) - integral_val = jnp.trapezoid(y_vals, t_grid) - - return integral_val diff --git a/src/tfscreen/tfmodel/generative/components/transformation/mixture.py b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py index df2ebb1d..e304b14b 100644 --- a/src/tfscreen/tfmodel/generative/components/transformation/mixture.py +++ b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py @@ -2,9 +2,17 @@ Congression as an observable-level mixture of clean and congressed cells. A genotype's cells are a mixture: most carry only its plasmid ("clean"), -and a fraction ``w_cong = f_g (1 - exp(-lambda))`` also carry co-resident -plasmids (Poisson(lambda) co-residents, drawn from the bulk library). -Each class grows at its own rate, so the classes are mixed at the level of +and the rest also carry co-resident plasmids drawn from the bulk library. +Transformants carry M ~ zero-truncated Poisson(lambda) plasmids (cells that +took up none are never seen: they do not survive selection), and a cell's +plasmid copies are shared among the variants it carries, so a cell of M +plasmids gives each 1/M of its abundance. A genotype's abundance therefore +comes from cells with n co-residents in proportion to P(M = n + 1), and its +congressed fraction is + + w_cong = f_g (1 - P(M = 1)), P(M = 1) = lambda exp(-lambda) / (1 - exp(-lambda)) + +``lambda`` is the simulator's ``transformation_poisson_lambda``. Each class grows at its own rate, so the classes are mixed at the level of ``exp(ln_cfu)``, not rates or theta: ln_cfu_g(t) = ln_cfu0_g + log sum_c w_c exp(G_c(t)) @@ -46,7 +54,8 @@ @dataclass(frozen=True) class ModelPriors: """ - LogNormal prior on the congression Poisson rate lambda (the log-space + LogNormal prior on the congression rate lambda (the zero-truncated + Poisson rate of plasmids per transformant) (the log-space location and scale). """ @@ -83,32 +92,49 @@ def guide(name: str, return pyro.sample(f"{name}_lam", dist.LogNormal(lam_loc, lam_scale)) +def _log_p_congressed(lam): + """ + log(1 - P(M = 1)) for M ~ zero-truncated Poisson(lambda). + + ``1 - P(M = 1) = (e^lam - 1 - lam) / (e^lam - 1)``. The numerator + cancels catastrophically for small lambda, so it switches to its series + there (both branches are kept finite so the gradient is too). + """ + small = lam < 1e-2 + lam_big = jnp.where(small, 1.0, lam) + numer_big = jnp.expm1(lam_big) - lam_big + numer_small = 0.5 * lam**2 * (1.0 + lam / 3.0 + lam**2 / 12.0 + + lam**3 / 60.0) + numer = jnp.where(small, numer_small, numer_big) + return jnp.log(numer) - jnp.log(jnp.expm1(lam)) + + def _log_class_weights(lam, bulk_fraction, coresident_n): """ Log mixture weights, shape (1 + K, B): clean first, then the K sets. - ``w_cong = f (1 - exp(-lambda))``; set k (with n_k co-residents) gets - ``w_cong * P(N = n_k | N in strata; lambda) / K_{n_k}``, where the - stratum probabilities are Poisson(lambda) renormalized over the counts - that have sets. Written in log space so the lambda gradient stays finite - when ``f = 0`` (those congressed weights are -inf and drop out of the - logsumexp). + ``w_cong = f (1 - P(M = 1))`` with M ~ zero-truncated Poisson(lambda); + set k (with n_k co-residents, so M = n_k + 1) gets + ``w_cong * P(M = n_k + 1 | M - 1 in strata) / K_{n_k}``, the stratum + probabilities renormalized over the counts that have sets. Written in + log space so the lambda gradient stays finite when ``f = 0`` (those + congressed weights are -inf and drop out of the logsumexp). """ n = coresident_n.astype(float) # (K,) num_in_stratum = jnp.sum(coresident_n[None, :] == coresident_n[:, None], axis=1).astype(float) # (K,) - # Unnormalized log Poisson pmf; exp(-lambda) cancels in the normalization. - log_pmf = n * jnp.log(lam) - jax.scipy.special.gammaln(n + 1.0) + # Unnormalized log P(M = n + 1); constant factors cancel. + log_pmf = n * jnp.log(lam) - jax.scipy.special.gammaln(n + 2.0) # Each stratum appears K_n times; divide by K_n so it counts once. log_norm = jax.scipy.special.logsumexp(log_pmf - jnp.log(num_in_stratum)) log_stratum = log_pmf - log_norm - jnp.log(num_in_stratum) # (K,) - log_p_cong = jnp.log(-jnp.expm1(-lam)) + log_p_cong = _log_p_congressed(lam) log_f = jnp.log(bulk_fraction) # (B,) log_w_sets = log_f[None, :] + log_p_cong + log_stratum[:, None] # (K, B) - log_w_clean = jnp.log1p(-bulk_fraction * (-jnp.expm1(-lam))) # (B,) + log_w_clean = jnp.log1p(-bulk_fraction * jnp.exp(log_p_cong)) # (B,) return jnp.concatenate([log_w_clean[None, :], log_w_sets], axis=0) diff --git a/src/tfscreen/tfmodel/genotype_fit/__init__.py b/src/tfscreen/tfmodel/genotype_fit/__init__.py index a6f3a1e6..2867de45 100644 --- a/src/tfscreen/tfmodel/genotype_fit/__init__.py +++ b/src/tfscreen/tfmodel/genotype_fit/__init__.py @@ -3,7 +3,7 @@ A non-Bayesian, per-genotype inference engine for the same growth model that ``tfmodel`` fits jointly. Exposed by ``tfs-fit-genotypes`` and reused as -Stages 1 / 1.5 of the empirical-phenotype simulation pipeline. +Stage 1 of the empirical-phenotype simulation pipeline. """ from tfscreen.tfmodel.genotype_fit.fit import ( # noqa: F401 @@ -17,7 +17,3 @@ hill_theta_from_fit, read_calibration, ) -from tfscreen.tfmodel.genotype_fit.congression import ( # noqa: F401 - correct_theta_matrix, - deattenuate_congression, -) diff --git a/src/tfscreen/tfmodel/genotype_fit/congression.py b/src/tfscreen/tfmodel/genotype_fit/congression.py deleted file mode 100644 index e7fa640c..00000000 --- a/src/tfscreen/tfmodel/genotype_fit/congression.py +++ /dev/null @@ -1,231 +0,0 @@ -""" -Congression de-attenuation of per-genotype theta curves (co-transformation). - -A barcode observed in the bulk is really a cell that received a -zero-truncated-Poisson(lambda) number of plasmids. Under **dominant-max -occupancy** — the tightest-bound operator in a co-transformed cell sets the -effective theta, regardless of marker — the theta a monoclonal Hill fit -recovers for genotype ``g`` is inflated toward the population's high-occupancy -envelope: - - theta_obs = E[ max(theta_g, M) ], M = max of Poisson(lambda) co-residents - -drawn from the population theta distribution. This is exactly the inference's -own congression operator (``transformation._congression.update_thetas``, the -``E[max(x, M)]`` map with an empirical background CDF), and because a focal -barcode is size-biased into its cell, the co-resident count is Poisson at the -same ``lambda`` the simulator's ``transformation_poisson_lambda`` uses — so no -lambda conversion is needed. - -We want ``theta_true`` such that pushing it through that forward map (with the -background built from ``theta_true`` itself) reproduces ``theta_obs``. That is -a fixed point because the background *is* the corrected population, which -changes every pass. Per titrant concentration is an independent 1-D -correction; the Hill refit afterward re-links the concentrations into a curve. - -This is the standalone (``tfs-fit-genotypes``) and Stage-1.5 (empirical -simulation pipeline) de-attenuation layer; ``simulate/empirical/congression`` -re-exports it. - -Scope / assumptions -------------------- -* **Dominant-max occupancy only** (single ``E[max]`` operator; no min variant). -* Corrects only **bulk** genotypes; spiked genotypes are congression-free, so - they are excluded from both the correction and the background CDF and pass - through unchanged. -* Operates on the genotype × concentration theta *point estimates* (pooled over - replicate/library by Stage 1); ``dk_geno`` is untouched (it is a growth - parameter, not part of the theta curve). Estimation-noise deconvolution - stays in Stage 2 — this stage only removes the congression *bias*, and keeps - each genotype's Stage-1 covariance (a deliberate approximation: the bias - shift barely changes estimation precision). - -This is the θ-level analogue of the simulator's growth-level congression; the -two agree to first order (exact at ``lambda -> 0``), and the spiked-only -distribution is the external check on the residual. -""" - -import numpy as np -import jax.numpy as jnp -import pandas as pd - -from tfscreen.util.io import read_dataframe -from tfscreen.mle.fitters.least_squares import run_least_squares -from tfscreen.tfmodel.genotype_fit.fit import ( - _hill_theta, hill_theta_from_fit, _POWER_CLIP, _LOGIT_BOUND, -) -from tfscreen.tfmodel.generative.components.transformation._congression import ( - update_thetas, -) -from scipy.special import expit # noqa: F401 (kept for backward-compat imports) - -# Positions within the 5-element pheno block (PHENO_PARAMS_TRANSFORMED) of the -# theta-curve params: logit_theta_low, logit_theta_high, log_hill_K, log_hill_n. -# Index 0 (dk_geno) is a growth parameter and is left untouched. -_THETA_PARAM_IDX = np.array([1, 2, 3, 4]) - -_THETA_EPS = 1e-6 - - -def _theta_from_fit(fit, concs): - """Backward-compatible alias for :func:`fit.hill_theta_from_fit`.""" - return hill_theta_from_fit(fit, concs) - - -def correct_theta_matrix(theta_obs, lam, gain=1.0, tol=1e-4, max_iter=50, - n_grid=256, return_history=False): - """Fixed-point de-attenuation of an observed-theta matrix. - - Parameters - ---------- - theta_obs : np.ndarray, shape (n_conc, n_geno) - Observed theta per concentration (rows) and genotype (cols). Each row - is corrected against its own population CDF. - lam : float - Poisson co-resident rate (== the zero-truncated ``transformation_poisson_lambda``). - gain, tol, max_iter, n_grid : see module notes. - return_history : bool - If True, also return the list of intermediate ``theta_true`` matrices, - one per iteration (index 0 is the initial clamped ``theta_obs``, the - last entry is the converged estimate). Lets callers report the - convergence trajectory per concentration. - - Returns - ------- - theta_true : np.ndarray, shape (n_conc, n_geno) - n_iter : int - history : list of np.ndarray - Only when ``return_history`` is True. - """ - theta_obs = np.asarray(theta_obs, dtype=float) - theta_true = np.clip(theta_obs.copy(), _THETA_EPS, 1.0 - _THETA_EPS) - history = [theta_true.copy()] - - if lam is None or float(lam) <= 0: - out = theta_obs.copy() - return (out, 0, history) if return_history else (out, 0) - - n_iter = 0 - for n_iter in range(1, max_iter + 1): - theta_pred = np.asarray(update_thetas( - jnp.asarray(theta_true), (float(lam),), theta_dist="empirical", - population_theta=jnp.asarray(theta_true), n_grid=n_grid)) - resid = theta_obs - theta_pred - if np.nanmax(np.abs(resid)) < tol: - break - theta_true = np.clip(theta_true + gain * resid, _THETA_EPS, 1.0 - _THETA_EPS) - history.append(theta_true.copy()) - - return (theta_true, n_iter, history) if return_history else (theta_true, n_iter) - - -def _refit_hill_theta(concs, theta, guess_pheno): - """Refit the 4 transformed theta-Hill params to a corrected theta curve. - - ``guess_pheno`` is the genotype's current pheno block (used to seed). - Returns ``(logit_low, logit_high, log_K, log_n)``. - """ - def model(p_t, x): - low = expit(p_t[0]) - high = expit(p_t[1]) - log_K = p_t[2] - n = np.exp(p_t[3]) - return _hill_theta(x, low, high, log_K, n) - - guess = np.asarray(guess_pheno)[_THETA_PARAM_IDX].astype(float) - lower = np.array([-_LOGIT_BOUND, -_LOGIT_BOUND, np.log(1e-12), np.log(0.05)]) - upper = np.array([_LOGIT_BOUND, _LOGIT_BOUND, np.log(1e6), np.log(_POWER_CLIP)]) - est, _std, _cov, _fit = run_least_squares( - some_model=model, - obs=np.asarray(theta, dtype=float), - obs_std=np.ones_like(theta, dtype=float), - guesses=guess, lower_bounds=lower, upper_bounds=upper, - args=(np.asarray(concs, dtype=float),)) - return est - - -def deattenuate_congression(fits, growth_df, lam, spiked=None, - gain=1.0, tol=1e-4, max_iter=50, n_grid=256, - return_theta_history=False): - """Congression-correct the bulk theta curves in a Stage-1 ``fits`` dict. - - Parameters - ---------- - fits : dict - ``{(genotype, titrant_name): GenotypeFit}`` from ``fit_phenotypes``. - growth_df : pandas.DataFrame or str - The real ln_cfu data (supplies the per-titrant concentration grid the - theta curves are corrected on). - lam : float or None - Zero-truncated Poisson congression rate. ``None``/``<=0`` -> no-op. - spiked : iterable of str or None - Congression-free genotypes to exclude from correction and background. - gain, tol, max_iter, n_grid : fixed-point controls. - return_theta_history : bool - If True, also return a long-form DataFrame of the fixed-point theta - trajectory (columns ``genotype, titrant_name, titrant_conc, iter, - theta``), for diagnosing the convergence. - - Returns - ------- - corrected : dict - A new fits dict: bulk genotypes' theta-Hill params de-attenuated (Hill - refit; dk_geno and covariance unchanged); spiked genotypes untouched. - history_df : pandas.DataFrame - Only when ``return_theta_history`` is True. - """ - empty_hist = pd.DataFrame( - columns=["genotype", "titrant_name", "titrant_conc", "iter", "theta"]) - - if lam is None or float(lam) <= 0: - out = dict(fits) - return (out, empty_hist) if return_theta_history else out - - spiked = set(spiked or []) - growth_df = read_dataframe(growth_df) - corrected = dict(fits) - hist_rows = [] - - for titrant_name, sub in growth_df.groupby("titrant_name", observed=True): - concs = np.sort(sub["titrant_conc"].unique().astype(float)) - - keys = [k for k in fits - if k[1] == titrant_name and k[0] not in spiked - and np.all(np.isfinite(fits[k].est_t))] - if len(keys) < 2: - continue # need a population to build a background CDF - - # (n_conc, n_geno) observed theta. - theta_obs = np.stack([hill_theta_from_fit(fits[k], concs) for k in keys], - axis=1) - result = correct_theta_matrix( - theta_obs, float(lam), gain=gain, tol=tol, max_iter=max_iter, - n_grid=n_grid, return_history=return_theta_history) - - if return_theta_history: - theta_true, _, history = result - for it, mat in enumerate(history): - for i_c, c in enumerate(concs): - for j, k in enumerate(keys): - hist_rows.append({ - "genotype": k[0], "titrant_name": titrant_name, - "titrant_conc": float(c), "iter": it, - "theta": float(mat[i_c, j])}) - else: - theta_true, _ = result - - for j, k in enumerate(keys): - fit = fits[k] - new_theta_t = _refit_hill_theta( - concs, theta_true[:, j], fit.est_t[fit.pheno_slice]) - est_t = np.array(fit.est_t, dtype=float) - pheno = est_t[fit.pheno_slice].copy() - pheno[_THETA_PARAM_IDX] = new_theta_t - est_t[fit.pheno_slice] = pheno - corrected[k] = fit._replace(est_t=est_t) - - if return_theta_history: - history_df = (pd.DataFrame(hist_rows, columns=empty_hist.columns) - if hist_rows else empty_hist) - return corrected, history_df - return corrected diff --git a/src/tfscreen/tfmodel/genotype_fit/fit.py b/src/tfscreen/tfmodel/genotype_fit/fit.py index c2c85de8..a9234501 100644 --- a/src/tfscreen/tfmodel/genotype_fit/fit.py +++ b/src/tfscreen/tfmodel/genotype_fit/fit.py @@ -151,8 +151,7 @@ def hill_theta_from_fit(fit, concs): """Evaluate a genotype's fitted Hill curve at ``concs`` (natural conc). Reads the theta-curve params out of a :class:`GenotypeFit`'s phenotype - block and evaluates :func:`_hill_theta`. Used by :func:`predict_theta` and - by the congression de-attenuation stage. + block and evaluates :func:`_hill_theta`. Used by :func:`predict_theta`. """ pheno = np.asarray(fit.est_t)[fit.pheno_slice] theta_low = expit(pheno[1]) @@ -440,15 +439,13 @@ def fits_to_results_df(fits): """Assemble the per-genotype results table from a ``fits`` dict. ``fits`` is ``{(genotype, titrant_name): GenotypeFit}`` (as returned by - :func:`fit_phenotypes` or produced by the congression de-attenuation - stage). Returns one row per fit with ``n_obs``, ``converged``, the five + :func:`fit_phenotypes`). Returns one row per fit with ``n_obs``, ``converged``, the five natural-space phenotype parameters, and their transformed-space estimate/std (``_t``, ``_t_std``). Dict insertion order is preserved. - Because this reads only ``est_t``/``cov_t``, it produces the same schema - whether the fits are raw (Stage 1) or de-attenuated (Stage 1.5), which is - how ``tfs-fit-genotypes`` emits the raw and corrected parameter tables. + Because this reads only ``est_t``/``cov_t``, it gives the same schema for + any fits dict with those fields. """ rows = [] for (geno, titr), gf in fits.items(): @@ -488,7 +485,7 @@ def predict_theta(fits, growth_df, theta_col="theta"): The ln_cfu data (supplies the per-titrant concentration grid). theta_col : str Name of the output theta column (default ``"theta"``). Pass a - distinct name to concatenate/merge raw and de-attenuated predictions. + distinct name to merge predictions from different fits. Returns ------- diff --git a/src/tfscreen/tfmodel/scripts/fit_genotypes_cli.py b/src/tfscreen/tfmodel/scripts/fit_genotypes_cli.py index 81777280..e38951da 100644 --- a/src/tfscreen/tfmodel/scripts/fit_genotypes_cli.py +++ b/src/tfscreen/tfmodel/scripts/fit_genotypes_cli.py @@ -7,48 +7,36 @@ genotype's phenotype ``(dk_geno, theta_low, theta_high, log_hill_K, hill_n)`` by nonlinear least squares (see :mod:`tfscreen.tfmodel.genotype_fit.fit`). -An optional congression de-attenuation pass (``--congression_lambda``) removes -the co-transformation bias from the *bulk* genotypes' theta curves via the -iterative fixed point (predict theta -> de-attenuate against the population -> -refit Hill). It is inherently a population operation: the correction couples -all bulk genotypes through their shared background occupancy distribution. -Spiked genotypes (named by ``--library_config``) are congression-free and pass through -untouched. - Outputs (under ``--out_prefix``) -------------------------------- -* ``_params.csv`` — one row per (genotype, titrant_name): the RAW MLE +* ``_params.csv`` — one row per (genotype, titrant_name): the MLE fit (natural + transformed params, transformed-space std). -* ``_params_deattenuated.csv`` — same schema for the de-attenuated - fits (only when ``--congression_lambda`` is given). * ``_theta.csv`` — long form ``[genotype, titrant_name, titrant_conc, - theta_raw]`` (plus ``theta_deattenuated`` when congression ran): the fitted - Hill curves evaluated on each titrant's concentration grid. -* ``_theta_history.csv`` — long form ``[genotype, titrant_name, - titrant_conc, iter, theta]``: the congression fixed-point trajectory (only - with ``--congression_lambda`` and ``--save_theta_history``). + theta_raw]``: the fitted Hill curves evaluated on each titrant's + concentration grid. + +The fits are not corrected for congression (co-transformation): the bulk +genotypes' theta curves carry that bias. The old theta-only de-attenuation +(``--congression_lambda``) was retired with the move to the observable-level +congression mixture in ``tfs-fit-model``. """ import os from tfscreen.tfmodel.genotype_fit.fit import ( - fit_phenotypes, fits_to_results_df, predict_theta, + fit_phenotypes, predict_theta, ) from tfscreen.util.io import read_dataframe -from tfscreen.genetics import library_composition_table from tfscreen.util.cli.generalized_main import generalized_main def fit_genotypes(growth_file, calibration_file, out_prefix="tfs_mle", - congression_lambda=None, - library_config=None, intercept_cols="replicate", dk_geno_prior_sd=1.0, min_obs=None, - num_workers=1, - save_theta_history=False): + num_workers=1): """ Fit the growth model to each genotype independently (frozen calibration). @@ -61,15 +49,6 @@ def fit_genotypes(growth_file, priors CSV, or a wide ``condition_rep,growth_k,growth_m`` CSV. out_prefix : str Output prefix (see the module docstring for the files written). - congression_lambda : float, optional - Zero-truncated Poisson congression rate (the same lambda as the - simulator's ``transformation_poisson_lambda``). When given, run the - de-attenuation pass; omit for raw MLE fits only. - library_config : str, optional - Library YAML describing the screened library (the same file handed to - ``tfs-process-fastq``). Genotypes encoded by a spiked sequence are - congression-free and are excluded from the de-attenuation correction - and its background. Only relevant with ``--congression_lambda``. intercept_cols : str Comma-separated columns whose unique combinations each get a nuisance ``ln_cfu0`` (default ``"replicate"``; empty string -> single intercept). @@ -80,17 +59,8 @@ def fit_genotypes(growth_file, num_workers : int Parallelize the per-genotype fits over a process pool: ``1`` (default) serial; ``-1`` uses ``os.cpu_count() - 1``; ``N`` uses ``N``. - save_theta_history : bool - Also write the congression fixed-point theta trajectory - (``_theta_history.csv``). Only meaningful with - ``--congression_lambda``. """ growth_df = read_dataframe(growth_file) - spiked = None - if library_config is not None: - composition = library_composition_table(library_config) - spiked = list(composition.loc[composition["in_spiked_origin"], - "genotype"]) icols = [c.strip() for c in str(intercept_cols).split(",") if c.strip()] @@ -98,7 +68,7 @@ def fit_genotypes(growth_file, if dk_geno_prior_sd is not None and float(dk_geno_prior_sd) > 0: dk_prior = (0.0, float(dk_geno_prior_sd)) - # --- Raw per-genotype MLE fits. --------------------------------------- + # --- Per-genotype MLE fits. ------------------------------------------- print("Fitting each genotype independently (frozen calibration)...", flush=True) results_df, fits = fit_phenotypes( @@ -107,32 +77,6 @@ def fit_genotypes(growth_file, theta_df = predict_theta(fits, growth_df, theta_col="theta_raw") - # --- Optional congression de-attenuation. ----------------------------- - deatt_df = None - history_df = None - do_congression = (congression_lambda is not None - and float(congression_lambda) > 0) - if do_congression: - from tfscreen.tfmodel.genotype_fit.congression import ( - deattenuate_congression, - ) - print(f"De-attenuating congression " - f"(lambda={float(congression_lambda):g})...", flush=True) - result = deattenuate_congression( - fits, growth_df, float(congression_lambda), spiked=spiked, - return_theta_history=save_theta_history) - if save_theta_history: - corrected_fits, history_df = result - else: - corrected_fits = result - - deatt_df = fits_to_results_df(corrected_fits) - theta_deatt = predict_theta(corrected_fits, growth_df, - theta_col="theta_deattenuated") - theta_df = theta_df.merge( - theta_deatt, on=["genotype", "titrant_name", "titrant_conc"], - how="left") - # --- Write outputs. --------------------------------------------------- params_path = os.path.abspath(f"{out_prefix}_params.csv") results_df.to_csv(params_path, index=False) @@ -140,37 +84,20 @@ def fit_genotypes(growth_file, theta_path = os.path.abspath(f"{out_prefix}_theta.csv") theta_df.to_csv(theta_path, index=False) - deatt_path = None - if deatt_df is not None: - deatt_path = os.path.abspath(f"{out_prefix}_params_deattenuated.csv") - deatt_df.to_csv(deatt_path, index=False) - - history_path = None - if history_df is not None: - history_path = os.path.abspath(f"{out_prefix}_theta_history.csv") - history_df.to_csv(history_path, index=False) - bar = "=" * 72 print(f"\n{bar}") print(f"Fit {len(fits)} (genotype, titrant_name) groups.") - print("\n Per-genotype parameters (raw MLE fit):") + print("\n Per-genotype parameters (MLE fit):") print(f" {params_path}") - if deatt_path is not None: - print(" Per-genotype parameters (congression-de-attenuated):") - print(f" {deatt_path}") print(" Predicted theta vs (genotype, titrant_name, titrant_conc):") print(f" {theta_path}") - if history_path is not None: - print(" Congression fixed-point theta trajectory:") - print(f" {history_path}") print(bar) def main(): return generalized_main( fit_genotypes, - manual_arg_types={"library_config": str, "congression_lambda": float, - "min_obs": int, "num_workers": int}) + manual_arg_types={"min_obs": int, "num_workers": int}) if __name__ == "__main__": diff --git a/tests/tfscreen/analysis/test_calibration_grid.py b/tests/tfscreen/analysis/test_calibration_grid.py index 49fd5428..2a118e4d 100644 --- a/tests/tfscreen/analysis/test_calibration_grid.py +++ b/tests/tfscreen/analysis/test_calibration_grid.py @@ -88,6 +88,7 @@ def test_quantile_columns_sorted_numerically(): GENOTYPES = [f"G{i}V" for i in range(40)] SPIKED = {"G0V", "G1V"} +ALSO_BULK = {"G1V"} # G1V: spiked and in the bulk (mixed) BINDING = {"G0V", "G1V", "G2V", "G3V"} # two spiked + two bulk with binding @@ -96,10 +97,11 @@ def _write_run(run_dir, combo, spread, seed, with_summary=True): with open(os.path.join(run_dir, "combo.json"), "w") as fh: json.dump(combo, fh) - pd.DataFrame({ - "library_origin": ["spiked" if g in SPIKED else "double-1-2" for g in GENOTYPES], - "genotype": GENOTYPES, - }).to_csv(os.path.join(run_dir, "tfs_sim_library.csv"), index=False) + rows = ([("spiked", g) for g in GENOTYPES if g in SPIKED] + + [("double-1-2", g) for g in GENOTYPES + if g not in SPIKED or g in ALSO_BULK]) + pd.DataFrame(rows, columns=["library_origin", "genotype"]).to_csv( + os.path.join(run_dir, "tfs_sim_library.csv"), index=False) pd.DataFrame({"genotype": sorted(BINDING)}).to_csv( os.path.join(run_dir, "tfs_sim_binding.csv"), index=False) @@ -150,8 +152,10 @@ def grid_dir(tmp_path): def test_genotype_strata(grid_dir): strata = genotype_strata(os.path.join(grid_dir, "run_component_sim1")).set_index("genotype") - assert strata.loc["G0V", "origin"] == "spiked" - assert strata.loc["G2V", "origin"] == "bulk" + assert len(strata) == len(GENOTYPES) + assert strata.loc["G0V", "purity"] == "spike" + assert strata.loc["G1V", "purity"] == "mixed" + assert strata.loc["G2V", "purity"] == "bulk" assert strata.loc["G2V", "has_binding"] == "yes" assert strata.loc["G9V", "has_binding"] == "no" @@ -165,10 +169,10 @@ def test_summarize_run_strata_rows(grid_dir): rows, problem = summarize_run(os.path.join(grid_dir, "run_auto_normal_sim1")) assert problem is None theta = pd.DataFrame([r for r in rows if r["quantity"] == "theta_test"]) - pooled = theta[(theta.has_binding == "all") & (theta.origin == "all") + pooled = theta[(theta.has_binding == "all") & (theta.purity == "all") & (theta.theta_regime == "all")] assert pooled["n"].item() == 40 * 25 - cross = theta[(theta.has_binding == "yes") & (theta.origin == "bulk")] + cross = theta[(theta.has_binding == "yes") & (theta.purity == "bulk")] assert cross["n"].item() == 2 * 25 # G2V, G3V saturated = theta[theta.theta_regime == "saturated"] assert saturated["n"].item() >= 25 # at least G0V @@ -203,7 +207,7 @@ def test_paired_differences_match_same_simulation(grid_dir): paired = paired_differences(runs_df, grid_vars, {"guide_type": "component", "guide_rank": None}) pooled = paired[(paired.quantity == "theta_test") & (paired.has_binding == "all") - & (paired.origin == "all") & (paired.theta_regime == "all")] + & (paired.purity == "all") & (paired.theta_regime == "all")] assert sorted(pooled["seed"]) == [1, 2] # one pair per simulation assert (pooled["delta_calibration_error"] < 0).all() # calibrated beats baseline assert (pooled["delta_width_0.95"] > 0).all() @@ -229,7 +233,7 @@ def test_summarize_calibration_writes_outputs(grid_dir, tmp_path): arms = pd.read_csv(out_prefix + "_arms.csv") pooled = arms[(arms.quantity == "theta_test") & (arms.has_binding == "all") - & (arms.origin == "all") & (arms.theta_regime == "all")] + & (arms.purity == "all") & (arms.theta_regime == "all")] assert set(pooled["n_runs"]) == {2} # 2 finished sims per arm cov = pooled.set_index("guide_type")["coverage_0.95_mean"] assert cov["auto_normal"] == pytest.approx(0.95, abs=0.03) @@ -238,7 +242,7 @@ def test_summarize_calibration_writes_outputs(grid_dir, tmp_path): paired_summary = pd.read_csv(out_prefix + "_paired_summary.csv") row = paired_summary[(paired_summary.quantity == "theta_test") & (paired_summary.has_binding == "all") - & (paired_summary.origin == "all") + & (paired_summary.purity == "all") & (paired_summary.theta_regime == "all")] assert row["n_pairs"].item() == 2 assert row["delta_calibration_error_mean"].item() < 0 diff --git a/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py b/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py index a04e0dcd..f0607714 100644 --- a/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py +++ b/tests/tfscreen/simulate/empirical/test_build_empirical_cli.py @@ -181,3 +181,9 @@ def test_cli_requires_binding_or_calibration(tmp_path): with pytest.raises(ValueError, match="binding data is required"): build_empirical(str(growth_csv), seed=0, out_prefix=str(tmp_path / "emp")) + + +def test_congression_lambda_is_retired(tmp_path): + with pytest.raises(TypeError, match="congression_lambda"): + build_empirical("growth.csv", seed=0, congression_lambda=1.0, + out_prefix=str(tmp_path / "emp")) diff --git a/tests/tfscreen/simulate/empirical/test_congression.py b/tests/tfscreen/simulate/empirical/test_congression.py deleted file mode 100644 index 49d90e83..00000000 --- a/tests/tfscreen/simulate/empirical/test_congression.py +++ /dev/null @@ -1,130 +0,0 @@ -"""Tests for Stage-1.5 congression de-attenuation.""" - -import numpy as np -import jax.numpy as jnp -import pandas as pd -import pytest -from scipy.special import expit, logit - -from tfscreen.tfmodel.generative.components.transformation._congression import ( - update_thetas, -) -from tfscreen.simulate.empirical.congression import ( - correct_theta_matrix, - deattenuate_congression, -) -from tfscreen.simulate.empirical.fit_phenotypes import ( - GenotypeFit, PHENO_PARAMS_TRANSFORMED, -) - - -def _forward(theta_true, lam): - """Apply the congression forward operator E[max(x, M)].""" - return np.asarray(update_thetas( - jnp.asarray(theta_true), (float(lam),), theta_dist="empirical", - population_theta=jnp.asarray(theta_true))) - - -# --------------------------------------------------------------------------- -# correct_theta_matrix — the fixed-point core -# --------------------------------------------------------------------------- - -def test_roundtrip_recovers_true_population(): - rng = np.random.default_rng(0) - # 300 genotypes at 2 independent conditions. - theta_true = expit(rng.normal(0.0, 1.5, size=(2, 300))) - theta_obs = _forward(theta_true, lam=1.0) - - # Congression can only inflate (max), so observed >= true. - assert np.all(theta_obs >= theta_true - 1e-9) - # ...and it compresses the population (masks the low end up). - assert np.std(theta_obs) < np.std(theta_true) - - theta_rec, n_iter = correct_theta_matrix( - theta_obs, lam=1.0, tol=1e-6, max_iter=200) - - assert np.median(np.abs(theta_rec - theta_true)) < 0.03 - assert np.std(theta_rec) == pytest.approx(np.std(theta_true), abs=0.03) - - -def test_lambda_zero_is_noop(): - rng = np.random.default_rng(1) - theta_obs = expit(rng.normal(0, 1, size=(1, 50))) - theta_rec, n_iter = correct_theta_matrix(theta_obs, lam=0.0) - assert np.allclose(theta_rec, theta_obs) - assert n_iter == 0 - - -def test_correction_pulls_observed_down(): - rng = np.random.default_rng(2) - theta_true = expit(rng.normal(0, 1.5, size=(1, 300))) - theta_obs = _forward(theta_true, lam=1.5) - theta_rec, _ = correct_theta_matrix(theta_obs, lam=1.5, max_iter=200) - # E[max] >= true, so the inverse pulls the observed population down. - assert np.mean(theta_rec) < np.mean(theta_obs) - - -# --------------------------------------------------------------------------- -# deattenuate_congression — the fits-level wrapper -# --------------------------------------------------------------------------- - -def _make_fit(genotype, theta_low, theta_high, log_K, n, dk=0.0): - # est_t: [ln_cfu0, dk_geno, logit_low, logit_high, log_K, log_n] - est_t = np.array([5.0, dk, logit(theta_low), logit(theta_high), - log_K, np.log(n)]) - cov_t = np.eye(6) * 0.01 - return GenotypeFit( - genotype=genotype, titrant_name="iptg", n_obs=100, converged=True, - param_names_t=["ln_cfu0[0]"] + list(PHENO_PARAMS_TRANSFORMED), - est_t=est_t, cov_t=cov_t, pheno_slice=slice(1, 6)) - - -def _mean_theta_high(fits, orig_keys): - # theta_high = expit(est_t[3]) (induced-end occupancy). - return np.mean([expit(fits[k].est_t[3]) for k in orig_keys]) - - -def _build_fits(rng, n=25): - fits = {} - for i in range(n): - fits[(f"A{i}V", "iptg")] = _make_fit( - f"A{i}V", - theta_low=rng.uniform(0.7, 0.98), - theta_high=rng.uniform(0.02, 0.5), - log_K=rng.uniform(np.log(1e-3), np.log(0.3)), # spread -> dynamic range - n=rng.uniform(0.8, 2.0)) - fits[("wt", "iptg")] = _make_fit("wt", 0.99, 0.01, np.log(0.017), 2.0) - return fits - - -_CONCS = [0.0, 1e-3, 1e-2, 1e-1, 1.0] -_GROWTH_DF = pd.DataFrame({"titrant_name": ["iptg"] * len(_CONCS), - "titrant_conc": _CONCS}) - - -def test_deattenuate_leaves_spiked_untouched_and_corrects_bulk(): - rng = np.random.default_rng(3) - fits = _build_fits(rng) - bulk_keys = [k for k in fits if k[0] != "wt"] - - corrected = deattenuate_congression(fits, _GROWTH_DF, lam=1.0, spiked={"wt"}) - - # Spiked genotype is congression-free -> identical. - assert np.allclose(corrected[("wt", "iptg")].est_t, - fits[("wt", "iptg")].est_t) - # Bulk genotypes were corrected. - assert any(not np.allclose(corrected[k].est_t, fits[k].est_t) - for k in bulk_keys) - # De-attenuation pulls the masked induced-end occupancy back down. - assert _mean_theta_high(corrected, bulk_keys) < _mean_theta_high(fits, bulk_keys) - # dk_geno (index 1) is untouched by the theta correction. - for k in bulk_keys: - assert corrected[k].est_t[1] == fits[k].est_t[1] - - -def test_deattenuate_lambda_none_is_noop(): - rng = np.random.default_rng(4) - fits = _build_fits(rng) - noop = deattenuate_congression(fits, _GROWTH_DF, lam=None, spiked={"wt"}) - for k in fits: - assert np.allclose(noop[k].est_t, fits[k].est_t) diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py b/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py deleted file mode 100644 index a66071be..00000000 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test__congression.py +++ /dev/null @@ -1,189 +0,0 @@ -""" -Tests for the expected-maximum theta operator (``_congression.update_thetas``), -kept for Stage 1.5 of tfs-fit-genotypes. The registered transformation -components are tested in test_single.py and test_mixture.py. -""" -import jax.numpy as jnp - -from tfscreen.tfmodel.generative.components.transformation import ( - _congression as transformation_congression, -) - -# ------------------------------------------------------------------------- -# Math Utilities -# ------------------------------------------------------------------------- - -def test_logit_normal_cdf(): - """Test CDF calculation values.""" - mu, sigma = 0.0, 1.0 - x = jnp.array([0.0, 0.5, 1.0]) - # logit(0.5) = 0. - # Phi((0 - 0)/1) = Phi(0) = 0.5 - - cdf = transformation_congression._logit_normal_cdf(x, mu, sigma) - - assert jnp.isclose(cdf[0], 0.0, atol=1e-5) - assert jnp.isclose(cdf[1], 0.5, atol=1e-5) - assert jnp.isclose(cdf[2], 1.0, atol=1e-5) - -def test_empirical_cdf(): - """Test empirical CDF calculation.""" - theta = jnp.array([0.1, 0.5, 0.9]) - t_grid = jnp.array([0.0, 0.2, 0.5, 0.8, 1.0]) - - # theta has 3 elements. y = [0.166, 0.5, 0.833] (using 0.5/n) - # Sorted: 0.1, 0.5, 0.9 - cdf = transformation_congression._empirical_cdf(theta, t_grid) - - assert cdf.shape == (5,) - assert cdf[0] == 0.16666667 # Interp 0.0 at 0.1 returns y[0] - assert jnp.isclose(cdf[2], 0.5) # 0.5 is exactly in theta - assert jnp.isclose(cdf[4], 5/6, atol=1e-5) # Interp 1.0 at 0.9 returns y[2] - - -# ------------------------------------------------------------------------- -# Correction Logic -# ------------------------------------------------------------------------- - -def test_calculate_expected_observed_max(): - """Verify correction logic for congression.""" - # Case 1: Target > Background - x_val = 0.9 - lam = 1.0 - mu, sigma = -2.0, 1.0 # Low mean - - res = transformation_congression.calculate_expected_observed_max(x_val, mu, sigma, lam) - - assert jnp.isclose(res, x_val, atol=0.05) - assert res >= x_val - - # Case 2: Target < Background - x_val = 0.1 - mu, sigma = 2.0, 1.0 - - res = transformation_congression.calculate_expected_observed_max(x_val, mu, sigma, lam) - - assert res > 0.5 - -def test_calculate_expected_observed_min(): - """Verify correction logic for min.""" - x_val = 0.9 - mu, sigma = -2.0, 1.0 - lam = 1.0 - - res = transformation_congression.calculate_expected_observed_min(x_val, mu, sigma, lam) - - assert res < x_val - assert res > 0.0 - -def test_update_thetas_shapes(): - """Verify shape processing with plated params.""" - theta = jnp.ones((2, 5)) * 0.5 - - lam = 1.0 - mu = jnp.array([[0.0], [0.0]]) # shape (2, 1) - sigma = jnp.array([[1.0], [1.0]]) # shape (2, 1) - - params = (lam, mu, sigma) - - res = transformation_congression.update_thetas(theta, params=params) - assert res.shape == (2, 5) - - # With mask (line 129) - mask = jnp.array([True, False, True, False, True]) # Length must match num_genotypes (5) - res_mask = transformation_congression.update_thetas(theta, params=params, mask=mask) - assert res_mask.shape == (2, 5) - # Check that entries where mask is False are unchanged - assert jnp.all(res_mask[:, 1] == theta[:, 1]) - assert jnp.all(res_mask[:, 3] == theta[:, 3]) - - # Empirical mode call within shapes test - res_emp = transformation_congression.update_thetas(theta, params=(lam,), theta_dist="empirical") - assert res_emp.shape == (2, 5) - -def test_update_thetas_empirical_values(): - """Verify empirical mode update_thetas with realistic values.""" - theta = jnp.array([[0.1, 0.5, 0.9], [0.2, 0.6, 1.0]]) - lam = 1.0 - params = (lam,) - - res = transformation_congression.update_thetas(theta, params=params, theta_dist="empirical") - assert res.shape == (2, 3) - # Result should be >= input for max-congression - assert jnp.all(res >= theta - 1e-6) - - -# ------------------------------------------------------------------------- -# population_theta: population-wide background CDF for empirical mode -# ------------------------------------------------------------------------- - -def test_update_thetas_population_theta_defaults_to_theta(): - """Omitting population_theta must reproduce the pre-existing behaviour of - building the background CDF from theta itself (backward compatibility).""" - theta = jnp.array([[0.1, 0.5, 0.9]]) - lam = 1.0 - params = (lam,) - - res_default = transformation_congression.update_thetas( - theta, params=params, theta_dist="empirical") - res_explicit_none = transformation_congression.update_thetas( - theta, params=params, theta_dist="empirical", population_theta=None) - - assert jnp.allclose(res_default, res_explicit_none) - - -def test_update_thetas_population_theta_changes_correction(): - """A population_theta that differs from theta must change the correction: - the empirical CDF (and hence the congression-corrected values) should - reflect where theta falls in the *population*, not in itself.""" - theta = jnp.array([[0.5, 0.5, 0.5]]) - lam = 1.0 - params = (lam,) - - # theta is smack in the middle of a population that is itself centered - # at 0.5 -> minimal correction expected either way, so use an asymmetric - # population instead: one where 0.5 sits near the *bottom* of the range. - low_population = jnp.array([[0.4, 0.45, 0.5, 0.9, 0.95]]) - high_population = jnp.array([[0.05, 0.1, 0.5, 0.55, 0.6]]) - - res_low_pop = transformation_congression.update_thetas( - theta, params=params, theta_dist="empirical", population_theta=low_population) - res_high_pop = transformation_congression.update_thetas( - theta, params=params, theta_dist="empirical", population_theta=high_population) - - # Same theta, different reference populations -> different corrections. - assert not jnp.allclose(res_low_pop, res_high_pop) - - -def test_update_thetas_population_theta_uses_own_shape_for_lambda_broadcast(): - """population_theta may have a different (larger) trailing genotype - dimension than theta; the correction must still broadcast to theta's - shape without error, using population_theta's leading dims for lambda.""" - theta = jnp.array([[0.2, 0.8]]) # (1, 2) — the "batch" being corrected - population_theta = jnp.linspace(0.0, 1.0, 50).reshape(1, 50) # (1, 50) — full population - lam = 1.0 - params = (lam,) - - res = transformation_congression.update_thetas( - theta, params=params, theta_dist="empirical", population_theta=population_theta) - - assert res.shape == theta.shape - assert jnp.all(jnp.isfinite(res)) - - -def test_update_thetas_population_theta_ignored_for_logit_norm(): - """population_theta must be a no-op for logit_norm mode, which uses the - smooth analytic (mu, sigma) CDF rather than raw samples.""" - theta = jnp.array([[0.1, 0.5, 0.9]]) - lam = 1.0 - mu = jnp.array([[0.0]]) - sigma = jnp.array([[1.0]]) - params = (lam, mu, sigma) - - res_without = transformation_congression.update_thetas( - theta, params=params, theta_dist="logit_norm") - res_with = transformation_congression.update_thetas( - theta, params=params, theta_dist="logit_norm", - population_theta=jnp.array([[0.99, 0.99, 0.99]])) - - assert jnp.allclose(res_without, res_with) diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py deleted file mode 100644 index 4f000186..00000000 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test_congression_mask.py +++ /dev/null @@ -1,57 +0,0 @@ -import pytest -import jax.numpy as jnp -from tfscreen.tfmodel.generative.components.transformation import _congression as transformation_congression - -def test_update_thetas_with_mask(): - """Verify that the mask correctly selects between corrected and uncorrected thetas.""" - - # Setup data - num_geno = 4 - theta = jnp.ones((2, num_geno)) * 0.5 - - # params: lam=1.0, mu=0.0, sigma=1.0 (some correction will happen) - params = (1.0, 0.0, 1.0) - - # Mask: genotypes 0 and 2 are corrected (True), 1 and 3 are NOT (False) - mask = jnp.array([True, False, True, False]) - - # Get results - # First, get what it would be without mask (all corrected) - res_no_mask = transformation_congression.update_thetas(theta, params, mask=None) - - # Now, with mask - res_with_mask = transformation_congression.update_thetas(theta, params, mask=mask) - - # Check shape - assert res_with_mask.shape == (2, num_geno) - - # Genotypes 0 and 2 should match res_no_mask - assert jnp.allclose(res_with_mask[:, 0], res_no_mask[:, 0]) - assert jnp.allclose(res_with_mask[:, 2], res_no_mask[:, 2]) - - # Genotypes 1 and 3 should match original theta - assert jnp.allclose(res_with_mask[:, 1], theta[:, 1]) - assert jnp.allclose(res_with_mask[:, 3], theta[:, 3]) - - # Sanity check: verify that correction actually did something - # For mu=0, sigma=1, lam=1, F(0.5) = 0.5 - assert not jnp.allclose(res_no_mask[:, 0], theta[:, 0]) - # Expected value should be > 0.5 (shifts towards the mean of 0.5) - assert jnp.all(res_no_mask > 0.5) - assert jnp.all(res_no_mask < 0.8) - -def test_update_thetas_no_mask_is_default(): - """Verify that passing mask=None is the same as all True.""" - num_geno = 3 - theta = jnp.ones((1, num_geno)) * 0.4 - params = (1.0, 0.0, 1.0) - - res1 = transformation_congression.update_thetas(theta, params, mask=None) - res2 = transformation_congression.update_thetas(theta, params, mask=jnp.ones(num_geno, dtype=bool)) - - assert jnp.allclose(res1, res2) - -if __name__ == "__main__": - test_update_thetas_with_mask() - test_update_thetas_no_mask_is_default() - print("Mask tests passed!") diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py index 5676ea31..826d8c84 100644 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py +++ b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py @@ -15,6 +15,11 @@ from tfscreen.tfmodel.generative.components.transformation import mixture +def _ztp_pmf(m, lam): + """P(M = m) for M ~ zero-truncated Poisson(lam).""" + return poisson.pmf(m, lam) / (1.0 - np.exp(-lam)) + + # --------------------------------------------------------------------------- # Priors, guesses, define_model / guide # --------------------------------------------------------------------------- @@ -97,20 +102,60 @@ def test_weights_sum_to_one(sets, lam): @pytest.mark.parametrize("sets", [[12, 3, 1], [0, 4], [2, 0, 5]]) -def test_weights_match_poisson_over_strata(sets): +def test_weights_match_zero_truncated_poisson_over_strata(sets): + """A set with n co-residents is a cell of M = n + 1 plasmids.""" lam, f = 0.357, 0.8 log_w = np.asarray(mixture._log_class_weights(jnp.array(lam), jnp.array([f]), _counts(sets)))[:, 0] - w_cong = f * (1.0 - np.exp(-lam)) + w_cong = f * (1.0 - _ztp_pmf(1, lam)) assert np.isclose(np.exp(log_w[0]), 1.0 - w_cong) present = [n for n, k in enumerate(sets, start=1) if k > 0] - pmf = poisson.pmf(present, lam) + pmf = _ztp_pmf(np.array(present) + 1, lam) pmf = dict(zip(present, pmf / pmf.sum())) n_of_set = np.asarray(_counts(sets)) expected = np.array([w_cong * pmf[n] / sets[n - 1] for n in n_of_set]) - np.testing.assert_allclose(np.exp(log_w[1:]), expected, rtol=1e-6) + np.testing.assert_allclose(np.exp(log_w[1:]), expected, rtol=1e-5) + + +@pytest.mark.parametrize("lam", [1e-6, 5e-3, 1e-2, 2e-2, 0.357, 3.0]) +def test_congressed_fraction_is_stable_across_the_series_switch(lam): + """1 - P(M = 1) switches to a series at small lambda; both sides agree.""" + got = float(np.exp(mixture._log_p_congressed(jnp.array(lam)))) + lam64 = np.float64(lam) + expected = (lam64 / 2.0 - lam64**2 / 12.0 if lam < 1e-3 + else 1.0 - lam64 / np.expm1(lam64)) + np.testing.assert_allclose(got, expected, rtol=1e-4) + grad = float(jax.grad(mixture._log_p_congressed)(jnp.array(lam))) + assert np.isfinite(grad) + + +def test_weights_match_simulated_cell_shares(): + """ + The fit's lambda is the simulator's transformation_poisson_lambda: the + clean and congressed weights equal a genotype's abundance share by + co-resident count when cells carry zero-truncated Poisson(lambda) + plasmids that split the cell's abundance (selection_experiment). + """ + from tfscreen.simulate.selection_experiment import _plasmid_shares + from tfscreen.util.numerical import zero_truncated_poisson + + lam, num_cells, num_geno = 0.357, 400_000, 20 + rng = np.random.default_rng(0) + m = zero_truncated_poisson(num_cells, lam, rng) + plasmids = rng.choice(num_geno, size=(num_cells, m.max())) + mask = np.arange(m.max())[None, :] >= m[:, None] + share = np.sum(_plasmid_shares(mask) * ((plasmids == 0) & ~mask), axis=1) + + sim_clean = share[m == 1].sum() / share.sum() + sim_one = share[m == 2].sum() / share.sum() + + log_w = np.asarray(mixture._log_class_weights( + jnp.array(lam), jnp.array([1.0]), _counts([12, 3, 1])))[:, 0] + w = np.exp(log_w) + assert np.isclose(w[0], sim_clean, atol=0.005) + assert np.isclose(w[1:13].sum(), sim_one, atol=0.005) def test_spike_only_genotype_has_no_congressed_cells_and_finite_gradient(): @@ -196,9 +241,9 @@ def _reference_classes(data, focal, population, lam): [dk_pop[h] for h in co]) f = np.asarray(data.bulk_fraction)[batch_idx] - w_cong = f * (1.0 - np.exp(-lam)) + w_cong = f * (1.0 - _ztp_pmf(1, lam)) present = sorted(set(counts)) - pmf = poisson.pmf(present, lam) + pmf = _ztp_pmf(np.array(present) + 1, lam) pmf = dict(zip(present, pmf / pmf.sum())) per_stratum = {n: int(np.sum(counts == n)) for n in present} w = np.zeros((1 + num_k, num_b)) diff --git a/tests/tfscreen/tfmodel/generative/test_reference_math.py b/tests/tfscreen/tfmodel/generative/test_reference_math.py index b401a328..b3e9e754 100644 --- a/tests/tfscreen/tfmodel/generative/test_reference_math.py +++ b/tests/tfscreen/tfmodel/generative/test_reference_math.py @@ -263,136 +263,7 @@ def test_known_values(self): # ══════════════════════════════════════════════════════════════════════════════ -# 3. transformation/_congression.py — _logit_normal_cdf() and _empirical_cdf() -# ══════════════════════════════════════════════════════════════════════════════ - -class TestCongression: - """ - The congression (co-transformation correction) functions use jax.vmap and - jax.scipy — the most JAX-specific code in the codebase. These golden-value - tests catch any divergence introduced by the vmap→loop/torch.vmap port. - """ - - def _import(self): - from tfscreen.tfmodel.generative.components.transformation._congression import ( - _logit_normal_cdf, - _empirical_cdf, - update_thetas, - ) - return _logit_normal_cdf, _empirical_cdf, update_thetas - - # ── _logit_normal_cdf ──────────────────────────────────────────────────── - - def test_logit_normal_cdf_at_midpoint(self): - """CDF(0.5) when mu=0, sigma=1 should equal 0.5 (symmetric).""" - _logit_normal_cdf, _, _ = self._import() - import jax.numpy as jnp - result = float(_logit_normal_cdf(jnp.array(0.5), mu=0.0, sigma=1.0)) - npt.assert_allclose(result, 0.5, atol=1e-6) - - def test_logit_normal_cdf_monotone(self): - """CDF must be strictly increasing over (0, 1).""" - _logit_normal_cdf, _, _ = self._import() - import jax.numpy as jnp - xs = jnp.linspace(0.01, 0.99, 20) - cdfs = np.array([float(_logit_normal_cdf(x, mu=0.0, sigma=1.0)) for x in xs]) - assert np.all(np.diff(cdfs) > 0) - - def test_logit_normal_cdf_known_value(self): - """ - Golden value (NumPyro/JAX reference). - x=0.7, mu=0.5, sigma=0.8 - logit(0.7) = log(0.7/0.3) ≈ 0.8473 - Phi((0.8473 - 0.5) / 0.8) = Phi(0.4341) ≈ 0.6679 - """ - _logit_normal_cdf, _, _ = self._import() - import jax.numpy as jnp - result = float(_logit_normal_cdf(jnp.array(0.7), mu=0.5, sigma=0.8)) - npt.assert_allclose(result, 0.6679, atol=1e-3) - - # ── _empirical_cdf ─────────────────────────────────────────────────────── - - def test_empirical_cdf_shape(self): - """Output grid length should match t_grid.""" - _, _empirical_cdf, _ = self._import() - import jax.numpy as jnp - theta = jnp.array([[0.1, 0.3, 0.5, 0.7, 0.9], - [0.2, 0.4, 0.6, 0.8, 0.95]]) - t_grid = jnp.linspace(0.0, 1.0, 32) - result = _empirical_cdf(theta, t_grid) - assert result.shape == (2, 32) - - def test_empirical_cdf_monotone(self): - """Empirical CDF must be non-decreasing over the grid.""" - _, _empirical_cdf, _ = self._import() - import jax.numpy as jnp - rng = np.random.default_rng(0) - theta = jnp.array(rng.uniform(0.05, 0.95, (3, 20))) - t_grid = jnp.linspace(0.0, 1.0, 64) - result = np.array(_empirical_cdf(theta, t_grid)) - assert np.all(np.diff(result, axis=-1) >= -1e-7) - - def test_empirical_cdf_bounds(self): - """CDF values should lie in [0, 1].""" - _, _empirical_cdf, _ = self._import() - import jax.numpy as jnp - rng = np.random.default_rng(1) - theta = jnp.array(rng.uniform(0.05, 0.95, (4, 15))) - t_grid = jnp.linspace(0.01, 0.99, 50) - result = np.array(_empirical_cdf(theta, t_grid)) - assert result.min() >= 0.0 - 1e-7 - assert result.max() <= 1.0 + 1e-7 - - def test_empirical_cdf_known_values(self): - """ - Golden values from NumPyro/JAX reference run. - 5-point uniform sample [0.1,0.3,0.5,0.7,0.9], t_grid at 0.0,0.5,1.0 - Empirical CDF at 0.0 ≈ 0.0, at 0.5 = 0.5 (median), at 1.0 ≈ 1.0. - """ - _, _empirical_cdf, _ = self._import() - import jax.numpy as jnp - theta = jnp.array([[0.1, 0.3, 0.5, 0.7, 0.9]]) - t_grid = jnp.array([0.0, 0.5, 1.0]) - result = np.array(_empirical_cdf(theta, t_grid)) # (1, 3) - # At 0.0: below all sorted values → interpolates to 0.1 - # At 0.5: exactly the 3rd point (i=2, y=(2+0.5)/5=0.5) - # At 1.0: beyond all sorted values → 0.9 - npt.assert_allclose(result[0, 1], 0.5, atol=1e-5) - assert result[0, 0] < result[0, 1] < result[0, 2] - - # ── update_thetas ──────────────────────────────────────────────────────── - - def test_update_thetas_logit_norm_shape(self): - """update_thetas with logit_norm dist returns same shape as input.""" - _, _, update_thetas = self._import() - import jax.numpy as jnp - rng = np.random.default_rng(2) - theta = jnp.array(rng.uniform(0.1, 0.9, (2, 10))) - lam, mu, sigma = 0.5, 0.0, 1.0 - result = update_thetas(theta, params=(lam, mu, sigma), theta_dist="logit_norm") - assert result.shape == theta.shape - - def test_update_thetas_empirical_shape(self): - """update_thetas with empirical dist returns same shape as input.""" - _, _, update_thetas = self._import() - import jax.numpy as jnp - rng = np.random.default_rng(3) - theta = jnp.array(rng.uniform(0.1, 0.9, (2, 12))) - result = update_thetas(theta, params=(0.3,), theta_dist="empirical") - assert result.shape == theta.shape - - def test_update_thetas_zero_lambda_is_identity(self): - """When lam=0 (no cotransformation), output equals input.""" - _, _, update_thetas = self._import() - import jax.numpy as jnp - rng = np.random.default_rng(4) - theta = jnp.array(rng.uniform(0.1, 0.9, (3, 8))) - result = update_thetas(theta, params=(0.0, 0.0, 1.0), theta_dist="logit_norm") - npt.assert_allclose(np.array(result), np.array(theta), rtol=1e-5) - - -# ══════════════════════════════════════════════════════════════════════════════ -# 4. noise/beta.py — alpha/beta concentration computation +# 3. noise/beta.py — alpha/beta concentration computation # ══════════════════════════════════════════════════════════════════════════════ class TestBetaNoiseMath: diff --git a/tests/tfscreen/tfmodel/genotype_fit/test_congression.py b/tests/tfscreen/tfmodel/genotype_fit/test_congression.py deleted file mode 100644 index 4ea08205..00000000 --- a/tests/tfscreen/tfmodel/genotype_fit/test_congression.py +++ /dev/null @@ -1,111 +0,0 @@ -"""Tests for the congression de-attenuation history/trajectory outputs.""" - -import numpy as np -import jax.numpy as jnp -import pandas as pd -from scipy.special import expit, logit - -from tfscreen.tfmodel.generative.components.transformation._congression import ( - update_thetas, -) -from tfscreen.tfmodel.genotype_fit.congression import ( - correct_theta_matrix, - deattenuate_congression, -) -from tfscreen.tfmodel.genotype_fit.fit import GenotypeFit, PHENO_PARAMS_TRANSFORMED - - -def _forward(theta_true, lam): - return np.asarray(update_thetas( - jnp.asarray(theta_true), (float(lam),), theta_dist="empirical", - population_theta=jnp.asarray(theta_true))) - - -def _make_fit(genotype, theta_low, theta_high, log_K, n, dk=0.0): - est_t = np.array([5.0, dk, logit(theta_low), logit(theta_high), - log_K, np.log(n)]) - return GenotypeFit( - genotype=genotype, titrant_name="iptg", n_obs=100, converged=True, - param_names_t=["ln_cfu0[0]"] + list(PHENO_PARAMS_TRANSFORMED), - est_t=est_t, cov_t=np.eye(6) * 0.01, pheno_slice=slice(1, 6)) - - -def _build_fits(rng, n=25): - fits = {} - for i in range(n): - fits[(f"A{i}V", "iptg")] = _make_fit( - f"A{i}V", theta_low=rng.uniform(0.7, 0.98), - theta_high=rng.uniform(0.02, 0.5), - log_K=rng.uniform(np.log(1e-3), np.log(0.3)), n=rng.uniform(0.8, 2.0)) - fits[("wt", "iptg")] = _make_fit("wt", 0.99, 0.01, np.log(0.017), 2.0) - return fits - - -_CONCS = [0.0, 1e-3, 1e-2, 1e-1, 1.0] -_GROWTH_DF = pd.DataFrame({"titrant_name": ["iptg"] * len(_CONCS), - "titrant_conc": _CONCS}) - - -def test_correct_theta_matrix_history_matches_final(): - rng = np.random.default_rng(0) - theta_true = expit(rng.normal(0.0, 1.5, size=(2, 200))) - theta_obs = _forward(theta_true, lam=1.0) - - rec, n_iter, history = correct_theta_matrix( - theta_obs, lam=1.0, tol=1e-6, max_iter=200, return_history=True) - - # First entry is the clamped observed matrix; last is the returned estimate. - assert np.allclose(history[0], np.clip(theta_obs, 1e-6, 1 - 1e-6)) - assert np.allclose(history[-1], rec) - # Two-return form is unchanged (backward compatible). - rec2, n_iter2 = correct_theta_matrix(theta_obs, lam=1.0, tol=1e-6, - max_iter=200) - assert np.allclose(rec2, rec) - assert n_iter2 == n_iter - # The trajectory monotonically closes the gap to the observed population. - err0 = np.nanmax(np.abs(_forward(history[0], 1.0) - theta_obs)) - errN = np.nanmax(np.abs(_forward(history[-1], 1.0) - theta_obs)) - assert errN <= err0 - - -def test_correct_theta_matrix_history_lambda_zero(): - theta_obs = expit(np.random.default_rng(1).normal(0, 1, size=(1, 20))) - rec, n_iter, history = correct_theta_matrix(theta_obs, lam=0.0, - return_history=True) - assert n_iter == 0 - assert np.allclose(rec, theta_obs) - assert len(history) == 1 - - -def test_deattenuate_returns_history_df(): - rng = np.random.default_rng(3) - fits = _build_fits(rng) - bulk_keys = [k for k in fits if k[0] != "wt"] - - corrected, history = deattenuate_congression( - fits, _GROWTH_DF, lam=1.0, spiked={"wt"}, return_theta_history=True) - - assert list(history.columns) == [ - "genotype", "titrant_name", "titrant_conc", "iter", "theta"] - # History covers the bulk genotypes at every concentration, never wt. - assert set(history["genotype"]) == {k[0] for k in bulk_keys} - assert "wt" not in set(history["genotype"]) - assert set(history["titrant_conc"]) == set(_CONCS) - # iter starts at 0 and the correction actually iterated. - assert history["iter"].min() == 0 - assert history["iter"].max() >= 1 - - # The corrected fits match the no-history call. - corrected_only = deattenuate_congression( - fits, _GROWTH_DF, lam=1.0, spiked={"wt"}) - for k in fits: - assert np.allclose(corrected[k].est_t, corrected_only[k].est_t) - - -def test_deattenuate_history_noop_when_lambda_none(): - fits = _build_fits(np.random.default_rng(4)) - corrected, history = deattenuate_congression( - fits, _GROWTH_DF, lam=None, spiked={"wt"}, return_theta_history=True) - assert history.empty - for k in fits: - assert np.allclose(corrected[k].est_t, fits[k].est_t) diff --git a/tests/tfscreen/tfmodel/genotype_fit/test_fit_genotypes_cli.py b/tests/tfscreen/tfmodel/genotype_fit/test_fit_genotypes_cli.py index 5c4dd064..e7ee3889 100644 --- a/tests/tfscreen/tfmodel/genotype_fit/test_fit_genotypes_cli.py +++ b/tests/tfscreen/tfmodel/genotype_fit/test_fit_genotypes_cli.py @@ -12,7 +12,6 @@ "growth_k": [0.02, 0.0, 0.0], "growth_m": [0.0, -0.03, -0.06], }) -# wt is spiked; A1V/A2V are bulk (>=2 needed to build a congression background). TRUTH = { "wt": dict(theta_low=0.90, theta_high=0.08, log_K=np.log(3e-3), n=1.4, dk_geno=0.0), "A1V": dict(theta_low=0.70, theta_high=0.20, log_K=np.log(3e-2), n=1.0, dk_geno=0.006), @@ -54,29 +53,7 @@ def paths(tmp_path): return str(growth), str(calib), tmp_path -@pytest.fixture -def library_config(tmp_path): - """Library YAML covering wt/A1V/A2V, with wt as the only spiked genotype.""" - import yaml - - config = { - "reading_frame": 0, - "first_amplicon_residue": 1, - "wt_seq": "gccgcaaaaccggaatgc", - "degen_sites": "nntnnt............", - "tiles": "111222............", - "tile_combos": ["single-1", "single-2", "double-1-2"], - "spiked_seqs": [".................."], # wt only - "library_mixture": {"single-1": 10, "single-2": 10, - "double-1-2": 100, "spiked": 1}, - } - path = tmp_path / "library.yaml" - with open(path, "w") as f: - yaml.dump(config, f) - return str(path) - - -def test_raw_only_writes_params_and_theta(paths): +def test_writes_params_and_theta(paths): growth, calib, tmp_path = paths prefix = str(tmp_path / "run") fit_genotypes(growth, calib, out_prefix=prefix, dk_geno_prior_sd=0.0) @@ -90,7 +67,7 @@ def test_raw_only_writes_params_and_theta(paths): assert list(theta.columns) == [ "genotype", "titrant_name", "titrant_conc", "theta_raw"] - # No congression artefacts. + # The retired congression de-attenuation writes nothing. assert not (tmp_path / "run_params_deattenuated.csv").exists() assert not (tmp_path / "run_theta_history.csv").exists() @@ -100,41 +77,8 @@ def test_raw_only_writes_params_and_theta(paths): assert res.loc[geno, "theta_low"] == pytest.approx(p["theta_low"], abs=2e-3) -def test_congression_writes_deattenuated_and_history(paths, library_config): +def test_congression_lambda_is_retired(paths): growth, calib, tmp_path = paths - prefix = str(tmp_path / "run") - - fit_genotypes(growth, calib, out_prefix=prefix, dk_geno_prior_sd=0.0, - congression_lambda=1.0, library_config=library_config, - save_theta_history=True) - - deatt = pd.read_csv(f"{prefix}_params_deattenuated.csv") - theta = pd.read_csv(f"{prefix}_theta.csv") - history = pd.read_csv(f"{prefix}_theta_history.csv") - - assert set(deatt["genotype"]) == set(TRUTH) - assert "theta_deattenuated" in theta.columns - assert "theta_raw" in theta.columns - - # wt is spiked -> its de-attenuated theta equals its raw theta. - wt = theta[theta["genotype"] == "wt"] - assert np.allclose(wt["theta_raw"], wt["theta_deattenuated"]) - - # Bulk genotypes were corrected: at least one theta_deattenuated differs. - bulk = theta[theta["genotype"] != "wt"] - assert not np.allclose(bulk["theta_raw"], bulk["theta_deattenuated"]) - - # History covers only the bulk genotypes and iterates. - assert set(history["genotype"]) == {"A1V", "A2V"} - assert history["iter"].max() >= 1 - - -def test_congression_without_history_skips_history_file(paths, library_config): - growth, calib, tmp_path = paths - prefix = str(tmp_path / "run") - - fit_genotypes(growth, calib, out_prefix=prefix, dk_geno_prior_sd=0.0, - congression_lambda=1.0, library_config=library_config) - - assert (tmp_path / "run_params_deattenuated.csv").exists() - assert not (tmp_path / "run_theta_history.csv").exists() + with pytest.raises(TypeError, match="congression_lambda"): + fit_genotypes(growth, calib, out_prefix=str(tmp_path / "run"), + congression_lambda=1.0) From 6e4735e21645c7a6b14b260d75f6148112f1b677 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 07:16:32 -0700 Subject: [PATCH 020/208] Fix growth prediction for library-file models; set up 3.5 grid prediction.copy_orchestrator rebuilt the prediction model from orchestrator.settings, which carries both library_file and the spiked list derived from it; ModelOrchestrator refuses the pair, so tfs-predict-growth (and prior-predictive growth and the genotype trajectory plots) failed for every config written by tfs-configure-model --library_config. The derived list is now dropped when library_file is set, as write_configuration already does. Adds planning/studies/congression-calibration/ for step 3.5: 54 runs (simulated lambda 0 / 0.357 / 1.0 x wide / tight dk_geno x 3 seeds x fit single / mixture with matched lambda prior / mixture with the measured 0.357 prior), each simulate -> configure -> prefit -> SVI -> posterior -> predict -> summarize-fit on SLURM, paired against single in tfs-summarize-calibration. The simulator and fit share the max theta rule, so the grid checks the fit's machinery and is the baseline for step 4. Verified: new test_library_file.py test fails without the fix and passes with it; prediction tests and the prediction smoke test pass (262). One mixture run (lambda 1.0, wide dk) ran end to end locally with shortened fits, and tfs-summarize-calibration read it with purity x has_binding strata and the lam ground truth. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 11 + planning/congression-physics-plan.md | 8 + .../studies/congression-calibration/README.md | 87 ++++++ .../studies/congression-calibration/grid.yaml | 74 +++++ .../congression-calibration/hill_params.csv | 5 + .../studies/congression-calibration/run.srun | 110 +++++++ .../simulate_config.yaml | 272 ++++++++++++++++++ src/tfscreen/tfmodel/analysis/prediction.py | 7 +- tests/tfscreen/tfmodel/test_library_file.py | 19 ++ 9 files changed, 592 insertions(+), 1 deletion(-) create mode 100644 planning/studies/congression-calibration/README.md create mode 100644 planning/studies/congression-calibration/grid.yaml create mode 100644 planning/studies/congression-calibration/hill_params.csv create mode 100644 planning/studies/congression-calibration/run.srun create mode 100644 planning/studies/congression-calibration/simulate_config.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 85ae93bf..bcc069b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -202,6 +202,17 @@ fall into two kinds: ### Fixed +- **Growth prediction failed on every model built from a library file.** + `tfs-predict-growth`, and everything else that goes through + `prediction.predict` (prior-predictive growth, the genotype trajectory + plots), raised. `prediction.copy_orchestrator` rebuilt the prediction model from + `orchestrator.settings`, which carries both `library_file` and the spiked + list derived from it, and `ModelOrchestrator` refuses the pair. It now + drops the derived list when `library_file` is set, as + `write_configuration` does. Configs from `tfs-configure-model + --library_config` (the only current path) were affected; legacy + `spiked_genotypes` configs were not. + - **Per-genotype latents scrambled across genotypes under autoguides.** Several components sampled their per-genotype latents in a plate sized `data.batch_size`, so every numpyro autoguide -- including the `AutoDelta` diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 6800647c..5c93700b 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -551,6 +551,14 @@ checked with `tfs-summarize-calibration`. genotype, i.e. `bulk_fraction` 0, between, or 1). - [ ] **3.5 Calibration.** Step 2 simulator vs the new fit, with `tfs-summarize-calibration`; watch bulk genotypes without binding data. + Grid set up 2026-09-24 (user: cluster, both extra arms, `mixed` left + unstratified): `planning/studies/congression-calibration/`, 54 runs = + simulated lambda {0, 0.357, 1.0} x dk spread {wide, tight} x 3 seeds x + fit {single, mixture with matched lambda prior, mixture with the + measured 0.357 prior}, paired against `single`. Both sides use the max + theta rule, so this checks the machinery and also serves as the + baseline for step 4. Whether to run it before the bench result on the + dominance rule is still open (2026-09-24). 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md new file mode 100644 index 00000000..78f7ee46 --- /dev/null +++ b/planning/studies/congression-calibration/README.md @@ -0,0 +1,87 @@ +# Congression calibration study + +**Question.** Fit to data from the step 2 simulator, is the observable-level +congression mixture (`transformation: mixture`) calibrated, and does it beat +`single` where congression matters? In particular: + +- Does the fit recover lambda? +- Are theta and the per-genotype parameters calibrated for bulk genotypes + *without* binding data, whose theta is informed only by their growth? +- What does fitting the mixture cost when there is no congression + (lambda = 0), and how much does a misspecified lambda prior hurt? + +**Decision it feeds.** Step 3.5 of +[`planning/congression-physics-plan.md`](../../congression-physics-plan.md): +whether the mixture is ready to use on real data. The simulator and the fit +use the same cell rules (max theta, dilution dk), so this checks the fit's +machinery given matched physics, not whether the rules are biologically +right. The mixture-vs-single effect sizes are specific to the max rule; +re-run the grid when step 4 changes the rule. + +## Design + +Base config: [`simulate_config.yaml`](simulate_config.yaml), from +`examples/simulate-and-analyze/` (483 genotypes, hill_mut theta, instant +growth transitions, kanR and pheS selections) with the real design's +`library_mixture` and 20 in-library binding anchors (`library_binding`). +Purity: 474 bulk genotypes, 3 pure spikes (D88A, H74A/K84L, +M42I/H74A/K84L), and 6 mixed (wt and the spiked singles, `bulk_fraction` +0.99 to 1.0; M42I/H74A and M42I/K84L, 0.74). + +[`grid.yaml`](grid.yaml): 3 x 2 x 3 x 3 = 54 runs. + +| axis | levels | +|---|---| +| simulated lambda | 0 (null), 0.357 (measured), 1.0 (stress) | +| dk_geno spread (`dk_geno_hyper_loc`) | -3.5 (wide, SD 0.018/min), -7.0 (tight, SD 0.0006/min, the measured regime) | +| seed (simulation and fit) | 1, 2, 3 | +| fit (`fit`, `lam_prior`) | `single`/`off`; `mixture`/`matched` (prior at the simulated lambda, 0.01 when it is 0, SD 0.05); `mixture`/`measured` (prior 0.357 +/- 0.05 whatever the truth) | + +At simulated lambda 0.357 the matched and measured fits are the same fit; +their results should agree up to GPU nondeterminism (a reproducibility +check). + +Each run ([`run.srun`](run.srun)): `tfs-simulate` -> `tfs-configure-model` +(the simulate-and-analyze components; `--transformation_model` and +`--transformation_lambda` from the fit arm) -> `tfs-prefit-calibration` -> +`tfs-fit-model` (SVI) -> `tfs-sample-posterior` -> `tfs-extract-params` -> +`tfs-predict-theta` -> `tfs-predict-growth` -> `tfs-summarize-fit`. + +## How to run + +On the cluster, from a scratch directory, with this repository checked out +(the rendered `run.srun` finds `hill_params.csv` by a path relative to the +study directory, so do not move the grid after setting it up): + +```bash +tfs-setup-sim-grid /path/to/tfscreen/planning/studies/congression-calibration/grid.yaml \ + --out_prefix congression_calibration +for d in congression_calibration/run_*/; do (cd "$d" && sbatch run.srun); done +``` + +When the runs finish: + +```bash +tfs-summarize-calibration congression_calibration --out_prefix calib/congression \ + --baseline fit=single lam_prior=off \ + --facet_by transformation_poisson_lambda dk_geno_hyper_loc +``` + +Arms average over `seed` (the default `--replicate_keys`). + +## What to look at + +- `lam`: posterior against the simulated value, by lambda and prior. +- theta (`theta_test`) and per-genotype parameters by `purity` x + `has_binding`: coverage, calibration bias, width, RMSE; paired deltas + against `single`. +- The lambda = 0 arm: the mixture's cost when nothing is congressed. +- The `measured` prior at lambda 0 and 1.0: robustness to a wrong prior. + +## Commit + +Pending (set up 2026-09-24). + +## Results + +Pending. diff --git a/planning/studies/congression-calibration/grid.yaml b/planning/studies/congression-calibration/grid.yaml new file mode 100644 index 00000000..39574548 --- /dev/null +++ b/planning/studies/congression-calibration/grid.yaml @@ -0,0 +1,74 @@ +# --------------------------------------------------------------------------- +# Congression calibration grid (step 3.5 of planning/congression-physics-plan.md) +# +# tfs-setup-sim-grid grid.yaml --out_prefix congression_calibration +# for d in congression_calibration/*/; do (cd "$d" && sbatch run.srun); done +# +# 3 lambda x 2 dk spreads x 3 seeds x 3 fits = 54 runs. See README.md. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__dkloc{{ dk_geno_hyper_loc }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}" + +output_file: run.srun + + +simulate: + + # --- Simulated congression rate ------------------------------------------ + # 0 = no congression (null arm); 0.357 = measured; 1.0 = stress. + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + - transformation_poisson_lambda: 0.357 + - transformation_poisson_lambda: 1.0 + + # --- dk_geno spread -------------------------------------------------------- + # dk_geno = shift - exp(Normal(loc, scale)), wt = 0. + # wide (loc -3.5): SD 0.018/min, 5th-95th percentile -0.049 to 0.007 + # (the example config) + # tight (loc -7.0): SD 0.0006/min, mean ~0 (the measured regime, dk SD + # ~0.001/min) + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + - dk_geno_hyper_loc: -7.0 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.001 + + # --- Simulation seed (also the fit seed) ----------------------------------- + + - name: seed + variants: + - seed: 1 + - seed: 2 + - seed: 3 + + +template: + + # --- Fit ------------------------------------------------------------------ + # single: no congression model (the paired baseline). + # mixture/matched: lambda prior centered on the simulated value (0.01 when + # the simulated value is 0), SD 0.05. + # mixture/measured: lambda prior 0.357 +/- 0.05 whatever the truth, so + # lambda = 0 and 1.0 test a misspecified prior. At lambda = 0.357 it is + # the same fit as matched (a determinism check). + + - name: fit + variants: + - fit: single + lam_prior: "off" + - fit: mixture + lam_prior: matched + - fit: mixture + lam_prior: measured + + - name: files + variants: + - hill_params_file: hill_params.csv diff --git a/planning/studies/congression-calibration/hill_params.csv b/planning/studies/congression-calibration/hill_params.csv new file mode 100644 index 00000000..a3568471 --- /dev/null +++ b/planning/studies/congression-calibration/hill_params.csv @@ -0,0 +1,5 @@ +genotype,log_hill_K,hill_n,theta_high,theta_low +wt,-4.1,2,0.01,0.99 +M42I,-2.2104779610300698,1.5156149571654287,0.5054105302329879,0.9538933267956679 +H74A,-5.872705439673401,1.2001278450518955,0.05,0.7115380202706272 +K84L,-5.755115159475512,1.0593068151944411,0.1,0.856776050040223 diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun new file mode 100644 index 00000000..a46a85ea --- /dev/null +++ b/planning/studies/congression-calibration/run.srun @@ -0,0 +1,110 @@ +#!/bin/bash -l +#SBATCH --account=harmslab +#SBATCH --job-name=cong_calib +#SBATCH --output=run.out +#SBATCH --error=run.err +#SBATCH --partition=gpu +#SBATCH --time=00-12:00:00 +#SBATCH --nodes=1 +#SBATCH --cpus-per-task=8 +#SBATCH --gpus=1 +#SBATCH --ntasks-per-node=1 + +# Congression calibration study, one run (rendered by tfs-setup-sim-grid from +# planning/studies/congression-calibration/run.srun). Submit from the run +# directory: sbatch run.srun + +# Swap lines if on cluster (module load) or local (XLA_FLAGS to use CPU) +module load cuda/12.4.1 +#export XLA_FLAGS="--xla_force_host_platform_device_count=8" + +set -e + +FIT="{{ fit }}" +LAM_PRIOR="{{ lam_prior }}" +LAM_PRIOR_SD=0.05 +LAM_MEASURED=0.357 + +# The simulated lambda and the seed live in tfs_sim_config.yaml. +read -r SEED LAM_SIM < <(python -c " +import yaml +cf = yaml.safe_load(open('tfs_sim_config.yaml')) +print(cf['seed'], cf.get('transformation_poisson_lambda') or 0.0)") + +# binding_data.spiked_binding.choose_by is resolved against the working +# directory. +cp "{{ hill_params_file }}" hill_params.csv + +# --------------------------------------------------------------------------- +# 1. Simulate +# --------------------------------------------------------------------------- +echo ">>> Simulate (lambda=${LAM_SIM}, seed=${SEED})" +tfs-simulate tfs_sim_config.yaml . --seed "${SEED}" + +# --------------------------------------------------------------------------- +# 2. Configure +# --------------------------------------------------------------------------- +if [[ "${FIT}" == "single" ]]; then + TRANSFORMATION_ARGS=(--transformation_model single) +else + if [[ "${LAM_PRIOR}" == "matched" ]]; then + LAM_MEAN=$(python -c "print(max(${LAM_SIM}, 0.01))") + else + LAM_MEAN=${LAM_MEASURED} + fi + TRANSFORMATION_ARGS=(--transformation_model mixture + --transformation_lambda "${LAM_MEAN}" "${LAM_PRIOR_SD}") +fi + +echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR})" +tfs-configure-model \ + tfs_sim_binding.csv \ + --growth_df tfs_sim_growth.csv \ + --presplit_df tfs_sim_presplit.csv \ + --condition_growth_model linear \ + --growth_transition_model instant \ + --ln_cfu0_model hierarchical_factored \ + --dk_geno_model hierarchical_geno \ + --activity_model fixed \ + --theta_model hill_mut \ + --theta_rescale_model passthrough \ + --theta_growth_noise_model logit_normal \ + --theta_binding_noise_model zero \ + --growth_noise_model normal_kt \ + --library_config tfs_sim_config.yaml \ + --growth_shares_replicates \ + --epistasis \ + "${TRANSFORMATION_ARGS[@]}" + +# --------------------------------------------------------------------------- +# 3. Pre-fit calibration, fit, posterior +# --------------------------------------------------------------------------- +echo ">>> Pre-fit calibration" +tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" + +echo ">>> Fit model" +tfs-fit-model tfs_configure_config.yaml \ + --seed "${SEED}" \ + --analysis_method svi \ + --convergence_tolerance 0.0001 + +echo ">>> Sample posterior" +tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl + +# --------------------------------------------------------------------------- +# 4. Extract, predict, summarize +# --------------------------------------------------------------------------- +echo ">>> Extract parameters" +tfs-extract-params tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict theta" +tfs-predict-theta tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict growth" +tfs-predict-growth tfs_configure_config.yaml tfs_posterior.h5 \ + --num_marginal_samples=500 + +echo ">>> Summarize fit" +tfs-summarize-fit . + +echo ">>> Done" diff --git a/planning/studies/congression-calibration/simulate_config.yaml b/planning/studies/congression-calibration/simulate_config.yaml new file mode 100644 index 00000000..e235ed7a --- /dev/null +++ b/planning/studies/congression-calibration/simulate_config.yaml @@ -0,0 +1,272 @@ +# Base simulate config for the congression calibration study (step 3.5 of +# planning/congression-physics-plan.md). Copied from +# examples/simulate-and-analyze/simulate_config.yaml, with three changes: +# - library_mixture is the real design (single-1 100, single-2 100, +# double-1-2 1000, spiked 1), as in planning/studies/congression-estimator; +# - library_binding adds 20 in-library (bulk) binding anchors; +# - transformation_poisson_lambda and the dk_geno hyperparameters are set +# per run by grid.yaml. +# binding_data.spiked_binding.choose_by names hill_params.csv relative to the +# working directory; run.srun copies it into each run directory. + + +# --------------------------------------------------------------------------- +# Library genetic information +# --------------------------------------------------------------------------- + +# Reading frame 0, 1, 2. No reverse (negative) strand allowed. +reading_frame: 0 + +# Amino acid residue number for the first in-frame residue of the amplicon. +first_amplicon_residue: 27 + +# Wildtype DNA sequence of the amplicon. +wt_seq: gccagccacgtttctgcgaaaacgcgggaaaaagtggaagcggcgatggcggagctgaattacattcccaaccgcgtggcacaacaactggcgggcaaacagtcgttgctgattggcgttgccacctccagtctggccctgcacgcgccgtcgcaaattgtcgcggcgattaaatctcgcgccgatcaactgggtgccagcgtggtggtgtcgatg + +# Degenerate codon pattern for library positions. '.' = wildtype; 'nnt' = NNT +# codon (encodes all 20 amino acids + stop with reduced synonymous redundancy). +# Must be the same length as wt_seq. +degen_sites: | + .............................................nnt.............................................................................................nnt...........................nnt.......................................... +# ......nntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnnt......nntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnnt + + +# tiles groups contiguous degenerate positions that were cloned together. +# '.' = wildtype; any other character defines a tile block. Blocks must +# be contiguous (......111... ok; ....11.1... not ok). +tiles: | + ......111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111......222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 + +# Flanking sequences immediately upstream and downstream of the amplicon. +expected_5p: cgcgtggtgaaccag +expected_3p: gtagaacgaagcggc + +# Which genotype classes to include in the library. 'single-x' = all +# single-mutation variants in tile x. 'double-x-y' = all pairwise +# combinations between tiles x and y. 'double-x-x' = internal +# doubles within tile x. +tile_combos: ["single-1", "single-2", "double-1-2"] + +# Control sequences (e.g. known variants) added as spikes. Must be the same +# length as wt_seq. +spiked_seqs: +- ........................................................................................................................................................................................................................ # wt +- .............................................ata........................................................................................................................................................................ # m42i +- .............................................................................................................................................gcg........................................................................ # h74a +- ...........................................................................................................................................................................ctg.......................................... # k84l +- .............................................ata.............................................................................................gcg........................................................................ # m42i/h74a +- .............................................ata...........................................................................................................................ctg.......................................... # m42i/k84l +- .............................................................................................................................................gcg...........................ctg.......................................... # h74a/k84l +- .............................................ata.............................................................................................gcg...........................ctg.......................................... # m42i/h74a/k84l +- ........................................................................................................................................................................................cc.............................. # d88a + +# --------------------------------------------------------------------------- +# Phenotype calculation +# --------------------------------------------------------------------------- + +# Registered theta component name. Any key in model_registry["theta"] is +# valid except "_simple" (calibration-only). Examples: "hill_geno", "thermo.O2_C12_K5_U0_a.PK". +theta_component: "hill_mut" + +# Pairwise epistasis (regularized horseshoe; used when library has doubles): +theta_sim_priors: + epi_tau_scale: 0.1 # HalfCauchy scale for global sparsity τ + +# Optional: path to structural/thermodynamic data file required by PnnC and +# PddG theta components. Omit (or set to null) for all other models. +# .h5 / .hdf5 → HDF5 structural ensemble (PnnC) +# .csv → per-mutation per-structure ddG prior means (PddG) +# thermo_data: null + +# Optional: overrides for the theta component's default hyperparameters. +# Any key returned by the component's get_hyperparameters() can be overridden. +# Omit this block to use all component defaults. +# theta_priors: +# theta_tf_total_M: 3.3e-7 + +# --------------------------------------------------------------------------- +# Conditions +# --------------------------------------------------------------------------- + +# Each block defines one set of growth conditions. The Cartesian product of +# titrant_conc × t_sel gives one sample per entry. condition_pre and +# condition_sel must also appear as keys in the 'growth' section below. +condition_blocks: + - library: "kanR" + titrant_name: "iptg" + titrant_conc: [0, 0.0001, 0.001, 0.003] + condition_pre: "kanR-kan" + t_pre: 30 + condition_sel: "kanR+kan" + t_sel: [160, 180, 200] + + - library: "kanR" + titrant_name: "iptg" + titrant_conc: [0.01, 0.03, 0.1, 1.0] + condition_pre: "kanR-kan" + t_pre: 30 + condition_sel: "kanR+kan" + t_sel: [145, 165, 180] + + - library: "kanR" + titrant_name: "iptg" + titrant_conc: [0, 1.0] + condition_pre: "kanR-kan" + t_pre: 30 + condition_sel: "kanR-kan" + t_sel: [160, 180, 200] + + - library: "pheS" + titrant_name: "iptg" + titrant_conc: [0, 0.0001, 0.001, 0.003, 0.01, 0.03, 0.1, 1.0] + condition_pre: "pheS-4CP" + t_pre: 30 + condition_sel: "pheS+4CP" + t_sel: [95, 110, 125] + + - library: "pheS" + titrant_name: "iptg" + titrant_conc: [0, 1.0] + condition_pre: "pheS-4CP" + t_pre: 30 + condition_sel: "pheS-4CP" + t_sel: [95, 110, 125] + +# --------------------------------------------------------------------------- +# Growth rate parameters +# --------------------------------------------------------------------------- + +# Linear mapping from operator occupancy (theta) to growth rate k for each +# condition: k = m * theta + b. Every condition_pre and condition_sel that +# appears in condition_blocks must have an entry here, and vice versa. +growth: + kanR+kan: {m: -0.009933, b: 0.010696} + kanR-kan: {m: 0.000808, b: 0.015366} + pheS+4CP: {m: 0.006226, b: 0.021437} + pheS-4CP: {m: -0.000344, b: 0.028558} + +# Per-genotype pleiotropic growth cost is sampled from a shifted lognormal: +# dk_geno = hyper_shift - exp(Normal(hyper_loc, hyper_scale)) +# Most variants are mildly deleterious; a short right tail (at most hyper_shift) +# allows beneficial mutations. Matches the hierarchical tfmodel inference prior. +dk_geno_hyper_loc: -3.5 +dk_geno_hyper_scale: 0.5 +dk_geno_hyper_shift: 0.02 +dk_geno_zero: false + +# Per-genotype TF activity (A) — a scalar that multiplies the theta contribution +# to growth: k = b + A * m * theta. The wild-type is fixed at activity_wt=1.0 +# by inference convention. Set activity_mut_scale > 0 to draw each mutant +# genotype's log(A) independently from Normal(log(activity_wt), activity_mut_scale). +# activity_mut_scale=0 (default) gives all genotypes identical activity, matching +# the 'fixed' activity inference component. +activity_wt: 1.0 +activity_mut_scale: 0.0 + +# --------------------------------------------------------------------------- +# Experimental simulation parameters +# --------------------------------------------------------------------------- + +# Number of transformants per tile combo. Keys must match the entries in +# tile_combos (e.g. 'single-1', 'double-1-2') plus 'spiked'. +transform_sizes: + single-1: 10_000 + single-2: 10_000 + double-1-2: 1_000_000 + spiked: 1000 + +# Mixing ratio of tile combos in the pooled library. Only the ratio matters. +library_mixture: + single-1: 100 + single-2: 100 + double-1-2: 1000 + spiked: 1 + +# Sigma of the log-normal used to draw initial genotype frequencies. 0 = flat +# distribution; 1–2 is realistic for a typical transformation. +lib_assembly_skew_sigma: 1.25 + +# Each bacterium receives a number of plasmids drawn from a zero-truncated +# Poisson with this lambda. Set to 0 or null for exactly one plasmid per cell. +transformation_poisson_lambda: 0 + +# How a cell carrying several plasmids gets its growth rate. The cell's theta +# and TF activity come from congression_theta_rule ('max': the highest-theta +# plasmid sets both, at each condition); its dk_geno from congression_dk_rule +# ('dilution': share-weighted mean). Growth is then computed once from these +# cell-level values. Both keys are optional; these are the defaults. +congression_theta_rule: max +congression_dk_rule: dilution + +# Colony-forming units per mL at the start of pre-growth. +cfu0: 6.5e7 + +# Per-tube environmental growth-rate noise (hr⁻¹). Each physical tube gets its +# own delta_k ~ Normal(0, tube_noise_sigma); the kt contribution per tube is +# delta_k * (t_pre + t_sel), shared by all genotypes in that tube. A value of +# ~0.001–0.002 hr⁻¹ is typical for well-controlled liquid cultures. +# Set to 0 or null to disable. +tube_noise_sigma: 0.002 + +# --------------------------------------------------------------------------- +# Growth transition model (optional) +# --------------------------------------------------------------------------- + +# Models the lag phase when bacteria switch from pre-selection to selection medium. +# Every condition_pre in condition_blocks must have an entry. Use model: "instant" +# for conditions with no detectable lag. Omit this block to use instant everywhere. +# +# "memory" model: tau = tau0 + k1 / (theta + k2) +# tau0 = baseline lag (minutes) +# k1 = occupancy-dependence of lag (higher = more effect) +# k2 = curvature constant (> 0; prevents division by zero) +growth_transition: + - condition_pre: "pheS-4CP" + model: "instant" + + - condition_pre: "kanR-kan" + model: "instant" + +# --------------------------------------------------------------------------- +# Data collection parameters +# --------------------------------------------------------------------------- + +# Total sequencing reads across all samples. +total_num_reads: 100_000_000 + +# Fraction of reads re-assigned to a randomly chosen genotype (index hopping). +# Set to 0 or null to disable. +prob_index_hop: 0.00 + +# Random seed for reproducibility. Set to null for a random seed each run. +seed: 12345 + +# --------------------------------------------------------------------------- +# Binding data simulation (optional) +# --------------------------------------------------------------------------- + +# If present, tfs-simulate also writes a binding CSV with per-genotype theta +# curves. + +binding_data: + # The binding assay (shared by both genotype sets). + titrant_name: iptg + titrant_conc: [0, 0.0001, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1.0] + noise: 0.001 + + # Clean, monoclonal (congression-free) controls. Pool = spiked_seqs. + # choose_by: | stratified | random + # num: optional [1, num_spiked], default all (forbidden with a file) + spiked_binding: + choose_by: hill_params.csv + + # In-library controls, drawn from the bulk (congression-affected growth). + # Pool = library genotypes NOT in spiked_seqs. Omit to disable. + # choose_by: stratified | random | + # num: required for stratified/random (forbidden with a file) + library_binding: + num: 20 + choose_by: stratified + +presplit_data: + noise: 0.00 diff --git a/src/tfscreen/tfmodel/analysis/prediction.py b/src/tfscreen/tfmodel/analysis/prediction.py index bb1baa72..654e2c13 100644 --- a/src/tfscreen/tfmodel/analysis/prediction.py +++ b/src/tfscreen/tfmodel/analysis/prediction.py @@ -275,7 +275,12 @@ def _get_input(value, col_name): # the subset must remain marked as spiked; those outside the subset are # simply omitted. Dropping all spiked_genotypes would silently mis-classify # in-subset spiked genotypes as library genotypes and corrupt predictions. - if genotypes is not None: + # A model built from library_file reports the spiked list it derived, but + # the library table is the definition (and covers any subset), so the + # derived list is dropped, as write_configuration does. + if settings.get("library_file") is not None: + settings.pop("spiked_genotypes", None) + elif genotypes is not None: geno_set = set(geno_strs) orig_spiked = settings.get("spiked_genotypes") or [] settings["spiked_genotypes"] = [ diff --git a/tests/tfscreen/tfmodel/test_library_file.py b/tests/tfscreen/tfmodel/test_library_file.py index b0310a4e..9f2bcbeb 100644 --- a/tests/tfscreen/tfmodel/test_library_file.py +++ b/tests/tfscreen/tfmodel/test_library_file.py @@ -505,3 +505,22 @@ def test_config_with_spiked_genotypes_still_loads(self, tmp_path): reloaded, _ = read_configuration(f"{out_prefix}_config.yaml") assert reloaded.settings["spiked_genotypes"] == ["wt", "A2L"] + + +class TestPredictionSubset: + """Genotype-subset prediction copies a library_file model's settings.""" + + def test_copy_orchestrator_subset_keeps_library_file(self, library_file): + from tfscreen.tfmodel.analysis.prediction import copy_orchestrator + + orchestrator = ModelOrchestrator(_growth_df(), _binding_df(), + library_file=library_file) + full = copy_orchestrator(orchestrator) + assert sorted(_masks(full)[0]) == sorted(GENOTYPES) + + subset = copy_orchestrator(orchestrator, genotypes=["A2L", "A2C"]) + assert subset.settings["library_file"] == library_file + labels, _, spiked = _masks(subset) + # A2L is still in the spiked origin, as in the full model. + assert dict(zip(labels, spiked)) == {"A2L": True, "A2C": False} + From 187055323ae3889433203bb72bb76b5988ffdef5 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 08:51:02 -0700 Subject: [PATCH 021/208] Record the binary-transformant bench result (step 4 input) wt:D88A and wt:K84L each grew between their parents in 4CP at intermediate IPTG, close to the tighter binder: not consistent with weaker-binder dominance, and not able to separate max from a partition-function rule. Records the limits (no lambda, pheS only) and that single transformants taking over is partly expected under any rule, with ways to firm it up. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 31 +++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 5c93700b..d1b1022a 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -328,7 +328,7 @@ library_mixture: ## Experiments (bench) -Underway (user, 2026-09-23); results expected 2026-09-24. They decide the +Underway (user, 2026-09-23); first result 2026-09-24 (below). They decide the theta rule in step 4. - **Double transformation, tight + dead binder:** relative to the tight binder @@ -342,6 +342,35 @@ theta rule in step 4. Record results here when they arrive. +**Result, 2026-09-24 (user; student's experiment).** Growth in the pheS +selection (4CP) at three IPTG concentrations; high IPTG induces the toxin and +slows growth. Transformations at high DNA concentration of wt, D88A (super +repressor, tight binder), K84L (barely binds), and the pairs wt:D88A and +wt:K84L. At the intermediate IPTG: D88A fastest, wt intermediate, K84L no +growth. wt:D88A grew faster than wt, slightly slower than D88A; wt:K84L grew +faster than K84L, slightly slower than wt. So each pair grows between its +parents, close to the tighter binder. + +- User's reading: not consistent with weaker-binder dominance; does not + separate stronger-binder dominance (max) from a partition-function rule. + Encouraging that the sign of the correction is right. +- Limits (user): no direct lambda, so the mix of double transformants and + single transformants of each parent in the paired cultures is unknown + (high DNA concentration should give many doubles); pheS arm only. +- Caveat (Claude): single transformants of both parents are present in a + paired culture, and the faster parent's singles take over under + exponential growth. So "between the parents, close to the faster" is + partly expected under any rule, including weak-binder dominance, if singles + make up much of the culture. What separates the rules is how close to the + faster parent the pair is given the fraction of doubles. It could be + firmed up by estimating that fraction (genotyping single colonies from the + paired transformation), by the shape of the growth curve (a mixture of + subpopulations speeds up over time as the fast one takes over; a clonal + double grows at a constant rate), or by growing verified clonal doubles, + though those segregate over generations + (`planning/plasmid-segregation-low-copy.md`). +- Native MS: not available. + ## Steps Keep this list current. Work the steps in order and keep this conversation's From ebcf5b1532629e2f30e2c3f4a32ee0594bb26783 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 16:09:37 -0700 Subject: [PATCH 022/208] Record the 3.5 grid results and detection-floor diagnosis The calibration grid (54 runs, all converged) does not yet answer its question: the k/dk_geno slide is unanchored in this pipeline (no wt pin, no base_growth, prefit k_scale at its ceiling), congression is below the design's noise floor (single's errors do not change with lambda), and lambda is pulled up whatever the truth. Diagnosis (runs 0001/0002, same data): the mixture's forward model is correct (lambda -> 0 reproduces single to 1e-6), but the fit uses its congressed classes, through dk dilution, to fit the read-count detection floor: with pseudocount 1, rows with 0 reads sit +1.26 ln above the truth and 1-2 reads +0.62, so dying genotypes' trajectories bend upward. Real data share this path. Adds grid_masked.yaml (6 runs, rows with < 5 reads dropped via a new optional min_counts in run.srun) to test the diagnosis, the diagnosis scripts, and a study .gitignore for the grid outputs. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 11 ++ .../congression-calibration/.gitignore | 5 + .../studies/congression-calibration/README.md | 88 ++++++++++++- .../diagnosis/diag_geno.py | 28 +++++ .../diagnosis/diag_lam0.py | 119 ++++++++++++++++++ .../congression-calibration/grid_masked.yaml | 55 ++++++++ .../studies/congression-calibration/run.srun | 16 ++- 7 files changed, 316 insertions(+), 6 deletions(-) create mode 100644 planning/studies/congression-calibration/.gitignore create mode 100644 planning/studies/congression-calibration/diagnosis/diag_geno.py create mode 100644 planning/studies/congression-calibration/diagnosis/diag_lam0.py create mode 100644 planning/studies/congression-calibration/grid_masked.yaml diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index d1b1022a..7eeef1f4 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -588,6 +588,17 @@ checked with `tfs-summarize-calibration`. theta rule, so this checks the machinery and also serves as the baseline for step 4. Whether to run it before the bench result on the dominance rule is still open (2026-09-24). + Ran 2026-09-24 (all 54 converged); not yet usable. The k/dk_geno slide + is unanchored in this pipeline (no wt pin, no `base_growth`, prefit + `k_scale` at its ceiling); congression sits below the design's noise + floor (`single`'s errors do not change with lambda); and lambda is + pulled up whatever the truth. Diagnosis: the mixture uses its + congressed classes to fit the read-count detection floor (pseudocount + 1 puts 0-read rows +1.3 ln above the truth), which real data share. + Next: `grid_masked.yaml` (rows with < 5 reads dropped) to test the + diagnosis; then a censored likelihood for floor observations (user's + preferred fix), then the full grid re-run with a `base_growth` anchor. + Details: `planning/studies/congression-calibration/README.md`. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore new file mode 100644 index 00000000..a6e01ef0 --- /dev/null +++ b/planning/studies/congression-calibration/.gitignore @@ -0,0 +1,5 @@ +# Grid outputs (tens of GB) and the calibration summary; see README.md. +congression_calibration/ +calib/ +congression_calibration_masked/ +diagnosis/*.csv diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 78f7ee46..8a34e36e 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -80,8 +80,86 @@ Arms average over `seed` (the default `--replicate_keys`). ## Commit -Pending (set up 2026-09-24). - -## Results - -Pending. +Grid set up and run on `6e4735e` (2026-09-24). + +## Results (grid.yaml, 2026-09-24) + +All 54 runs finished and SVI converged. `tfs-summarize-calibration` outputs +are in `calib/` (not committed). The grid does not yet answer its question, +for three reasons: + +1. **The k/dk_geno slide is unanchored.** In every run the `growth_k` error + mirrors the `dk_geno` error, and the spread of the `dk_geno` errors is + small (0.001 to 0.01/min): each genotype's dk is recovered up to one + global constant. Nothing pins it here: `hierarchical_geno` does not pin + wt, there is no `base_growth` data, and the prefit's Hessian-derived + `k_scale` hit its 0.1 ceiling. `single` fits drift -0.02 to 0 in k, + mixture fits +0.02 to +0.07 (true baselines 0.01 to 0.03). `dk_geno` and + `growth_k` calibration are therefore meaningless in this grid. +2. **Congression is below the noise floor of this design.** `single`'s + errors do not change with the simulated lambda (growth RMSE 0.469 at + lambda 0 vs 0.471 at 1.0, tight dk; bulk theta without binding 0.180 vs + 0.181), although 42% of a bulk genotype's cells are congressed at + lambda 1.0. +3. **Lambda is pulled up whatever the truth.** With the 0.357 +/- 0.05 + prior, posterior medians were 0.46 to 0.66 at a true lambda of 0, + 0.46 to 0.60 at 0.357, and 0.44 to 0.63 at 1.0. With the matched prior at + 1.0: 1.00 to 1.28. Seed 3 is highest in every arm. + +Also: the mixture's theta RMSE is slightly worse than `single`'s in every +arm (0.20 to 0.22 vs 0.18, bulk genotypes), including lambda 0 with the +matched prior, where the fitted lambda is ~0.004. Bulk theta 95% coverage is +~0.65 in every arm, `single` included (a baseline overconfidence, separate +from congression). Binding genotypes are recovered well everywhere (theta +RMSE 0.015). + +## Diagnosis: the mixture fits the detection floor (2026-09-24) + +Scripts: [`diagnosis/`](diagnosis/) (run from that directory against the +pulled grid). Runs 0001 (`single`) and 0002 (mixture, matched prior, true +lambda 0, fitted lambda 0.004) were fit to the same data. + +- The mixture's forward model is right: at `single`'s posterior-median + latents with lambda = 1e-8 it reproduces `single`'s `growth_pred` to 1e-6. +- The mixture fit leans on its congressed classes anyway: switching them off + at its own latents costs 36,700 in growth log-likelihood. A class weighted + 0.2% can only matter that much by outgrowing the clean class by ~6 ln + units. The fit gets there through dk dilution: slow genotypes (true + dk_geno -0.02 to -0.05) are fit at ~-0.12, and their congressed cells, + with dk averaged against a co-resident, carry the late timepoints. +- What those classes fit is the read-count floor. `ln_cfu` uses a + pseudocount of 1 (`process_raw/counts_to_lncfu.py`, the same path as real + data), so a dying genotype's late timepoints stall above the truth: + + | reads | mean error vs truth (ln) | reported SD | + |---|---|---| + | 0 | +1.26 | 1.00 | + | 1-2 | +0.62 | 0.71 | + | 3-5 | +0.22 | 0.45 | + | 6-20 | +0.07 | 0.29 | + + A single exponential cannot bend upward; a dying clean class plus a slower + congressed class can. Genotypes relying on congressed classes have zero + reads in 29% of their rows, against 6% for the rest. +- This accounts for the grid results: more congressed weight fits the floor + better (lambda pulled up everywhere), the dk shifts move the fits along + the unanchored slide, and the mixture spends flexibility on the artifact. + `single` is biased by the same points, less visibly. +- Real data share the pseudocount path, so a mixture fit to real data would + do the same. + +The 0.4 ln-unit error on well-measured rows is the simulator's per-tube +growth noise (`tube_noise_sigma` x t; per-sample SD 0.374, within-sample +0.054), which `growth_noise` is meant to absorb. Not a data problem. + +## Next: masked re-run (grid_masked.yaml) + +Tests the diagnosis by dropping growth rows with fewer than 5 reads before +fitting (`min_counts`, handled in `run.srun`; 13,253 of 54,300 rows in the +lambda 0 simulation). Same simulations as grid runs 0001-0003 and 0037-0039 +(wide dk, seed 1), 6 runs. If the diagnosis is right, the lambda 0 mixture +matches `single`, and lambda stops being pulled up. The principled fix is a +censored likelihood for floor observations (user, 2026-09-24: preferred +next step over masking; fitting read counts directly is a longer-term +option). The anchored re-run of the full grid (a `base_growth` block) waits +on this. diff --git a/planning/studies/congression-calibration/diagnosis/diag_geno.py b/planning/studies/congression-calibration/diagnosis/diag_geno.py new file mode 100644 index 00000000..a9459fc5 --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_geno.py @@ -0,0 +1,28 @@ +""" +Per-genotype growth log-likelihood gained from the congressed classes in +grid run 0002 (lambda 0, mixture, matched prior), at the fit's median latents. +Writes geno_gain.csv. Run from this directory. +""" +import os +import sys +sys.argv = [sys.argv[0]] +from diag_lam0 import * +import pandas as pd + +(d2, o2, s2, st2) = load("run_0002") +lat2, _ = median_latents(o2, s2, st2) +off = dict(lat2); off["transformation_lam"] = jnp.array(1e-8) +on_lp, off_lp = per_genotype(o2, lat2, off) +drop = (on_lp - off_lp).reshape(-1, on_lp.shape[-1]).sum(axis=0) +labels = list(o2.growth_tm.tensor_dim_labels[o2.growth_tm.tensor_dim_names.index("genotype")]) +df = pd.DataFrame({"genotype": labels, "loglik_gain_from_congressed": drop}) +par = pd.read_csv(glob.glob(d2 + "/summary/*_params_dk_geno.csv")[0])[["genotype", "q0.5", "ref"]] +par.columns = ["genotype", "dk_fit", "dk_true"] +df = df.merge(par, on="genotype", how="left").sort_values("loglik_gain_from_congressed", ascending=False) +print("total gain", df.loglik_gain_from_congressed.sum().round(1)) +print("share of gain in top 10 / top 50 genotypes:", + (df.loglik_gain_from_congressed.head(10).sum() / df.loglik_gain_from_congressed.sum()).round(2), + (df.loglik_gain_from_congressed.head(50).sum() / df.loglik_gain_from_congressed.sum()).round(2)) +print(df.head(12).round(4).to_string(index=False)) +print("\nall genotypes: dk_fit - dk_true median %.4f" % (df.dk_fit - df.dk_true).median()) +df.to_csv("geno_gain.csv", index=False) diff --git a/planning/studies/congression-calibration/diagnosis/diag_lam0.py b/planning/studies/congression-calibration/diagnosis/diag_lam0.py new file mode 100644 index 00000000..6ad842a2 --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_lam0.py @@ -0,0 +1,119 @@ +""" +Diagnose why mixture fits with lambda ~ 0 do worse than single on the same data. + +Runs 0001 (single) and 0002 (mixture, matched prior, lambda -> ~0.004) were +fit to identical simulated data. Evaluate both models' log-likelihood and +predictions at both fits' posterior-median latents. +""" + +import glob +import os +import sys + +import jax +import jax.numpy as jnp +import numpy as np +from numpyro.handlers import seed, substitute, trace + +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.inference.run_inference import RunInference + +GRID = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "congression_calibration") +RUNS = sys.argv[1:] or ["run_0001", "run_0002"] + + +def load(run): + d = glob.glob(os.path.join(GRID, run + "_*"))[0] + cwd = os.getcwd() + os.chdir(d) + try: + orch, init_params = read_configuration("tfs_configure_config.yaml") + ri = RunInference(orch, 0) + svi, state = ri.restore_svi_from_checkpoint( + "tfs_fit_model_checkpoint.pkl", init_params=init_params) + finally: + os.chdir(cwd) + return d, orch, svi, state + + +def full_batch(orch): + return orch.get_batch(orch.data, jnp.arange(orch.data.num_genotype)) + + +def median_latents(orch, svi, state, n=60): + params = svi.get_params(state) + data = full_batch(orch) + guide = substitute(svi.guide, data=params) + draws = {} + for i in range(n): + tr = trace(seed(guide, i)).get_trace(data=data, priors=orch.priors) + for name, site in tr.items(): + if site["type"] == "sample" and not name.startswith("_"): + draws.setdefault(name, []).append(np.asarray(site["value"])) + return {k: jnp.asarray(np.median(np.stack(v), axis=0)) for k, v in draws.items()}, params + + +def evaluate(orch, latents): + data = full_batch(orch) + model = substitute(seed(orch.jax_model, 0), data=latents) + tr = trace(model).get_trace(data=data, priors=orch.priors) + obs = {name: float(jnp.sum(site["fn"].log_prob(site["value"]) + * (site["mask"] if site.get("mask") is not None else 1.0))) + for name, site in tr.items() + if site["type"] == "sample" and site.get("is_observed", False)} + return obs, np.asarray(tr["growth_pred"]["value"]) + + +if __name__ == "__main__": + (d1, o1, s1, st1), (d2, o2, s2, st2) = load(RUNS[0]), load(RUNS[1]) + print("single run :", os.path.basename(d1)) + print("mixture run:", os.path.basename(d2)) + + lat1, _ = median_latents(o1, s1, st1) + lat2, p2 = median_latents(o2, s2, st2) + print("\nmixture guide lam params:", + {k: np.asarray(v).round(4).tolist() for k, v in p2.items() if k.startswith("transformation")}) + print("mixture median lam:", float(lat2["transformation_lam"])) + + only1 = sorted(set(lat1) - set(lat2)); only2 = sorted(set(lat2) - set(lat1)) + print("latents only in single:", only1, " only in mixture:", only2) + + rows = [] + obs, g_s_s = evaluate(o1, lat1) + rows.append(("single model @ single fit", obs)) + obs, g_m_m = evaluate(o2, lat2) + rows.append(("mixture model @ mixture fit", obs)) + + for lam in (float(lat2["transformation_lam"]), 1e-8): + l = dict(lat1); l["transformation_lam"] = jnp.array(lam) + obs, g = evaluate(o2, l) + rows.append((f"mixture model @ single fit, lam={lam:.3g}", obs)) + diff = g - g_s_s + print(f"\ngrowth_pred mixture@single-fit(lam={lam:.3g}) - single@single-fit: " + f"max|d| {np.nanmax(np.abs(diff)):.4g}, rms {np.sqrt(np.nanmean(diff**2)):.4g}") + + l = dict(lat2); l.pop("transformation_lam") + obs, _ = evaluate(o1, l) + rows.append(("single model @ mixture fit", obs)) + + print("\nobserved-site log-likelihoods (sum):") + sites = sorted({k for _, o in rows for k in o}) + print(f"{'':48s}" + "".join(f"{s:>18s}" for s in sites) + f"{'total':>18s}") + for name, o in rows: + print(f"{name:48s}" + "".join(f"{o.get(s, np.nan):18.1f}" for s in sites) + + f"{sum(o.values()):18.1f}") + + +def per_genotype(orch, latents, off_latents): + """Growth log-lik per genotype with and without the congressed classes.""" + data = full_batch(orch) + out = [] + for lat in (latents, off_latents): + tr = trace(substitute(seed(orch.jax_model, 0), data=lat)).get_trace( + data=data, priors=orch.priors) + site = tr["growth_obs"] + lp = site["fn"].log_prob(site["value"]) + if site.get("mask") is not None: + lp = lp * site["mask"] + out.append(np.asarray(lp)) + return out diff --git a/planning/studies/congression-calibration/grid_masked.yaml b/planning/studies/congression-calibration/grid_masked.yaml new file mode 100644 index 00000000..f0827890 --- /dev/null +++ b/planning/studies/congression-calibration/grid_masked.yaml @@ -0,0 +1,55 @@ +# --------------------------------------------------------------------------- +# Masked follow-up to grid.yaml (congression calibration, step 3.5) +# +# tfs-setup-sim-grid grid_masked.yaml --out_prefix congression_calibration_masked +# for d in congression_calibration_masked/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Tests the detection-floor diagnosis (README "Diagnosis"): growth rows with +# fewer than min_counts reads are dropped before fitting. Same simulations as +# grid.yaml runs 0001-0003 (lambda 0) and 0037-0039 (lambda 1.0): wide dk, +# seed 1. 2 lambda x 3 fits = 6 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__dkloc{{ dk_geno_hyper_loc }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}__min{{ min_counts }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + - transformation_poisson_lambda: 1.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + + +template: + + - name: fit + variants: + - fit: single + lam_prior: "off" + - fit: mixture + lam_prior: matched + - fit: mixture + lam_prior: measured + + - name: mask + variants: + - min_counts: 5 + + - name: files + variants: + - hill_params_file: hill_params.csv diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index a46a85ea..05d1062d 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -24,6 +24,9 @@ FIT="{{ fit }}" LAM_PRIOR="{{ lam_prior }}" LAM_PRIOR_SD=0.05 LAM_MEASURED=0.357 +# Growth rows with fewer reads than this are dropped before configure (0 keeps +# everything). grid_masked.yaml sets it; grid.yaml leaves the default. +MIN_COUNTS={{ min_counts | default(0) }} # The simulated lambda and the seed live in tfs_sim_config.yaml. read -r SEED LAM_SIM < <(python -c " @@ -41,6 +44,17 @@ cp "{{ hill_params_file }}" hill_params.csv echo ">>> Simulate (lambda=${LAM_SIM}, seed=${SEED})" tfs-simulate tfs_sim_config.yaml . --seed "${SEED}" +GROWTH_CSV=tfs_sim_growth.csv +if [[ "${MIN_COUNTS}" -gt 0 ]]; then + GROWTH_CSV=tfs_sim_growth_min${MIN_COUNTS}.csv + python -c " +import pandas as pd +df = pd.read_csv('tfs_sim_growth.csv') +kept = df[df['counts'] >= ${MIN_COUNTS}] +kept.to_csv('${GROWTH_CSV}', index=False) +print(f'Dropped {len(df) - len(kept)} of {len(df)} growth rows with counts < ${MIN_COUNTS}')" +fi + # --------------------------------------------------------------------------- # 2. Configure # --------------------------------------------------------------------------- @@ -59,7 +73,7 @@ fi echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR})" tfs-configure-model \ tfs_sim_binding.csv \ - --growth_df tfs_sim_growth.csv \ + --growth_df "${GROWTH_CSV}" \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ --growth_transition_model instant \ From d2523b26b2b509aa661558f2b1a825e5d327d849 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 16:56:29 -0700 Subject: [PATCH 023/208] File per-sample offset and count-likelihood ideas Follow-ups from the 3.5 detection-floor diagnosis. The per-sample level offset absorbs noise shared by every genotype in a tube (tube growth noise, plating, PCR), which the model now treats as independent per-row error. The count likelihood fits reads with a negative binomial and a per-sample offset centered on plating: exact low-count information, no binomial approximation or pseudocount, and misassignment (index hopping, calling efficiency) modeled as added reads. Censoring comes first and waits on the masked grid results. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 5 ++ planning/count-likelihood.md | 72 ++++++++++++++++++++++++++++ planning/per-sample-level-offset.md | 60 +++++++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 planning/count-likelihood.md create mode 100644 planning/per-sample-level-offset.md diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 7eeef1f4..2dbbecf5 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -18,6 +18,8 @@ related: - planning/plasmid-segregation-low-copy.md - planning/combination-specific-expression-effects.md - planning/estimate-spike-fraction-from-growth-curvature.md + - planning/per-sample-level-offset.md + - planning/count-likelihood.md --- ## Why @@ -599,6 +601,9 @@ checked with `tfs-summarize-calibration`. diagnosis; then a censored likelihood for floor observations (user's preferred fix), then the full grid re-run with a `base_growth` anchor. Details: `planning/studies/congression-calibration/README.md`. + Filed 2026-09-24 as follow-ups: `planning/per-sample-level-offset.md` + and `planning/count-likelihood.md`. Censoring waits on the masked + results (user). 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/count-likelihood.md b/planning/count-likelihood.md new file mode 100644 index 00000000..a0a00fca --- /dev/null +++ b/planning/count-likelihood.md @@ -0,0 +1,72 @@ +--- +title: Fit read counts directly instead of ln_cfu +status: idea +filed: 2026-09-24 +area: tfmodel +revisit_when: >- + After censoring and the per-sample offset are in and the congression + calibration grid has been re-run. The user expects to get here (2026-09-24): + the data side is mostly propagating information we drop today. +related: + - planning/congression-physics-plan.md + - planning/per-sample-level-offset.md + - planning/studies/congression-calibration/README.md + - src/tfscreen/process_raw/counts_to_lncfu.py + - src/tfscreen/tfmodel/generative/observe/growth.py + - src/tfscreen/tfmodel/generative/observe/presplit.py +--- + +**Context:** The congression calibration grid (2026-09-24) found that the +mixture used its congressed classes to fit the read-count detection floor. +`ln_cfu` is computed from counts with a pseudocount of 1, so rows with 0 +reads sit +1.26 ln units above the truth and 1-2 reads +0.62. Censoring those +rows is the next step. It keeps "below the floor" but loses the difference +between 0 and 4 reads, and it leaves the rest of the approximation in place. + +**Idea:** Make read counts the observation. Per sample s and genotype g: + +``` +reads[g, s] ~ NegBin(mean = exp(ln_cfu_pred[g, s] + o_s), dispersion) +``` + +with `o_s` a per-sample intercept whose prior is centered on plating, +`o_s ~ ln N_s - sample_ln_cfu_s` with the plating uncertainty as its width. +With `o_s` free this matches a multinomial over the tube (the Poisson trick), +but each genotype's term stands alone, so genotype mini-batching still works. +The reads carry how genotypes compare within a tube; plating carries the +absolute scale. Predictions and all downstream outputs stay in `ln_cfu`. + +What it gives that `ln_cfu` with censoring cannot: + +- **Exact low-count information:** 0 vs 4 reads pins down when a genotype + crashed, which carries theta information at strong selection. +- **The right noise model everywhere:** no first-order binomial approximation + (poor below ~20 reads), no pseudocount, and a learned overdispersion for + PCR jackpotting, which is probably why high-count rows look overconfident. +- **Misassignment as additive physics:** index hopping, cross-contamination + and barcode-calling efficiency add reads in count space, + `E[reads] = N (p_g + h q_g + ...)`, which is what produces a floor. Index + hopping into sample s comes from genotype g in the other samples of the + lane, so it only couples a genotype to itself across samples (batch safe). + Sequencing errors that turn one genotype into another would couple + genotypes; leave them to the `__unknown__` bucket. + +**Why not now:** The user wants the masked grid results and censoring first +(2026-09-24). The core noise model needs design: today tube growth noise is +per-row variance (`sigma_k`). In a count model, the per-tube shared part goes +into `o_s` (see `planning/per-sample-level-offset.md`) and the per-row part +into the NegBin dispersion; a per-(tube, genotype) latent would be far too +many parameters. + +**What it would take:** + +- **Data:** keep raw counts, per-sample depth `N_s` (including the + `__unknown__` reads) and plating through `tfs-process-counts` and + `tfs-process-presplit`. Most of it is already in the processed CSVs. +- **Model:** new growth and presplit observers; per-sample `o_s` latents + (built by the per-sample offset idea); a dispersion model; optionally index + hopping and calling efficiency. +- **Interactions:** `o_s` vs `ln_cfu0` and the k/dk_geno slide; the congression + mixture is unchanged (it acts on `ln_cfu_pred`). +- **Checks:** the calibration grid with index hopping and PCR overdispersion + turned on in the simulator, against the censored `ln_cfu` model. diff --git a/planning/per-sample-level-offset.md b/planning/per-sample-level-offset.md new file mode 100644 index 00000000..8a2e0a48 --- /dev/null +++ b/planning/per-sample-level-offset.md @@ -0,0 +1,60 @@ +--- +title: Per-sample (tube-level) ln_cfu offset in the growth likelihood +status: idea +filed: 2026-09-24 +area: tfmodel +revisit_when: >- + After censored floor observations are in (step 3.5 of the congression + plan), or sooner if theta coverage stays well below nominal once the + floor bias is fixed. +related: + - planning/congression-physics-plan.md + - planning/count-likelihood.md + - planning/studies/congression-calibration/README.md + - src/tfscreen/tfmodel/generative/observe/growth.py + - src/tfscreen/tfmodel/generative/components/growth_noise/normal_kt.py + - src/tfscreen/tfmodel/generative/components/sample_offset/normal.py + - src/tfscreen/process_raw/counts_to_lncfu.py +--- + +**Context:** Diagnosing the congression calibration grid (2026-09-24). On +well-measured simulated rows (more than 100 reads) the error in `ln_cfu` was +0.38 ln units, almost all of it shared by every genotype in a sample: +per-sample SD 0.374, within-sample 0.054. It is the simulator's per-tube +growth noise (`tube_noise_sigma` x t). Real data add a second shared term: +every genotype's `ln_cfu` in a tube carries the same plating (`sample_ln_cfu`) +error, and the per-tube denominator review found a PCR component too. + +The model treats these as independent per-row noise: `growth_noise` +(`normal_kt`) adds `sigma_k` in quadrature to each row's `ln_cfu_std`, and +`sample_ln_cfu_std` is folded into each row's `ln_cfu_var` in +`counts_to_lncfu`. A shared offset seen as N independent errors gives N-fold +too much information about everything that differs between tubes, and too +little about what is shared. Bulk theta 95% coverage was about 0.65 in every +arm of the grid, `single` included; this is one candidate cause. + +**Idea:** Add one latent level offset per sample, `o_s`, shared by all +genotypes in the tube: `ln_cfu_obs[g, s] ~ ln_cfu_pred[g, s] + o_s + e[g, s]`. +Its prior width comes from the known shared sources (plating SD, tube growth +noise over the elapsed time, a PCR term); the per-row noise keeps only the +counting part. `sigma_k` then shrinks to what is genuinely per-row. + +**Why not now:** The detection-floor bias (censoring) comes first; it is a +concrete bias the mixture exploits. This one is a calibration improvement +whose size in real data is not yet measured. + +**What it would take:** + +- A new component (or a replacement for `sample_offset`, whose current form + offsets the growth *rate*, not the level; it is also not exposed by + `tfs-configure-model`). +- `counts_to_lncfu` to write the counting variance and the plating variance + separately instead of summing them into `ln_cfu_var`. +- `o_s` is a per-sample latent: mini-batch safe as a global site, like the + condition parameters. +- Interaction with `ln_cfu0` and the k/dk_geno slide: `o_s` at the first + timepoint trades against `ln_cfu0`; the prior has to keep it identified. +- The sim to test it: the calibration grid, comparing theta coverage with and + without the offset. +- It is the `o_s` of `planning/count-likelihood.md`; building it first makes + that project smaller. From 9665b992828b5ddfec8df92c34e3cdc22fb6a155 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 17:30:37 -0700 Subject: [PATCH 024/208] Resolve nested file paths in tfs-setup-sim-grid tfs-setup-sim-grid resolved only the top-level thermo_data and calibration_file keys. Nested file references -- a params file in binding_data.spiked_binding.choose_by or binding_data.library_binding.choose_by, and empirical.phenotype_model -- were copied verbatim into each run's tfs_sim_config.yaml and then resolved against the run directory, so tfs-simulate could not find them unless the run template copied the file in. Setting up run directories is the grid tool's job, not the run script's. _SIM_PATH_KEYS is now a list of key paths, nested ones included. _resolve_paths follows them through dicts on a deep copy and resolves relative values against the base config's directory (base config) or the grid YAML's directory (simulate overrides). The existing relativize step then writes them relative to each run subdir. The choose_by keywords stratified/random are left alone. The congression-calibration study drops the cp of hill_params.csv from run.srun and the hill_params_file template block from grid.yaml and grid_masked.yaml. Its README and simulate_config.yaml comments now describe the new behavior. CLAUDE.md and CHANGELOG.md are updated. Verification: new tests cover nested choose_by and phenotype_model resolution, a keyword choose_by, a missing or non-dict parent, and a binding_data override resolved against the grid YAML. The simulate and util suites pass (878). tfs-setup-sim-grid on the study's grid.yaml wrote a choose_by path that resolves from each run directory, and tfs-simulate run from one run directory read hill_params.csv (the simulated parameters match the file). Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 14 +++ CLAUDE.md | 1 + .../studies/congression-calibration/README.md | 7 +- .../studies/congression-calibration/grid.yaml | 4 - .../congression-calibration/grid_masked.yaml | 4 - .../studies/congression-calibration/run.srun | 4 - .../simulate_config.yaml | 4 +- .../simulate/scripts/setup_sim_grid_cli.py | 44 +++++-- .../simulate/test_setup_sim_grid_cli.py | 116 ++++++++++++++++++ 9 files changed, 174 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcc069b4..4c3e2448 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -202,6 +202,20 @@ fall into two kinds: ### Fixed +- **`tfs-setup-sim-grid` left nested file paths unresolved.** Only the + top-level `thermo_data`/`calibration_file` keys were resolved; nested ones, + notably a `binding_data.spiked_binding.choose_by` or + `binding_data.library_binding.choose_by` params file and + `empirical.phenotype_model`, were copied verbatim into each run's + `tfs_sim_config.yaml` and then resolved against the run directory, so + `tfs-simulate` could not find them unless the run template copied the file + in. `_SIM_PATH_KEYS` (`simulate/scripts/setup_sim_grid_cli.py`) is now a + list of key paths, nested ones included; they resolve against the base + config's directory (base config) or the grid YAML's (simulate overrides) and + are written relative to the run directory. The `stratified`/`random` + `choose_by` keywords are left alone. The congression-calibration study's + `run.srun` no longer copies `hill_params.csv`, and its grid YAMLs drop the + `hill_params_file` template block. - **Growth prediction failed on every model built from a library file.** `tfs-predict-growth`, and everything else that goes through `prediction.predict` (prior-predictive growth, the genotype trajectory diff --git a/CLAUDE.md b/CLAUDE.md index 98860ce0..0b933062 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -472,6 +472,7 @@ template: - Multi-key variants (multiple keys in one dict) always travel together and are never split. - `simulate` / `configure_model` variables go to the config; `template` variables go to the Jinja2 template only. To share a variable, list it in both sections. - Variable names in blocks: `snake_case`. +- File paths are the grid tool's job, never the run template's: relative paths resolve against the base config's directory (base config values) or the grid YAML's (overrides) and are written relative to each run subdir. `tfs-setup-sim-grid` resolves only the key paths listed in `_SIM_PATH_KEYS` (`setup_sim_grid_cli.py`; nested keys such as `binding_data.*.choose_by` and `empirical.phenotype_model` included, `choose_by` keywords excepted) — add any new file-valued simulate key there. ### Shared grid utilities diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 8a34e36e..0eb81ffe 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -49,9 +49,10 @@ Each run ([`run.srun`](run.srun)): `tfs-simulate` -> `tfs-configure-model` ## How to run -On the cluster, from a scratch directory, with this repository checked out -(the rendered `run.srun` finds `hill_params.csv` by a path relative to the -study directory, so do not move the grid after setting it up): +On the cluster, from a scratch directory, with this repository checked out. +`tfs-setup-sim-grid` writes each run's `binding_data.spiked_binding.choose_by` +as a path from the run directory to this study's `hill_params.csv`, so nothing +is copied, but keep the grid and the checkout where they are after setup: ```bash tfs-setup-sim-grid /path/to/tfscreen/planning/studies/congression-calibration/grid.yaml \ diff --git a/planning/studies/congression-calibration/grid.yaml b/planning/studies/congression-calibration/grid.yaml index 39574548..85d4521e 100644 --- a/planning/studies/congression-calibration/grid.yaml +++ b/planning/studies/congression-calibration/grid.yaml @@ -68,7 +68,3 @@ template: lam_prior: matched - fit: mixture lam_prior: measured - - - name: files - variants: - - hill_params_file: hill_params.csv diff --git a/planning/studies/congression-calibration/grid_masked.yaml b/planning/studies/congression-calibration/grid_masked.yaml index f0827890..a6678c3f 100644 --- a/planning/studies/congression-calibration/grid_masked.yaml +++ b/planning/studies/congression-calibration/grid_masked.yaml @@ -49,7 +49,3 @@ template: - name: mask variants: - min_counts: 5 - - - name: files - variants: - - hill_params_file: hill_params.csv diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 05d1062d..69c4e364 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -34,10 +34,6 @@ import yaml cf = yaml.safe_load(open('tfs_sim_config.yaml')) print(cf['seed'], cf.get('transformation_poisson_lambda') or 0.0)") -# binding_data.spiked_binding.choose_by is resolved against the working -# directory. -cp "{{ hill_params_file }}" hill_params.csv - # --------------------------------------------------------------------------- # 1. Simulate # --------------------------------------------------------------------------- diff --git a/planning/studies/congression-calibration/simulate_config.yaml b/planning/studies/congression-calibration/simulate_config.yaml index e235ed7a..b7fbd78f 100644 --- a/planning/studies/congression-calibration/simulate_config.yaml +++ b/planning/studies/congression-calibration/simulate_config.yaml @@ -6,8 +6,8 @@ # - library_binding adds 20 in-library (bulk) binding anchors; # - transformation_poisson_lambda and the dk_geno hyperparameters are set # per run by grid.yaml. -# binding_data.spiked_binding.choose_by names hill_params.csv relative to the -# working directory; run.srun copies it into each run directory. +# binding_data.spiked_binding.choose_by names hill_params.csv relative to this +# file; tfs-setup-sim-grid rewrites it relative to each run directory. # --------------------------------------------------------------------------- diff --git a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py index a6a4c1b8..882a1a3a 100644 --- a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py +++ b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py @@ -43,8 +43,13 @@ subdirectory in the written config. - Relative paths already in the base config are resolved relative to the base config's location, then re-expressed relative to each subdirectory. +- The file-path keys are listed in ``_SIM_PATH_KEYS``, nested ones included + (``empirical.phenotype_model``, ``binding_data.*.choose_by``). A + ``choose_by`` keyword (``stratified``/``random``) is not a path and is left + alone. Run templates never need to copy input files into the run directory. """ +import copy import itertools import json import os @@ -60,8 +65,20 @@ relativize_template_vars as _relativize_template_vars, ) -# Top-level keys in the simulate config that hold file paths. -_SIM_PATH_KEYS = frozenset({"thermo_data", "calibration_file"}) +# Keys in the simulate config that hold file paths, as key paths into the +# (possibly nested) config dict. Add any new file-valued key here; a key missing +# from this list is copied verbatim and then resolves against the run directory. +_SIM_PATH_KEYS = ( + ("thermo_data",), + ("calibration_file",), + ("empirical", "phenotype_model"), + ("binding_data", "spiked_binding", "choose_by"), + ("binding_data", "library_binding", "choose_by"), +) + +# Values of a path key that are keywords, not paths (see +# simulate/library_prediction.py::_is_file_choice). +_PATH_KEYWORDS = frozenset({"stratified", "random"}) # Fixed filename for the per-run config written into each subdirectory. _SIM_CONFIG_FILENAME = "tfs_sim_config.yaml" @@ -86,11 +103,24 @@ def _expand_block(block): # --------------------------------------------------------------------------- def _resolve_paths(vars_dict, base_dir): - """Return a copy of vars_dict with _SIM_PATH_KEYS resolved to absolute paths.""" - out = dict(vars_dict) - for key in _SIM_PATH_KEYS: - if key in out and out[key] and not os.path.isabs(out[key]): - out[key] = os.path.normpath(os.path.join(base_dir, out[key])) + """Return a copy of vars_dict with _SIM_PATH_KEYS resolved to absolute paths. + + Nested key paths are followed only through dicts; missing or empty values, + absolute paths, non-strings and ``_PATH_KEYWORDS`` are left unchanged. The + input is not modified. + """ + out = copy.deepcopy(vars_dict) + for key_path in _SIM_PATH_KEYS: + node = out + for key in key_path[:-1]: + node = node.get(key) if isinstance(node, dict) else None + if not isinstance(node, dict): + continue + val = node.get(key_path[-1]) + if (not isinstance(val, str) or not val or os.path.isabs(val) + or val in _PATH_KEYWORDS): + continue + node[key_path[-1]] = os.path.normpath(os.path.join(base_dir, val)) return out diff --git a/tests/tfscreen/simulate/test_setup_sim_grid_cli.py b/tests/tfscreen/simulate/test_setup_sim_grid_cli.py index 4c44b570..3f584ff7 100644 --- a/tests/tfscreen/simulate/test_setup_sim_grid_cli.py +++ b/tests/tfscreen/simulate/test_setup_sim_grid_cli.py @@ -251,3 +251,119 @@ def test_setup_sim_grid_override_applied(tmp_path, base_config): assert cfg["observable_calculator"] == "eee" # Base config values not overridden are preserved assert cfg["reading_frame"] == 0 + + +# --------------------------------------------------------------------------- +# Nested file paths (binding_data.*.choose_by, empirical.phenotype_model) +# --------------------------------------------------------------------------- + +def _read_run_config(out, run): + with open(os.path.join(out, run["run"], "tfs_sim_config.yaml")) as fh: + return yaml.safe_load(fh) + + +def test_resolve_paths_nested_choose_by(tmp_path): + (tmp_path / "hill_params.csv").write_text("x") + cfg = {"binding_data": {"spiked_binding": {"choose_by": "hill_params.csv"}, + "library_binding": {"choose_by": "stratified", + "num": 5}}} + result = _resolve_paths(cfg, str(tmp_path)) + assert (result["binding_data"]["spiked_binding"]["choose_by"] + == str(tmp_path / "hill_params.csv")) + assert result["binding_data"]["library_binding"]["choose_by"] == "stratified" + # The input is not modified + assert cfg["binding_data"]["spiked_binding"]["choose_by"] == "hill_params.csv" + + +def test_resolve_paths_nested_phenotype_model(tmp_path): + result = _resolve_paths({"empirical": {"phenotype_model": "m.json"}}, + str(tmp_path)) + assert result["empirical"]["phenotype_model"] == str(tmp_path / "m.json") + + +def test_resolve_paths_missing_nested_parent(tmp_path): + cfg = {"binding_data": None, "empirical": "not-a-dict"} + assert _resolve_paths(cfg, str(tmp_path)) == cfg + + +def test_setup_sim_grid_base_config_choose_by_file(tmp_path): + """A choose_by params file in the base config resolves from the run dir.""" + study = tmp_path / "study" + study.mkdir() + (study / "hill_params.csv").write_text("genotype\nwt\n") + base = {"seed": 1, + "binding_data": {"spiked_binding": {"choose_by": "hill_params.csv"}, + "library_binding": {"choose_by": "random", + "num": 3}}} + (study / "simulate_config.yaml").write_text(yaml.dump(base)) + (study / "grid.yaml").write_text("""\ +base_config: simulate_config.yaml +simulate: + - name: seed + variants: + - seed: 1 + - seed: 2 +""") + out = str(tmp_path / "elsewhere" / "grid_out") + runs = setup_sim_grid(str(study / "grid.yaml"), out_prefix=out) + assert len(runs) == 2 + for run in runs: + cfg = _read_run_config(out, run) + choose_by = cfg["binding_data"]["spiked_binding"]["choose_by"] + # Written relative to the run directory, and it resolves from there + assert not os.path.isabs(choose_by) + run_dir = os.path.join(out, run["run"]) + assert (os.path.realpath(os.path.join(run_dir, choose_by)) + == os.path.realpath(study / "hill_params.csv")) + # Keyword left alone + assert cfg["binding_data"]["library_binding"]["choose_by"] == "random" + + +def test_setup_sim_grid_keyword_choose_by_unchanged(tmp_path): + """A choose_by keyword is kept even when a file of that name exists.""" + (tmp_path / "stratified").write_text("x") + base = {"binding_data": {"spiked_binding": {"choose_by": "stratified"}}} + (tmp_path / "simulate_config.yaml").write_text(yaml.dump(base)) + (tmp_path / "grid.yaml").write_text("""\ +base_config: simulate_config.yaml +simulate: + - name: seed + variants: + - seed: 1 +""") + out = str(tmp_path / "grid_out") + runs = setup_sim_grid(str(tmp_path / "grid.yaml"), out_prefix=out) + cfg = _read_run_config(out, runs[0]) + assert cfg["binding_data"]["spiked_binding"]["choose_by"] == "stratified" + + +def test_setup_sim_grid_override_choose_by_from_grid_dir(tmp_path): + """A binding_data override resolves its choose_by against the grid YAML.""" + base_dir = tmp_path / "base" + base_dir.mkdir() + (base_dir / "simulate_config.yaml").write_text(yaml.dump( + {"binding_data": {"spiked_binding": {"choose_by": "stratified"}}})) + grid_dir = tmp_path / "grid" + grid_dir.mkdir() + (grid_dir / "measured.csv").write_text("genotype\nwt\n") + (grid_dir / "grid.yaml").write_text("""\ +base_config: ../base/simulate_config.yaml +simulate: + - name: binding + variants: + - binding_data: + spiked_binding: + choose_by: measured.csv +""") + out = str(tmp_path / "grid_out") + runs = setup_sim_grid(str(grid_dir / "grid.yaml"), out_prefix=out) + cfg = _read_run_config(out, runs[0]) + choose_by = cfg["binding_data"]["spiked_binding"]["choose_by"] + run_dir = os.path.join(out, runs[0]["run"]) + assert (os.path.realpath(os.path.join(run_dir, choose_by)) + == os.path.realpath(grid_dir / "measured.csv")) + # combo.json keeps the override as written + with open(os.path.join(run_dir, "combo.json")) as fh: + combo = json.load(fh) + assert (combo["simulate"]["binding_data"]["spiked_binding"]["choose_by"] + == "measured.csv") From 14f1bc4195e45ccd7a59344756cca4e4250e16b0 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 17:50:21 -0700 Subject: [PATCH 025/208] Record masked results; set up binding-weight grid (step 3.5) Dropping growth rows with < 5 reads changed almost nothing (lambda at truth 0 still 0.53 under a 0.357 prior; slide and theta RMSE unchanged), so the detection floor was not what drives the mixture. The joint log density of the lambda-0 fits differs almost entirely in the binding term: the default binding_weight (growth rows / binding rows, ~251) with simulated binding SD 0.001 dominates the objective, and the mixture's congressed classes let bulk genotypes hand their growth away through dk dilution so theta and shared hill_mut effects can follow binding. Adds grid_bw1.yaml (6 runs, binding_weight 1) through a new optional binding_weight in run.srun, sets the SLURM limit to 2 h, adds the diagnosis scripts (compare_masked, diag_basin, diag_sites; diag_lam0 takes GRID), and records the masked results and revised diagnosis in the study README and the plan. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 9 +++ .../congression-calibration/.gitignore | 1 + .../studies/congression-calibration/README.md | 74 ++++++++++++++++--- .../diagnosis/compare_masked.py | 55 ++++++++++++++ .../diagnosis/diag_basin.py | 57 ++++++++++++++ .../diagnosis/diag_lam0.py | 2 +- .../diagnosis/diag_sites.py | 27 +++++++ .../congression-calibration/grid_bw1.yaml | 53 +++++++++++++ .../studies/congression-calibration/run.srun | 13 +++- 9 files changed, 276 insertions(+), 15 deletions(-) create mode 100644 planning/studies/congression-calibration/diagnosis/compare_masked.py create mode 100644 planning/studies/congression-calibration/diagnosis/diag_basin.py create mode 100644 planning/studies/congression-calibration/diagnosis/diag_sites.py create mode 100644 planning/studies/congression-calibration/grid_bw1.yaml diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 2dbbecf5..93d78501 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -604,6 +604,15 @@ checked with `tfs-summarize-calibration`. Filed 2026-09-24 as follow-ups: `planning/per-sample-level-offset.md` and `planning/count-likelihood.md`. Censoring waits on the masked results (user). + Masked re-run (2026-09-24): dropping rows with < 5 reads changed almost + nothing, so the floor was not the driver. Revised diagnosis: the + default `binding_weight` (growth rows / binding rows, ~251) with + simulated binding SD 0.001 dominates the objective; the mixture's + congressed classes let bulk genotypes hand their growth away (dk + dilution) so theta, and shared hill_mut effects, can follow binding. + Next: `grid_bw1.yaml` (binding_weight 1). The weight and the real + binding SDs (SE of a fitted Hill curve) are open questions for real + data (user, 2026-09-24). 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index a6e01ef0..8314cb70 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -3,3 +3,4 @@ congression_calibration/ calib/ congression_calibration_masked/ diagnosis/*.csv +congression_calibration_bw1/ diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 0eb81ffe..f568bf85 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -114,7 +114,7 @@ matched prior, where the fitted lambda is ~0.004. Bulk theta 95% coverage is from congression). Binding genotypes are recovered well everywhere (theta RMSE 0.015). -## Diagnosis: the mixture fits the detection floor (2026-09-24) +## First diagnosis: the detection floor (2026-09-24; superseded, see below) Scripts: [`diagnosis/`](diagnosis/) (run from that directory against the pulled grid). Runs 0001 (`single`) and 0002 (mixture, matched prior, true @@ -153,14 +153,64 @@ The 0.4 ln-unit error on well-measured rows is the simulator's per-tube growth noise (`tube_noise_sigma` x t; per-sample SD 0.374, within-sample 0.054), which `growth_noise` is meant to absorb. Not a data problem. -## Next: masked re-run (grid_masked.yaml) - -Tests the diagnosis by dropping growth rows with fewer than 5 reads before -fitting (`min_counts`, handled in `run.srun`; 13,253 of 54,300 rows in the -lambda 0 simulation). Same simulations as grid runs 0001-0003 and 0037-0039 -(wide dk, seed 1), 6 runs. If the diagnosis is right, the lambda 0 mixture -matches `single`, and lambda stops being pulled up. The principled fix is a -censored likelihood for floor observations (user, 2026-09-24: preferred -next step over masking; fitting read counts directly is a longer-term -option). The anchored re-run of the full grid (a `base_growth` block) waits -on this. +## Masked re-run (grid_masked.yaml, 2026-09-24): floor not the driver + +`grid_masked.yaml` dropped growth rows with fewer than 5 reads (`min_counts` +in `run.srun`) and refit grid runs 0001-0003 and 0037-0039. The cluster +reproduced the original simulations exactly. Comparison +([`diagnosis/compare_masked.py`](diagnosis/compare_masked.py)), true lambda 0: + +| | full data | masked | +|---|---|---| +| lambda, measured prior (0.357 +/- 0.05) | 0.55 | 0.53 | +| k offset, mixture (matched prior) | +0.062 | +0.065 | +| bulk theta RMSE, mixture vs `single` | 0.267 vs 0.219 | 0.270 vs 0.220 | + +Lambda 1.0 behaved the same. The mixture still leans on its congressed +classes (switching them off costs 21,100 in growth log-likelihood, against +36,700 unmasked). The floor bias is real and censoring is still worth doing, +but it does not drive the mixture's behavior. + +## Revised diagnosis: the binding weight (2026-09-24) + +Scripts: [`diagnosis/diag_basin.py`](diagnosis/diag_basin.py) and +[`diagnosis/diag_sites.py`](diagnosis/diag_sites.py) (runs 0001/0002). The +joint log density of the two lambda-0 fits differs almost entirely in the +binding likelihood: + +| term | mixture fit - `single` fit | +|---|---| +| binding likelihood, as weighted in the fit | +1,044,800 | +| growth likelihood | -37,600 | +| everything else | about -1,100 | + +`ModelOrchestrator` scales the binding likelihood by `binding_weight`, +which defaults to growth rows / binding rows (about 54,300 / 216 = 251 +here), and the simulated binding data have `theta_std` 0.001. Together they +dominate the objective; `single` cannot fit them (residuals ~15 sigma, +theta ~0.015). The mixture gives the fit a way out: pushing a genotype's own +dk_geno far down removes its clean cells from its trajectory, its congressed +classes (dk averaged with a co-resident) carry its growth, and its theta is +free to follow binding. The 20 in-library binding genotypes gain 1,430; the +4 spiked ones gain 2,730, mostly H74A (2,020), through hill_mut mutation +effects shared with bulk genotypes carrying H74 changes. This accounts for +lambda being pulled up, the slide, and the worse bulk theta and growth. +Not a mixture bug: the weight also bends `single` fits, less visibly. + +Background (user, 2026-09-24): the weight was added when, with ~200,000 +growth genotypes and ~10 binding genotypes, fits ignoring the binding data +won. That points to a conflict between the modalities over shared +parameters (m, k, shared mutation effects) rather than a volume problem; +the binding assay has since moved closer to cellular conditions. The +binding SDs used on real data are the SE of a Hill curve fitted to the +anisotropy points, which counts 9 correlated values as independent and +leaves no room for differences between assay and cell. + +## Next: binding weight 1 (grid_bw1.yaml) + +The same 6 simulations as the masked grid, all rows, refit with +`--binding_weight 1` (`binding_weight` in `run.srun`). If the revised +diagnosis is right, the lambda-0 mixture matches `single`, lambda stops +being pulled up, and the mixture's extra slide goes away. The simulation +generates binding and growth consistently, so it tests the weighting, not +the real modality mismatch. diff --git a/planning/studies/congression-calibration/diagnosis/compare_masked.py b/planning/studies/congression-calibration/diagnosis/compare_masked.py new file mode 100644 index 00000000..4807dd07 --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/compare_masked.py @@ -0,0 +1,55 @@ +""" +Compare the masked runs (grid_masked.yaml, rows with < 5 reads dropped) with +their unmasked twins in grid.yaml (same simulated data). Run from the study +directory. +""" +import glob +import json + +import numpy as np +import pandas as pd + +PAIRS = {"0001": "0001", "0002": "0002", "0003": "0003", + "0004": "0037", "0005": "0038", "0006": "0039"} + + +def summarize(d): + c = json.load(open(f"{d}/combo.json")) + s, t = c["simulate"], c["template"] + out = dict(lam_true=s["transformation_poisson_lambda"], + arm=f"{t['fit']}/{t['lam_prior']}") + lam = glob.glob(f"{d}/summary/*_params_lam.csv") + if lam: + r = pd.read_csv(lam[0]).iloc[0] + out["lam_q50"], out["lam_q025"], out["lam_q975"] = r["q0.5"], r["q0.025"], r["q0.975"] + k = pd.read_csv(glob.glob(f"{d}/summary/*_params_growth_k.csv")[0]) + dk = pd.read_csv(glob.glob(f"{d}/summary/*_params_dk_geno.csv")[0]) + out["k_off"] = (k["q0.5"] - k["ref"]).mean() + out["dk_off"] = (dk["q0.5"] - dk["ref"]).mean() + out["dk_rmse_centered"] = ((dk["q0.5"] - dk["ref"]) - out["dk_off"]).pow(2).mean() ** 0.5 + + th = pd.read_csv(glob.glob(f"{d}/summary/*_theta_corr_test.csv")[0]) + lib = pd.read_csv(glob.glob(f"{d}/*_sim_library.csv")[0]) + binding = set(pd.read_csv(glob.glob(f"{d}/*_sim_binding.csv")[0]).genotype.astype(str)) + spiked = set(lib.loc[lib.library_origin == "spiked", "genotype"].astype(str)) + th["genotype"] = th.genotype.astype(str) + bulk_nobind = th[~th.genotype.isin(spiked | binding)] + lo, hi = bulk_nobind["q0.025"], bulk_nobind["q0.975"] + out["theta_rmse"] = ((bulk_nobind["q0.5"] - bulk_nobind["ref"]) ** 2).mean() ** 0.5 + out["theta_cov95"] = ((lo <= bulk_nobind.ref) & (bulk_nobind.ref <= hi)).mean() + return out + + +rows = [] +for m, o in PAIRS.items(): + for tag, d in (("masked", glob.glob(f"congression_calibration_masked/run_{m}_*")[0]), + ("full", glob.glob(f"congression_calibration/run_{o}_*")[0])): + r = summarize(d) + r["data"] = tag + rows.append(r) + +df = pd.DataFrame(rows) +cols = ["lam_true", "arm", "data", "lam_q025", "lam_q50", "lam_q975", + "k_off", "dk_off", "dk_rmse_centered", "theta_rmse", "theta_cov95"] +pd.set_option("display.width", 220) +print(df[cols].sort_values(["lam_true", "arm", "data"]).round(4).to_string(index=False)) diff --git a/planning/studies/congression-calibration/diagnosis/diag_basin.py b/planning/studies/congression-calibration/diagnosis/diag_basin.py new file mode 100644 index 00000000..b4ffc70d --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_basin.py @@ -0,0 +1,57 @@ +""" +Is the mixture fit's solution better than single's solution under the +mixture model (joint log density, priors included)? And where does the +mixture's better binding fit come from? Run from this directory; GRID +selects the grid (default: the unmasked one). +""" +import sys +sys.argv = [sys.argv[0]] +from diag_lam0 import * +import pandas as pd +from numpyro.infer.util import log_density + +(d1, o1, s1, st1), (d2, o2, s2, st2) = load("run_0001"), load("run_0002") +lat1, _ = median_latents(o1, s1, st1) +lat2, _ = median_latents(o2, s2, st2) +data = full_batch(o2) + + +def joint(orch, lat): + lp, _ = log_density(seed(orch.jax_model, 0), (), dict(data=full_batch(orch), priors=orch.priors), lat) + return float(lp) + + +x = dict(lat1); x["transformation_lam"] = lat2["transformation_lam"] +print("mixture model joint log density:") +print(" at mixture fit %.1f" % joint(o2, lat2)) +print(" at single fit (same lam) %.1f" % joint(o2, x)) +y = dict(lat2); y.pop("transformation_lam") +print("single model joint log density:") +print(" at single fit %.1f" % joint(o1, lat1)) +print(" at mixture fit %.1f" % joint(o1, y)) + +# Binding log-lik per genotype at each fit +def binding_by_geno(orch, lat): + tr = trace(substitute(seed(orch.jax_model, 0), data=lat)).get_trace( + data=full_batch(orch), priors=orch.priors) + site = tr["binding_obs"] + lp = site["fn"].log_prob(site["value"]) + if site.get("mask") is not None: + lp = lp * site["mask"] + return np.asarray(lp) + +b1 = binding_by_geno(o1, lat1); b2 = binding_by_geno(o2, lat2) +bt = o2.binding_tm +names = bt.tensor_dim_names +labels = list(bt.tensor_dim_labels[names.index("genotype")]) +gain = (b2 - b1).reshape(-1, b1.shape[-1]).sum(axis=0) if b1.shape[-1] == len(labels) else None +if gain is None: + print("binding tensor layout", names, b1.shape) +else: + lib = pd.read_csv(glob.glob(d2 + "/*_sim_library.csv")[0]) + spiked = set(lib.loc[lib.library_origin == "spiked", "genotype"].astype(str)) + df = pd.DataFrame({"genotype": [str(g) for g in labels], "binding_gain": gain}) + df["spiked"] = df.genotype.isin(spiked) + print("\nbinding log-lik gain (mixture fit - single fit), by origin:") + print(df.groupby("spiked").binding_gain.agg(["count", "sum"]).round(1)) + print(df.sort_values("binding_gain", ascending=False).head(8).round(1).to_string(index=False)) diff --git a/planning/studies/congression-calibration/diagnosis/diag_lam0.py b/planning/studies/congression-calibration/diagnosis/diag_lam0.py index 6ad842a2..87d4a2ff 100644 --- a/planning/studies/congression-calibration/diagnosis/diag_lam0.py +++ b/planning/studies/congression-calibration/diagnosis/diag_lam0.py @@ -18,7 +18,7 @@ from tfscreen.tfmodel.configuration_io import read_configuration from tfscreen.tfmodel.inference.run_inference import RunInference -GRID = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "congression_calibration") +GRID = os.environ.get("GRID", os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "congression_calibration")) RUNS = sys.argv[1:] or ["run_0001", "run_0002"] diff --git a/planning/studies/congression-calibration/diagnosis/diag_sites.py b/planning/studies/congression-calibration/diagnosis/diag_sites.py new file mode 100644 index 00000000..d3bf78ad --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_sites.py @@ -0,0 +1,27 @@ +"""Per-site joint log density of the single model at the single and mixture fits.""" +import sys +sys.argv = [sys.argv[0]] +from diag_lam0 import * +import pandas as pd +from numpyro.infer.util import log_density + +(d1, o1, s1, st1), (d2, o2, s2, st2) = load("run_0001"), load("run_0002") +lat1, _ = median_latents(o1, s1, st1) +lat2, _ = median_latents(o2, s2, st2) +lat2.pop("transformation_lam") +rows = {} +for tag, lat in (("single_fit", lat1), ("mixture_fit", lat2)): + _, tr = log_density(seed(o1.jax_model, 0), (), dict(data=full_batch(o1), priors=o1.priors), lat) + for name, site in tr.items(): + if site["type"] != "sample": + continue + lp = site["fn"].log_prob(site["value"]) + if site.get("scale") is not None: + lp = lp * site["scale"] + if site.get("mask") is not None: + lp = jnp.where(site["mask"], lp, 0.0) + rows.setdefault(name, {})[tag] = float(jnp.sum(lp)) +df = pd.DataFrame(rows).T +df["diff"] = df.mixture_fit - df.single_fit +pd.set_option("display.width", 200) +print(df.reindex(df["diff"].abs().sort_values(ascending=False).index).head(12).round(1).to_string()) diff --git a/planning/studies/congression-calibration/grid_bw1.yaml b/planning/studies/congression-calibration/grid_bw1.yaml new file mode 100644 index 00000000..8f94715c --- /dev/null +++ b/planning/studies/congression-calibration/grid_bw1.yaml @@ -0,0 +1,53 @@ +# --------------------------------------------------------------------------- +# Binding-weight follow-up to grid.yaml (congression calibration, step 3.5) +# +# tfs-setup-sim-grid grid_bw1.yaml --out_prefix congression_calibration_bw1 +# for d in congression_calibration_bw1/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Tests the binding-weight diagnosis (README "Diagnosis, revised"): the +# default binding_weight (growth rows / binding rows, ~251 here) lets the +# mixture trade growth fit for binding fit through its congressed classes. +# Refit with binding_weight = 1. Same simulations as grid.yaml runs 0001-0003 +# (lambda 0) and 0037-0039 (lambda 1.0): wide dk, seed 1, all growth rows. +# 2 lambda x 3 fits = 6 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__dkloc{{ dk_geno_hyper_loc }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}__bw{{ binding_weight }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + - transformation_poisson_lambda: 1.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + + +template: + + - name: fit + variants: + - fit: single + lam_prior: "off" + - fit: mixture + lam_prior: matched + - fit: mixture + lam_prior: measured + + - name: weight + variants: + - binding_weight: 1.0 diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 69c4e364..8a8b103f 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -4,7 +4,7 @@ #SBATCH --output=run.out #SBATCH --error=run.err #SBATCH --partition=gpu -#SBATCH --time=00-12:00:00 +#SBATCH --time=00-02:00:00 #SBATCH --nodes=1 #SBATCH --cpus-per-task=8 #SBATCH --gpus=1 @@ -27,6 +27,9 @@ LAM_MEASURED=0.357 # Growth rows with fewer reads than this are dropped before configure (0 keeps # everything). grid_masked.yaml sets it; grid.yaml leaves the default. MIN_COUNTS={{ min_counts | default(0) }} +# Binding likelihood weight passed to tfs-configure-model (empty = its default, +# growth rows / binding rows). grid_bw1.yaml sets it to 1. +BINDING_WEIGHT="{{ binding_weight | default('') }}" # The simulated lambda and the seed live in tfs_sim_config.yaml. read -r SEED LAM_SIM < <(python -c " @@ -66,6 +69,11 @@ else --transformation_lambda "${LAM_MEAN}" "${LAM_PRIOR_SD}") fi +BINDING_WEIGHT_ARGS=() +if [[ -n "${BINDING_WEIGHT}" ]]; then + BINDING_WEIGHT_ARGS=(--binding_weight "${BINDING_WEIGHT}") +fi + echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR})" tfs-configure-model \ tfs_sim_binding.csv \ @@ -84,7 +92,8 @@ tfs-configure-model \ --library_config tfs_sim_config.yaml \ --growth_shares_replicates \ --epistasis \ - "${TRANSFORMATION_ARGS[@]}" + "${TRANSFORMATION_ARGS[@]}" \ + "${BINDING_WEIGHT_ARGS[@]}" # --------------------------------------------------------------------------- # 3. Pre-fit calibration, fit, posterior From 3098fa2ef6f2dde3abdfded6617e3da1414d1988 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 20:54:20 -0700 Subject: [PATCH 026/208] Make tfs-setup-sim-grid output directories movable A simulate grid gets moved as a unit -- on and off a cluster, onto a data partition -- so its runs must not depend on where the input files were. Each run's config and rendered template instead referred to inputs by a path relative to their original location, which broke as soon as the grid moved. Setup now copies every input file into /inputs/ once and each run refers to it as ../inputs/. Config file paths are the key paths in _SIM_PATH_KEYS (nested ones included; the choose_by keywords stratified/random are left alone); a template variable that names a file is copied the same way. A different file with a taken name gets a numeric suffix, and a changed input never overwrites a copy that existing runs use. Every run is validated before anything is written: setup fails on a missing input, an input that is a directory, or a config value outside _SIM_PATH_KEYS that names an existing file, rather than write a run that depends on a location outside the grid. The relativize helpers in util/grid_utils.py are no longer used here (tfs-setup-grid still uses them). Docs: CHANGELOG entry rewritten for the final behavior, CLAUDE.md grid rules, the congression-calibration README and simulate_config.yaml comments, and the example simulate grid. Verification: new tests cover moving the grid and deleting the original inputs, same-name files, re-running with a changed input, a bare phenotype_model prefix, and the missing-file, directory, unknown-path-key and template-directory errors. The simulate, util and setup_grid suites pass (906). grid_bw1.yaml set up, moved to another directory tree, and tfs-simulate run from a run directory read ../inputs/hill_params.csv (simulated parameters match the file). The study grids and examples/simulate/simulate_grid.yaml all set up. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 29 +- CLAUDE.md | 2 +- examples/simulate/simulate_grid.yaml | 5 +- .../studies/congression-calibration/README.md | 6 +- .../simulate_config.yaml | 2 +- .../simulate/scripts/setup_sim_grid_cli.py | 250 +++++++++++++++--- .../simulate/test_setup_sim_grid_cli.py | 207 +++++++++++++-- 7 files changed, 430 insertions(+), 71 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c3e2448..6bd343b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -202,18 +202,23 @@ fall into two kinds: ### Fixed -- **`tfs-setup-sim-grid` left nested file paths unresolved.** Only the - top-level `thermo_data`/`calibration_file` keys were resolved; nested ones, - notably a `binding_data.spiked_binding.choose_by` or - `binding_data.library_binding.choose_by` params file and - `empirical.phenotype_model`, were copied verbatim into each run's - `tfs_sim_config.yaml` and then resolved against the run directory, so - `tfs-simulate` could not find them unless the run template copied the file - in. `_SIM_PATH_KEYS` (`simulate/scripts/setup_sim_grid_cli.py`) is now a - list of key paths, nested ones included; they resolve against the base - config's directory (base config) or the grid YAML's (simulate overrides) and - are written relative to the run directory. The `stratified`/`random` - `choose_by` keywords are left alone. The congression-calibration study's +- **`tfs-setup-sim-grid` grids could not be moved, and nested file paths were + not resolved.** Each run's `tfs_sim_config.yaml` and rendered template + referred to input files by a path relative to their original location, so + moving the grid (on or off a cluster, to another partition) broke every run. + Nested file keys (`binding_data.*.choose_by` params files, + `empirical.phenotype_model`) were not resolved at all and so needed the run + template to copy the file in. Setup now copies every input file into + `/inputs/` once and each run refers to it as + `../inputs/`, so the grid directory is self-contained. The file-path + keys are listed in `_SIM_PATH_KEYS` + (`simulate/scripts/setup_sim_grid_cli.py`), nested ones included; the + `stratified`/`random` `choose_by` keywords are left alone, and template + variables naming a file are copied the same way. Two different files with + the same name get a numeric suffix, and a changed file never overwrites a + copy that existing runs use. Setup fails before writing anything if an input + file is missing or is a directory, or if a config value outside + `_SIM_PATH_KEYS` names an existing file. The congression-calibration study's `run.srun` no longer copies `hill_params.csv`, and its grid YAMLs drop the `hill_params_file` template block. - **Growth prediction failed on every model built from a library file.** diff --git a/CLAUDE.md b/CLAUDE.md index 0b933062..51b107ec 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -472,7 +472,7 @@ template: - Multi-key variants (multiple keys in one dict) always travel together and are never split. - `simulate` / `configure_model` variables go to the config; `template` variables go to the Jinja2 template only. To share a variable, list it in both sections. - Variable names in blocks: `snake_case`. -- File paths are the grid tool's job, never the run template's: relative paths resolve against the base config's directory (base config values) or the grid YAML's (overrides) and are written relative to each run subdir. `tfs-setup-sim-grid` resolves only the key paths listed in `_SIM_PATH_KEYS` (`setup_sim_grid_cli.py`; nested keys such as `binding_data.*.choose_by` and `empirical.phenotype_model` included, `choose_by` keywords excepted) — add any new file-valued simulate key there. +- File paths are the grid tool's job, never the run template's, and a simulate grid directory must stay movable as a unit. `tfs-setup-sim-grid` copies every input file into `/inputs/` and each run refers to it as `../inputs/`; relative paths resolve against the base config's directory (base config values) or the grid YAML's (overrides and template variables). Config file paths are the key paths in `_SIM_PATH_KEYS` (`setup_sim_grid_cli.py`; nested keys such as `binding_data.*.choose_by` and `empirical.phenotype_model` included, `choose_by` keywords excepted). Setup fails, before writing anything, on a missing or directory input or on a config value outside `_SIM_PATH_KEYS` that names an existing file, so add any new file-valued simulate key there. (`tfs-setup-grid` still writes paths relative to the original location.) ### Shared grid utilities diff --git a/examples/simulate/simulate_grid.yaml b/examples/simulate/simulate_grid.yaml index a842023b..16ced516 100644 --- a/examples/simulate/simulate_grid.yaml +++ b/examples/simulate/simulate_grid.yaml @@ -27,8 +27,9 @@ output_file: run.sh # in the same examples/simulate/ directory # simulate blocks # # Variables here override top-level keys in the base config. They are NOT -# injected into the Jinja2 template. Paths are resolved relative to this -# YAML and re-expressed relative to each subdirectory in the written config. +# injected into the Jinja2 template. Relative file paths are resolved against +# this YAML; every input file is copied into /inputs/ and each run +# refers to it as ../inputs/, so the grid directory can be moved. # # Multi-key variants always move together and are never split by the Cartesian # product — use this to keep parameters that are only meaningful in combination. diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index f568bf85..6eb95b3d 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -50,9 +50,9 @@ Each run ([`run.srun`](run.srun)): `tfs-simulate` -> `tfs-configure-model` ## How to run On the cluster, from a scratch directory, with this repository checked out. -`tfs-setup-sim-grid` writes each run's `binding_data.spiked_binding.choose_by` -as a path from the run directory to this study's `hill_params.csv`, so nothing -is copied, but keep the grid and the checkout where they are after setup: +`tfs-setup-sim-grid` copies `hill_params.csv` into the grid's `inputs/` +directory and each run refers to it as `../inputs/hill_params.csv`, so the grid +directory can be moved as a unit after setup: ```bash tfs-setup-sim-grid /path/to/tfscreen/planning/studies/congression-calibration/grid.yaml \ diff --git a/planning/studies/congression-calibration/simulate_config.yaml b/planning/studies/congression-calibration/simulate_config.yaml index b7fbd78f..105814f8 100644 --- a/planning/studies/congression-calibration/simulate_config.yaml +++ b/planning/studies/congression-calibration/simulate_config.yaml @@ -7,7 +7,7 @@ # - transformation_poisson_lambda and the dk_geno hyperparameters are set # per run by grid.yaml. # binding_data.spiked_binding.choose_by names hill_params.csv relative to this -# file; tfs-setup-sim-grid rewrites it relative to each run directory. +# file; tfs-setup-sim-grid copies it into the grid's inputs/ directory. # --------------------------------------------------------------------------- diff --git a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py index 882a1a3a..b86c4c73 100644 --- a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py +++ b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py @@ -38,21 +38,36 @@ - ``run_name`` may reference variables from either section. - Use the ``basename`` Jinja2 filter to strip path info from filenames: run_name: "{{ thermo_data | basename }}__noise{{ growth_rate_noise }}" -- Relative paths in ``simulate`` blocks (e.g. ``thermo_data``) are resolved - relative to the grid YAML's directory, then re-expressed relative to each - subdirectory in the written config. -- Relative paths already in the base config are resolved relative to the base - config's location, then re-expressed relative to each subdirectory. -- The file-path keys are listed in ``_SIM_PATH_KEYS``, nested ones included - (``empirical.phenotype_model``, ``binding_data.*.choose_by``). A - ``choose_by`` keyword (``stratified``/``random``) is not a path and is left - alone. Run templates never need to copy input files into the run directory. + +INPUT FILES +----------- +The grid directory is self-contained and can be moved as a unit (on and off a +cluster, onto another partition). Every input file a run needs is copied into +``/inputs/`` once, and each run's config and rendered template +refer to it as ``../inputs/``. Nothing in a run points outside the grid. + +- Config file paths are the keys listed in ``_SIM_PATH_KEYS``, nested ones + included (``thermo_data``, ``empirical.phenotype_model``, + ``binding_data.*.choose_by``, ...). A relative path resolves against the + base config's directory for a base-config value and against the grid YAML's + directory for a ``simulate`` override. A ``choose_by`` keyword + (``stratified``/``random``) is not a path and is left alone. +- A ``template`` variable that names an existing file (relative to the grid + YAML, or absolute) is copied the same way. +- Two different files with the same name are kept apart by a numeric suffix + (``hill_params_2.csv``); the same file used by many runs is copied once. +- Setup fails rather than write a run that depends on a location outside the + grid: a missing input file, an input that is a directory, or a config value + outside ``_SIM_PATH_KEYS`` that names an existing file (add its key to + ``_SIM_PATH_KEYS`` if the simulator reads it). """ import copy +import filecmp import itertools import json import os +import shutil import jinja2 import yaml @@ -61,13 +76,11 @@ from tfscreen.util.grid_utils import ( make_jinja_env as _make_jinja_env, make_run_name as _make_run_name, - relativize_config_paths as _relativize_config_paths, - relativize_template_vars as _relativize_template_vars, ) # Keys in the simulate config that hold file paths, as key paths into the -# (possibly nested) config dict. Add any new file-valued key here; a key missing -# from this list is copied verbatim and then resolves against the run directory. +# (possibly nested) config dict. Add any new file-valued key here; setup fails on +# a config value outside this list that names an existing file. _SIM_PATH_KEYS = ( ("thermo_data",), ("calibration_file",), @@ -83,6 +96,9 @@ # Fixed filename for the per-run config written into each subdirectory. _SIM_CONFIG_FILENAME = "tfs_sim_config.yaml" +# Directory under out_prefix holding the input files shared by all runs. +_INPUTS_DIRNAME = "inputs" + # --------------------------------------------------------------------------- # Block expansion @@ -124,6 +140,161 @@ def _resolve_paths(vars_dict, base_dir): return out +class _InputStager: + """Copy input files into ``/inputs/`` once each. + + ``stage(path)`` returns the path a run subdirectory uses to reach the copy + (``../inputs/``). The same source file always maps to the same copy. + A different file whose name is taken (by an earlier source in this setup, + or by a different file already in the directory) gets a numeric suffix, so + an existing run is never left pointing at changed contents. + + With ``dry_run=True`` it only checks that each path is an existing file and + copies nothing, so a whole grid can be validated before anything is written. + """ + + def __init__(self, out_prefix, dry_run=False): + self.inputs_dir = os.path.join(os.path.abspath(out_prefix), _INPUTS_DIRNAME) + self.dry_run = dry_run + self._by_source = {} + self._claimed = set() + + def stage(self, path, what): + if not os.path.exists(path): + raise FileNotFoundError(f"{what} names a file that does not exist: {path}") + if not os.path.isfile(path): + raise ValueError( + f"{what} names a directory ({path}). tfs-setup-sim-grid copies " + f"input files into the grid so it can be moved, and does not " + f"copy directories. Point it at a file." + ) + source = os.path.realpath(path) + if self.dry_run: + return os.path.join("..", _INPUTS_DIRNAME, os.path.basename(source)) + if source in self._by_source: + return self._by_source[source] + + os.makedirs(self.inputs_dir, exist_ok=True) + stem, ext = os.path.splitext(os.path.basename(source)) + n = 1 + while True: + name = f"{stem}{ext}" if n == 1 else f"{stem}_{n}{ext}" + dest = os.path.join(self.inputs_dir, name) + if name not in self._claimed: + if not os.path.exists(dest): + shutil.copy2(source, dest) + break + if os.path.isfile(dest) and filecmp.cmp(source, dest, shallow=False): + break + n += 1 + + self._claimed.add(name) + rel = os.path.join("..", _INPUTS_DIRNAME, name) + self._by_source[source] = rel + return rel + + +def _get_node(cfg, key_path): + """Return the dict holding ``key_path[-1]``, or None if the path is absent.""" + node = cfg + for key in key_path[:-1]: + node = node.get(key) if isinstance(node, dict) else None + return node if isinstance(node, dict) else None + + +def _phenotype_model_file(path): + """Return the file a ``phenotype_model`` value loads (mirrors the simulator).""" + for cand in (path, f"{path}.json", f"{path}_phenotype_model.json"): + if os.path.isfile(cand): + return cand + return path + + +def _stage_config_files(run_cfg, stager): + """Replace each ``_SIM_PATH_KEYS`` value in run_cfg (in place) with its copy. + + Values must already be absolute (see ``_resolve_paths``). + """ + for key_path in _SIM_PATH_KEYS: + node = _get_node(run_cfg, key_path) + if node is None: + continue + val = node.get(key_path[-1]) + if not isinstance(val, str) or not val or val in _PATH_KEYWORDS: + continue + if key_path == ("empirical", "phenotype_model"): + val = _phenotype_model_file(val) + node[key_path[-1]] = stager.stage( + val, f"Config key '{'.'.join(key_path)}'" + ) + + +def _check_no_outside_paths(run_cfg, source_dirs): + """Fail if a config value outside ``_SIM_PATH_KEYS`` names an existing file. + + Such a value would be written as-is and so depend on a location outside the + grid. ``source_dirs`` maps each top-level key to the directory its relative + values came from. + """ + known = set(_SIM_PATH_KEYS) + + def walk(node, key_path): + if isinstance(node, dict): + for k, v in node.items(): + walk(v, key_path + (k,)) + elif isinstance(node, list): + for i, v in enumerate(node): + walk(v, key_path + (i,)) + elif isinstance(node, str) and node and key_path not in known: + if os.path.isabs(node): + target = node if os.path.exists(node) else None + else: + cand = os.path.join(source_dirs[key_path[0]], node) + target = cand if os.path.isfile(cand) else None + if target is not None: + dotted = ".".join(str(k) for k in key_path) + raise ValueError( + f"Config key '{dotted}' = '{node}' names a file or " + f"directory ({os.path.normpath(target)}), but '{dotted}' is " + f"not one of the file-path keys tfs-setup-sim-grid copies " + f"into the grid. The grid must be movable, so a run cannot " + f"refer to a location outside it. If the simulator reads " + f"this file, add the key to _SIM_PATH_KEYS in " + f"{__name__}; otherwise change the value." + ) + + walk(run_cfg, ()) + + +def _stage_template_vars(tmpl_vars, grid_yaml_dir, stager): + """Return tmpl_vars with each value naming an existing file replaced by its copy. + + A value is a file when it resolves (relative to grid_yaml_dir, or as-is if + absolute) to an existing file. A value naming an existing directory is an + error (``.`` excepted: it means the run directory). + """ + out = {} + for key, val in tmpl_vars.items(): + if isinstance(val, str) and val and val != ".": + path = val if os.path.isabs(val) else os.path.join(grid_yaml_dir, val) + if os.path.isfile(path): + val = stager.stage(path, f"Template variable '{key}'") + elif os.path.isdir(path): + stager.stage(path, f"Template variable '{key}'") # raises + out[key] = val + return out + + +def _render(jinja_template, tmpl_vars, run_name): + """Render the run template, naming the run on an undefined variable.""" + try: + return jinja_template.render(**tmpl_vars) + except jinja2.UndefinedError as exc: + raise ValueError( + f"Undefined template variable for run '{run_name}': {exc}" + ) from exc + + # --------------------------------------------------------------------------- # Public entry point # --------------------------------------------------------------------------- @@ -143,6 +314,10 @@ def setup_sim_grid(grid_yaml, out_prefix="sim_grid"): 4. Writes ``combo.json`` recording the variable assignments for that run. A ``grid_summary.json`` is written to *out_prefix* listing all created runs. + Input files named by the configs or template variables are copied into + ``/inputs/`` and referenced as ``../inputs/``, so the + *out_prefix* directory can be moved as a unit. Every run is validated + before anything is written. Parameters ---------- @@ -221,38 +396,49 @@ def setup_sim_grid(grid_yaml, out_prefix="sim_grid"): except jinja2.TemplateSyntaxError as e: raise ValueError(f"Template syntax error in {output_file}: {e}") from e - os.makedirs(out_prefix, exist_ok=True) - - all_runs = [] - + # Build every run's config and template variables, and validate them + # (including rendering the template) before writing anything, so a bad input + # cannot leave a half-built grid. + runs_to_write = [] + checker = _InputStager(out_prefix, dry_run=True) for i, (sim_vars, tmpl_vars) in enumerate(all_combos, start=1): all_vars = {**sim_vars, **tmpl_vars} run_name = _make_run_name(run_name_template, all_vars, i) - subdir = os.path.abspath(os.path.join(out_prefix, run_name)) - os.makedirs(subdir, exist_ok=True) - # Build per-run config: base config with known path keys resolved to - # absolute (relative to base_cfg_dir), then apply simulate overrides - # (path keys resolved relative to grid_yaml_dir). + # Base config with known path keys resolved to absolute (relative to + # base_cfg_dir), then simulate overrides (relative to grid_yaml_dir). run_cfg = _resolve_paths(base_cfg, base_cfg_dir) run_cfg.update(_resolve_paths(sim_vars, grid_yaml_dir)) + source_dirs = {k: grid_yaml_dir if k in sim_vars else base_cfg_dir + for k in run_cfg} + _check_no_outside_paths(run_cfg, source_dirs) + _stage_config_files(copy.deepcopy(run_cfg), checker) + if jinja_template is not None: + _render(jinja_template, _stage_template_vars( + tmpl_vars, grid_yaml_dir, checker), run_name) + + runs_to_write.append((run_name, run_cfg, sim_vars, tmpl_vars)) - # Write config; _relativize_config_paths then rewrites any absolute - # paths that exist on disk to be relative to subdir. + os.makedirs(out_prefix, exist_ok=True) + stager = _InputStager(out_prefix) + + all_runs = [] + + for run_name, run_cfg, sim_vars, tmpl_vars in runs_to_write: + subdir = os.path.abspath(os.path.join(out_prefix, run_name)) + os.makedirs(subdir, exist_ok=True) + + # Copy input files into /inputs/; the config refers to them + # as ../inputs/. + _stage_config_files(run_cfg, stager) cfg_path = os.path.join(subdir, _SIM_CONFIG_FILENAME) with open(cfg_path, "w") as fh: yaml.dump(run_cfg, fh, default_flow_style=False, sort_keys=False) - _relativize_config_paths(cfg_path, subdir) # Render Jinja2 template with template-section variables only. if jinja_template is not None: - rendered_tmpl_vars = _relativize_template_vars(tmpl_vars, grid_yaml_dir, subdir) - try: - rendered = jinja_template.render(**rendered_tmpl_vars) - except jinja2.UndefinedError as exc: - raise ValueError( - f"Undefined template variable for run '{run_name}': {exc}" - ) from exc + rendered = _render(jinja_template, _stage_template_vars( + tmpl_vars, grid_yaml_dir, stager), run_name) out_filename = os.path.basename(output_file) with open(os.path.join(subdir, out_filename), "w") as fh: fh.write(rendered) diff --git a/tests/tfscreen/simulate/test_setup_sim_grid_cli.py b/tests/tfscreen/simulate/test_setup_sim_grid_cli.py index 3f584ff7..b33beedf 100644 --- a/tests/tfscreen/simulate/test_setup_sim_grid_cli.py +++ b/tests/tfscreen/simulate/test_setup_sim_grid_cli.py @@ -2,6 +2,7 @@ import json import os +import shutil import pytest import yaml @@ -286,8 +287,29 @@ def test_resolve_paths_missing_nested_parent(tmp_path): assert _resolve_paths(cfg, str(tmp_path)) == cfg +def _write_study(tmp_path, base, grid_body, grid_dir=None): + """Write simulate_config.yaml (base) and grid.yaml; return the grid path.""" + study = tmp_path / "study" + study.mkdir(exist_ok=True) + (study / "simulate_config.yaml").write_text(yaml.dump(base)) + grid_dir = grid_dir or study + base_ref = os.path.relpath(study / "simulate_config.yaml", grid_dir) + grid_path = grid_dir / "grid.yaml" + grid_path.write_text(f"base_config: {base_ref}\n" + grid_body) + return str(grid_path) + + +_SEED_BLOCK = """\ +simulate: + - name: seed + variants: + - seed: 1 + - seed: 2 +""" + + def test_setup_sim_grid_base_config_choose_by_file(tmp_path): - """A choose_by params file in the base config resolves from the run dir.""" + """A choose_by params file is copied into inputs/ and referenced from there.""" study = tmp_path / "study" study.mkdir() (study / "hill_params.csv").write_text("genotype\nwt\n") @@ -295,30 +317,175 @@ def test_setup_sim_grid_base_config_choose_by_file(tmp_path): "binding_data": {"spiked_binding": {"choose_by": "hill_params.csv"}, "library_binding": {"choose_by": "random", "num": 3}}} - (study / "simulate_config.yaml").write_text(yaml.dump(base)) - (study / "grid.yaml").write_text("""\ -base_config: simulate_config.yaml -simulate: - - name: seed - variants: - - seed: 1 - - seed: 2 -""") + grid_path = _write_study(tmp_path, base, _SEED_BLOCK) out = str(tmp_path / "elsewhere" / "grid_out") - runs = setup_sim_grid(str(study / "grid.yaml"), out_prefix=out) + runs = setup_sim_grid(grid_path, out_prefix=out) assert len(runs) == 2 + assert os.listdir(os.path.join(out, "inputs")) == ["hill_params.csv"] for run in runs: cfg = _read_run_config(out, run) - choose_by = cfg["binding_data"]["spiked_binding"]["choose_by"] - # Written relative to the run directory, and it resolves from there - assert not os.path.isabs(choose_by) - run_dir = os.path.join(out, run["run"]) - assert (os.path.realpath(os.path.join(run_dir, choose_by)) - == os.path.realpath(study / "hill_params.csv")) + assert (cfg["binding_data"]["spiked_binding"]["choose_by"] + == os.path.join("..", "inputs", "hill_params.csv")) # Keyword left alone assert cfg["binding_data"]["library_binding"]["choose_by"] == "random" +def test_setup_sim_grid_is_movable(tmp_path): + """The grid works after it is moved and the original inputs are deleted.""" + study = tmp_path / "study" + study.mkdir() + (study / "hill_params.csv").write_text("genotype\nwt\n") + (study / "struct.h5").write_text("h5") + (study / "run.sh").write_text("cat {{ extra }}\n") + (study / "extra.txt").write_text("extra") + base = {"thermo_data": "struct.h5", + "binding_data": {"spiked_binding": {"choose_by": "hill_params.csv"}}} + grid_path = _write_study(tmp_path, base, """\ +output_file: run.sh +simulate: + - name: seed + variants: + - seed: 1 +template: + - name: extra + variants: + - extra: extra.txt +""") + out = tmp_path / "grid_out" + runs = setup_sim_grid(grid_path, out_prefix=str(out)) + + moved = tmp_path / "far" / "away" / "grid_out" + moved.parent.mkdir(parents=True) + shutil.move(str(out), str(moved)) + shutil.rmtree(study) + + run_dir = moved / runs[0]["run"] + cfg = _read_run_config(str(moved), runs[0]) + assert (run_dir / cfg["thermo_data"]).read_text() == "h5" + assert ((run_dir / cfg["binding_data"]["spiked_binding"]["choose_by"]) + .read_text() == "genotype\nwt\n") + rendered = (run_dir / "run.sh").read_text() + assert rendered == f"cat {os.path.join('..', 'inputs', 'extra.txt')}" + assert (run_dir / ".." / "inputs" / "extra.txt").read_text() == "extra" + + +def test_setup_sim_grid_same_name_different_files(tmp_path): + """Two different files with one name get distinct copies.""" + study = tmp_path / "study" + for sub in ("a", "b"): + (study / sub).mkdir(parents=True) + (study / sub / "params.csv").write_text(f"genotype\n{sub}\n") + grid_path = _write_study(tmp_path, {"seed": 1}, """\ +simulate: + - name: binding + variants: + - binding_data: + spiked_binding: + choose_by: a/params.csv + - binding_data: + spiked_binding: + choose_by: b/params.csv + - binding_data: + spiked_binding: + choose_by: a/params.csv +""") + out = str(tmp_path / "grid_out") + runs = setup_sim_grid(grid_path, out_prefix=out) + got = [_read_run_config(out, r)["binding_data"]["spiked_binding"]["choose_by"] + for r in runs] + assert got == [os.path.join("..", "inputs", "params.csv"), + os.path.join("..", "inputs", "params_2.csv"), + os.path.join("..", "inputs", "params.csv")] + assert sorted(os.listdir(os.path.join(out, "inputs"))) == [ + "params.csv", "params_2.csv"] + assert open(os.path.join(out, "inputs", "params_2.csv")).read() == "genotype\nb\n" + + +def test_setup_sim_grid_rerun_changed_input_not_overwritten(tmp_path): + """Re-running into the same grid never changes a file older runs use.""" + study = tmp_path / "study" + study.mkdir() + (study / "hill_params.csv").write_text("v1") + base = {"binding_data": {"spiked_binding": {"choose_by": "hill_params.csv"}}} + grid_path = _write_study(tmp_path, base, _SEED_BLOCK) + out = str(tmp_path / "grid_out") + setup_sim_grid(grid_path, out_prefix=out) + runs = setup_sim_grid(grid_path, out_prefix=out) # unchanged: reused + assert os.listdir(os.path.join(out, "inputs")) == ["hill_params.csv"] + + (study / "hill_params.csv").write_text("v2") + runs = setup_sim_grid(grid_path, out_prefix=out) + cfg = _read_run_config(out, runs[0]) + assert (cfg["binding_data"]["spiked_binding"]["choose_by"] + == os.path.join("..", "inputs", "hill_params_2.csv")) + assert open(os.path.join(out, "inputs", "hill_params.csv")).read() == "v1" + + +def test_setup_sim_grid_phenotype_model_prefix(tmp_path): + """A bare phenotype_model prefix copies the JSON the simulator would load.""" + study = tmp_path / "study" + study.mkdir() + (study / "emp_phenotype_model.json").write_text("{}") + base = {"empirical": {"phenotype_model": "emp"}} + grid_path = _write_study(tmp_path, base, _SEED_BLOCK) + out = str(tmp_path / "grid_out") + runs = setup_sim_grid(grid_path, out_prefix=out) + cfg = _read_run_config(out, runs[0]) + assert (cfg["empirical"]["phenotype_model"] + == os.path.join("..", "inputs", "emp_phenotype_model.json")) + + +def test_setup_sim_grid_missing_input_file_raises(tmp_path): + base = {"binding_data": {"spiked_binding": {"choose_by": "nope.csv"}}} + grid_path = _write_study(tmp_path, base, _SEED_BLOCK) + out = tmp_path / "grid_out" + with pytest.raises(FileNotFoundError, match="binding_data.spiked_binding.choose_by"): + setup_sim_grid(grid_path, out_prefix=str(out)) + assert not out.exists() + + +def test_setup_sim_grid_directory_input_raises(tmp_path): + study = tmp_path / "study" + (study / "structs").mkdir(parents=True) + grid_path = _write_study(tmp_path, {"thermo_data": "structs"}, _SEED_BLOCK) + with pytest.raises(ValueError, match="directory"): + setup_sim_grid(grid_path, out_prefix=str(tmp_path / "grid_out")) + + +def test_setup_sim_grid_unknown_path_key_raises(tmp_path): + """A file named by a key setup does not know about is a hard error.""" + study = tmp_path / "study" + study.mkdir() + (study / "mystery.csv").write_text("x") + base = {"presplit_data": {"source": "mystery.csv"}} + grid_path = _write_study(tmp_path, base, _SEED_BLOCK) + out = tmp_path / "grid_out" + with pytest.raises(ValueError, match="presplit_data.source.*_SIM_PATH_KEYS"): + setup_sim_grid(grid_path, out_prefix=str(out)) + assert not out.exists() + + +def test_setup_sim_grid_unknown_absolute_path_raises(tmp_path): + grid_path = _write_study(tmp_path, {"some_dir": str(tmp_path)}, _SEED_BLOCK) + with pytest.raises(ValueError, match="some_dir"): + setup_sim_grid(grid_path, out_prefix=str(tmp_path / "grid_out")) + + +def test_setup_sim_grid_template_directory_raises(tmp_path): + study = tmp_path / "study" + (study / "data").mkdir(parents=True) + (study / "run.sh").write_text("{{ d }}") + grid_path = _write_study(tmp_path, {"seed": 1}, """\ +output_file: run.sh +template: + - name: d + variants: + - d: data +""") + with pytest.raises(ValueError, match="Template variable 'd'.*directory"): + setup_sim_grid(grid_path, out_prefix=str(tmp_path / "grid_out")) + + def test_setup_sim_grid_keyword_choose_by_unchanged(tmp_path): """A choose_by keyword is kept even when a file of that name exists.""" (tmp_path / "stratified").write_text("x") @@ -358,10 +525,10 @@ def test_setup_sim_grid_override_choose_by_from_grid_dir(tmp_path): out = str(tmp_path / "grid_out") runs = setup_sim_grid(str(grid_dir / "grid.yaml"), out_prefix=out) cfg = _read_run_config(out, runs[0]) - choose_by = cfg["binding_data"]["spiked_binding"]["choose_by"] + assert (cfg["binding_data"]["spiked_binding"]["choose_by"] + == os.path.join("..", "inputs", "measured.csv")) + assert open(os.path.join(out, "inputs", "measured.csv")).read() == "genotype\nwt\n" run_dir = os.path.join(out, runs[0]["run"]) - assert (os.path.realpath(os.path.join(run_dir, choose_by)) - == os.path.realpath(grid_dir / "measured.csv")) # combo.json keeps the override as written with open(os.path.join(run_dir, "combo.json")) as fh: combo = json.load(fh) From 5b7789dad18ac5fba634ecca1a9fd7006461bdbb Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 21:42:32 -0700 Subject: [PATCH 027/208] Make tfs-setup-grid output directories movable Each run's tfs_configure_config.yaml and rendered template referred to input files by a path relative to their original location, so moving a grid (on/off a cluster, onto a data partition) broke every run. Setup now copies each input file (the configure_model file arguments in _PATH_KEYS, plus template variables naming a file) once into /inputs/ and points each run at ../inputs/. The written config is rewritten wherever tfs-configure-model recorded an input (data.*, components.thermo_data/presplit_df/base_growth_df, library.source); the priors/guesses/library CSVs are per-run outputs and stay as they are. Same-name different files get a numeric suffix and a changed file never overwrites an existing copy. Every combination is validated before anything is written: a missing or directory input, a configure_model value outside _PATH_KEYS that names a file, or a template that does not render is a hard error (a missing data file used to skip the combination silently). After configure_model, any other path to a file outside the grid in the written config is refused. The staging helpers (InputStager, check_no_outside_paths, stage_template_vars, render_run_template) move from setup_sim_grid_cli.py into util/grid_utils.py and both grid CLIs use them. The relativize_* path helpers, now unused, are removed with their tests. CLAUDE.md states the movable-grid rule once for both tools. Tests: end-to-end grid built with the real configure_model, moved, original inputs deleted, every reference resolves and the config loads from the run dir; plus dedup, suffix, no-overwrite, fail-before-write and skip cases, and unit tests for the grid_utils helpers. Full tests/tfscreen suite passes. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 21 + CLAUDE.md | 6 +- docs/source/grid.rst | 8 +- examples/tfmodel/grid.yaml | 7 +- .../simulate/scripts/setup_sim_grid_cli.py | 139 +---- .../tfmodel/scripts/setup_grid_cli.py | 157 +++++- src/tfscreen/util/grid_utils.py | 187 +++++-- .../tfmodel/scripts/test_setup_grid_cli.py | 493 +++++++++++------- tests/tfscreen/util/test_grid_utils.py | 138 ++++- 9 files changed, 768 insertions(+), 388 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bd343b5..2f4ad06d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -221,6 +221,27 @@ fall into two kinds: `_SIM_PATH_KEYS` names an existing file. The congression-calibration study's `run.srun` no longer copies `hill_params.csv`, and its grid YAMLs drop the `hill_params_file` template block. +- **`tfs-setup-grid` grids could not be moved.** Each run's + `tfs_configure_config.yaml` and rendered template referred to the input + files (`growth_df`, `binding_df`, `library_config`, ...) by a path relative + to their original location, so moving the grid directory (on or off a + cluster, to another partition) broke every run. Setup now copies every input + file into `/inputs/` once and each run refers to it as + `../inputs/`, so the grid directory is self-contained. The inputs are + the `configure_model` file arguments in `_PATH_KEYS` + (`tfmodel/scripts/setup_grid_cli.py`) and template variables naming a file; + the written config names the copy everywhere it recorded the file, + `library.source` included. The priors/guesses/library CSVs are per-run + outputs and are unchanged. Two different files with the same name get a + numeric suffix, and a changed file never overwrites a copy that existing + runs use. Setup now fails before writing anything if an input file is + missing or is a directory (previously a missing data file quietly skipped + the combination), if a `configure_model` value outside `_PATH_KEYS` names a + file, or if the template does not render. The staging helpers moved from + `setup_sim_grid_cli.py` into `util/grid_utils.py` (`InputStager`, + `check_no_outside_paths`, `stage_template_vars`, `render_run_template`), + and both grid CLIs use them; the unused `relativize_*` path helpers were + removed. - **Growth prediction failed on every model built from a library file.** `tfs-predict-growth`, and everything else that goes through `prediction.predict` (prior-predictive growth, the genotype trajectory diff --git a/CLAUDE.md b/CLAUDE.md index 51b107ec..8dc5ad5c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -472,11 +472,13 @@ template: - Multi-key variants (multiple keys in one dict) always travel together and are never split. - `simulate` / `configure_model` variables go to the config; `template` variables go to the Jinja2 template only. To share a variable, list it in both sections. - Variable names in blocks: `snake_case`. -- File paths are the grid tool's job, never the run template's, and a simulate grid directory must stay movable as a unit. `tfs-setup-sim-grid` copies every input file into `/inputs/` and each run refers to it as `../inputs/`; relative paths resolve against the base config's directory (base config values) or the grid YAML's (overrides and template variables). Config file paths are the key paths in `_SIM_PATH_KEYS` (`setup_sim_grid_cli.py`; nested keys such as `binding_data.*.choose_by` and `empirical.phenotype_model` included, `choose_by` keywords excepted). Setup fails, before writing anything, on a missing or directory input or on a config value outside `_SIM_PATH_KEYS` that names an existing file, so add any new file-valued simulate key there. (`tfs-setup-grid` still writes paths relative to the original location.) +- File paths are the grid tool's job, never the run template's, and a grid output directory must stay movable as a unit (on/off a cluster, onto a data partition). Both grid CLIs copy every input file into `/inputs/` once (`grid_utils.InputStager`; a numeric suffix keeps two different files with the same name apart, and a changed file never overwrites an existing copy) and each run refers to it as `../inputs/`. Relative paths resolve against the grid YAML's directory (overrides, `configure_model` variables and template variables) or, for `tfs-setup-sim-grid`, the base config's directory (base config values). A template variable naming an existing file is copied the same way. Setup fails, before writing anything, on a missing or directory input, on a config value outside the known path keys that names an existing file (`grid_utils.check_no_outside_paths`), or on a template that does not render. +- `tfs-setup-sim-grid`: the config file paths are the key paths in `_SIM_PATH_KEYS` (`setup_sim_grid_cli.py`; nested keys such as `binding_data.*.choose_by` and `empirical.phenotype_model` included, `choose_by` keywords excepted). Add any new file-valued simulate key there. +- `tfs-setup-grid`: the inputs are the `configure_model` file arguments in `_PATH_KEYS` (`setup_grid_cli.py`: `binding_df`, `growth_df`, `presplit_df`, `base_growth_df`, `thermo_data`, `library_config`). `tfs-configure-model` reads the originals; the written config is then pointed at the copies wherever it recorded them (`data.*`, `components.thermo_data`/`presplit_df`/`base_growth_df`, `library.source`), and setup fails on any other path in it that names a file outside the grid. The priors/guesses/library CSVs are per-run outputs next to the config and stay as they are. Data paths are read relative to the working directory, so a run is launched from its own directory. Add any new file-valued `configure_model` argument to `_PATH_KEYS`. ### Shared grid utilities -Both grid CLIs import from `tfscreen.util.grid_utils` for run-name generation, Jinja2 environment setup, and config-path rewriting. Add new reusable grid helpers there rather than duplicating them. +Both grid CLIs import from `tfscreen.util.grid_utils` for run-name generation, Jinja2 environment setup and input staging (`InputStager`, `check_no_outside_paths`, `stage_template_vars`, `render_run_template`). Add new reusable grid helpers there rather than duplicating them. ### `examples/` directory diff --git a/docs/source/grid.rst b/docs/source/grid.rst index 1c7e8f23..b91f77b5 100644 --- a/docs/source/grid.rst +++ b/docs/source/grid.rst @@ -121,8 +121,12 @@ Key rules: component axes; e.g. ``condition_growth`` rather than ``--condition_growth_model``). * Relative paths in ``configure_model`` blocks (``binding_df``, ``growth_df``, - ``library_config``, ``thermo_data``) are resolved relative to the grid YAML - and re-expressed relative to each subdirectory in the written config. + ``presplit_df``, ``base_growth_df``, ``library_config``, ``thermo_data``) and + template variables that name a file are resolved relative to the grid YAML. + Each input file is copied once into ``/inputs/`` and every run + refers to it as ``../inputs/``, so the grid directory is + self-contained and can be moved as a unit. Launch each run from its own + directory. Setup fails, before writing anything, on a missing input file. * The ``auto`` form enumerates every registered component for the given axis. Incompatible combinations (e.g. ``power`` growth + ``logit`` theta_rescale) are caught by ``tfs-configure-model``, skipped, and logged in diff --git a/examples/tfmodel/grid.yaml b/examples/tfmodel/grid.yaml index 4d56fcc6..25a581ad 100644 --- a/examples/tfmodel/grid.yaml +++ b/examples/tfmodel/grid.yaml @@ -24,7 +24,8 @@ output_file: run.srun # # Variables here are forwarded to tfs-configure-model. They are NOT # injected into the Jinja2 template. Paths are resolved relative to this -# YAML and re-expressed relative to each subdirectory in the written config. +# YAML; each input file is copied into /inputs/ and the written +# config refers to the copy, so the grid directory can be moved as a unit. # --------------------------------------------------------------------------- configure_model: @@ -104,8 +105,8 @@ template: - seed: 0 - seed: 1 - # Path to the genotypes file for tfs-predict-theta. - # Use an absolute path, or a path relative to each run subdirectory. + # Path to the genotypes file for tfs-predict-theta (absolute, or relative + # to this YAML). It is copied into /inputs/ like any input. - name: predict_genotypes variants: - predict_genotypes_file: /path/to/predict_genotypes.txt diff --git a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py index b86c4c73..b9123525 100644 --- a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py +++ b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py @@ -63,19 +63,21 @@ """ import copy -import filecmp import itertools import json import os -import shutil import jinja2 import yaml from tfscreen.util.cli import generalized_main from tfscreen.util.grid_utils import ( + InputStager as _InputStager, + check_no_outside_paths as _check_no_outside_paths, make_jinja_env as _make_jinja_env, make_run_name as _make_run_name, + render_run_template as _render, + stage_template_vars as _stage_template_vars, ) # Keys in the simulate config that hold file paths, as key paths into the @@ -96,8 +98,7 @@ # Fixed filename for the per-run config written into each subdirectory. _SIM_CONFIG_FILENAME = "tfs_sim_config.yaml" -# Directory under out_prefix holding the input files shared by all runs. -_INPUTS_DIRNAME = "inputs" +_TOOL = "tfs-setup-sim-grid" # --------------------------------------------------------------------------- @@ -140,60 +141,6 @@ def _resolve_paths(vars_dict, base_dir): return out -class _InputStager: - """Copy input files into ``/inputs/`` once each. - - ``stage(path)`` returns the path a run subdirectory uses to reach the copy - (``../inputs/``). The same source file always maps to the same copy. - A different file whose name is taken (by an earlier source in this setup, - or by a different file already in the directory) gets a numeric suffix, so - an existing run is never left pointing at changed contents. - - With ``dry_run=True`` it only checks that each path is an existing file and - copies nothing, so a whole grid can be validated before anything is written. - """ - - def __init__(self, out_prefix, dry_run=False): - self.inputs_dir = os.path.join(os.path.abspath(out_prefix), _INPUTS_DIRNAME) - self.dry_run = dry_run - self._by_source = {} - self._claimed = set() - - def stage(self, path, what): - if not os.path.exists(path): - raise FileNotFoundError(f"{what} names a file that does not exist: {path}") - if not os.path.isfile(path): - raise ValueError( - f"{what} names a directory ({path}). tfs-setup-sim-grid copies " - f"input files into the grid so it can be moved, and does not " - f"copy directories. Point it at a file." - ) - source = os.path.realpath(path) - if self.dry_run: - return os.path.join("..", _INPUTS_DIRNAME, os.path.basename(source)) - if source in self._by_source: - return self._by_source[source] - - os.makedirs(self.inputs_dir, exist_ok=True) - stem, ext = os.path.splitext(os.path.basename(source)) - n = 1 - while True: - name = f"{stem}{ext}" if n == 1 else f"{stem}_{n}{ext}" - dest = os.path.join(self.inputs_dir, name) - if name not in self._claimed: - if not os.path.exists(dest): - shutil.copy2(source, dest) - break - if os.path.isfile(dest) and filecmp.cmp(source, dest, shallow=False): - break - n += 1 - - self._claimed.add(name) - rel = os.path.join("..", _INPUTS_DIRNAME, name) - self._by_source[source] = rel - return rel - - def _get_node(cfg, key_path): """Return the dict holding ``key_path[-1]``, or None if the path is absent.""" node = cfg @@ -229,72 +176,6 @@ def _stage_config_files(run_cfg, stager): ) -def _check_no_outside_paths(run_cfg, source_dirs): - """Fail if a config value outside ``_SIM_PATH_KEYS`` names an existing file. - - Such a value would be written as-is and so depend on a location outside the - grid. ``source_dirs`` maps each top-level key to the directory its relative - values came from. - """ - known = set(_SIM_PATH_KEYS) - - def walk(node, key_path): - if isinstance(node, dict): - for k, v in node.items(): - walk(v, key_path + (k,)) - elif isinstance(node, list): - for i, v in enumerate(node): - walk(v, key_path + (i,)) - elif isinstance(node, str) and node and key_path not in known: - if os.path.isabs(node): - target = node if os.path.exists(node) else None - else: - cand = os.path.join(source_dirs[key_path[0]], node) - target = cand if os.path.isfile(cand) else None - if target is not None: - dotted = ".".join(str(k) for k in key_path) - raise ValueError( - f"Config key '{dotted}' = '{node}' names a file or " - f"directory ({os.path.normpath(target)}), but '{dotted}' is " - f"not one of the file-path keys tfs-setup-sim-grid copies " - f"into the grid. The grid must be movable, so a run cannot " - f"refer to a location outside it. If the simulator reads " - f"this file, add the key to _SIM_PATH_KEYS in " - f"{__name__}; otherwise change the value." - ) - - walk(run_cfg, ()) - - -def _stage_template_vars(tmpl_vars, grid_yaml_dir, stager): - """Return tmpl_vars with each value naming an existing file replaced by its copy. - - A value is a file when it resolves (relative to grid_yaml_dir, or as-is if - absolute) to an existing file. A value naming an existing directory is an - error (``.`` excepted: it means the run directory). - """ - out = {} - for key, val in tmpl_vars.items(): - if isinstance(val, str) and val and val != ".": - path = val if os.path.isabs(val) else os.path.join(grid_yaml_dir, val) - if os.path.isfile(path): - val = stager.stage(path, f"Template variable '{key}'") - elif os.path.isdir(path): - stager.stage(path, f"Template variable '{key}'") # raises - out[key] = val - return out - - -def _render(jinja_template, tmpl_vars, run_name): - """Render the run template, naming the run on an undefined variable.""" - try: - return jinja_template.render(**tmpl_vars) - except jinja2.UndefinedError as exc: - raise ValueError( - f"Undefined template variable for run '{run_name}': {exc}" - ) from exc - - # --------------------------------------------------------------------------- # Public entry point # --------------------------------------------------------------------------- @@ -400,7 +281,7 @@ def setup_sim_grid(grid_yaml, out_prefix="sim_grid"): # (including rendering the template) before writing anything, so a bad input # cannot leave a half-built grid. runs_to_write = [] - checker = _InputStager(out_prefix, dry_run=True) + checker = _InputStager(out_prefix, _TOOL, dry_run=True) for i, (sim_vars, tmpl_vars) in enumerate(all_combos, start=1): all_vars = {**sim_vars, **tmpl_vars} run_name = _make_run_name(run_name_template, all_vars, i) @@ -411,7 +292,11 @@ def setup_sim_grid(grid_yaml, out_prefix="sim_grid"): run_cfg.update(_resolve_paths(sim_vars, grid_yaml_dir)) source_dirs = {k: grid_yaml_dir if k in sim_vars else base_cfg_dir for k in run_cfg} - _check_no_outside_paths(run_cfg, source_dirs) + _check_no_outside_paths( + run_cfg, _SIM_PATH_KEYS, source_dirs, + hint=(f"If the simulator reads this file, add the key to " + f"_SIM_PATH_KEYS in {__name__}; otherwise change the value."), + ) _stage_config_files(copy.deepcopy(run_cfg), checker) if jinja_template is not None: _render(jinja_template, _stage_template_vars( @@ -420,7 +305,7 @@ def setup_sim_grid(grid_yaml, out_prefix="sim_grid"): runs_to_write.append((run_name, run_cfg, sim_vars, tmpl_vars)) os.makedirs(out_prefix, exist_ok=True) - stager = _InputStager(out_prefix) + stager = _InputStager(out_prefix, _TOOL) all_runs = [] diff --git a/src/tfscreen/tfmodel/scripts/setup_grid_cli.py b/src/tfscreen/tfmodel/scripts/setup_grid_cli.py index 5778de61..ade0081b 100644 --- a/src/tfscreen/tfmodel/scripts/setup_grid_cli.py +++ b/src/tfscreen/tfmodel/scripts/setup_grid_cli.py @@ -43,9 +43,36 @@ run_name: "{{ binding_df | basename }}__{{ condition_growth }}" - Incompatible component combinations are skipped automatically and logged in ``grid_summary.json``. -- Relative paths in configure_model blocks (binding_df, growth_df, - thermo_data) are resolved relative to the grid YAML's directory, then - re-expressed relative to each subdirectory in the written config file. + +INPUT FILES +----------- +The grid directory is self-contained and can be moved as a unit (on and off a +cluster, onto another partition). Every input file a run needs is copied into +``/inputs/`` once, and each run's config and rendered template +refer to it as ``../inputs/``. Nothing in a run points outside the grid. + +- The configure_model file arguments are the keys in ``_PATH_KEYS`` + (``binding_df``, ``growth_df``, ``presplit_df``, ``base_growth_df``, + ``thermo_data``, ``library_config``). A relative value resolves against the + grid YAML's directory. tfs-configure-model reads the original file; the + written ``tfs_configure_config.yaml`` then names the copy wherever it + recorded that file (``data.*``, ``components.thermo_data``, + ``components.presplit_df``/``base_growth_df``, ``library.source``). +- The priors, guesses and library-composition CSVs are per-run outputs written + next to the config (``priors_file``/``guesses_file``/``library_file``, read + relative to the config) and are left alone. +- Data paths in the config are read relative to the working directory, so + each run is launched from its own directory (as the templates do). +- A ``template`` variable that names an existing file (relative to the grid + YAML, or absolute) is copied the same way. +- Two different files with the same name are kept apart by a numeric suffix + (``growth_2.csv``); the same file used by many runs is copied once. +- Setup fails rather than write a run that depends on a location outside the + grid. Before anything is written: a missing input file, an input that is a + directory, a configure_model value outside ``_PATH_KEYS`` that names an + existing file, or a template that does not render. After tfs-configure-model + runs: any other path in the written config that names an existing file + outside the grid (add its argument to ``_PATH_KEYS``). """ import itertools @@ -58,10 +85,12 @@ from tfscreen.util.cli import generalized_main from tfscreen.util.grid_utils import ( + InputStager as _InputStager, + check_no_outside_paths as _check_no_outside_paths, make_jinja_env as _make_jinja_env, make_run_name as _make_run_name, - relativize_config_paths as _relativize_config_paths, - relativize_template_vars as _relativize_template_vars, + render_run_template as _render_run_template, + stage_template_vars as _stage_template_vars, ) from tfscreen.tfmodel.generative.registry import model_registry from tfscreen.tfmodel.scripts.configure_model_cli import ( @@ -84,15 +113,25 @@ "growth_noise", }) -# configure_model arguments that are file paths and need abs→rel rewriting. +# configure_model arguments that are input file paths. Each is copied into +# /inputs/ and the written config names the copy. Add any new +# file-valued configure_model argument here; setup fails on a configure_model +# value outside this set that names an existing file. _PATH_KEYS = frozenset({ "binding_df", "growth_df", "presplit_df", "base_growth_df", "thermo_data", "library_config", }) +# Top-level keys of the written config naming files configure_model writes +# into the run directory (read relative to the config): per-run outputs, not +# inputs to copy. +_RUN_OUTPUT_KEYS = (("priors_file",), ("guesses_file",), ("library_file",)) + # Fixed output prefix used inside every per-combination run. _CONFIGURE_OUT_PREFIX = "tfs_configure" +_TOOL = "tfs-setup-grid" + # --------------------------------------------------------------------------- # Block expansion @@ -137,6 +176,57 @@ def _resolve_cm_paths(cm_vars, base_dir): return out +def _input_paths(resolved_cm): + """Return ``{key: path}`` for the file arguments present in resolved_cm.""" + return {k: resolved_cm[k] for k in sorted(_PATH_KEYS) + if isinstance(resolved_cm.get(k), str) and resolved_cm[k]} + + +def _check_cm_vars(cm_vars, grid_yaml_dir, stager): + """Validate one combination's configure_model variables (writes nothing). + + Fails if a value outside ``_PATH_KEYS`` names an existing file, or if a + ``_PATH_KEYS`` value is missing or a directory. + """ + _check_no_outside_paths( + cm_vars, [(k,) for k in _PATH_KEYS], grid_yaml_dir, + hint=(f"If tfs-configure-model reads this file, add the argument to " + f"_PATH_KEYS in {__name__}; otherwise change the value."), + ) + for key, path in _input_paths(_resolve_cm_paths(cm_vars, grid_yaml_dir)).items(): + stager.stage(path, f"configure_model variable '{key}'") + + +def _stage_written_config(cfg, path_map, subdir): + """Point a written config at the staged input copies (returns a new dict). + + Every string value equal to an input path in ``path_map`` (original + absolute path → ``../inputs/``) is replaced by its copy, wherever + tfs-configure-model recorded it. Any other value that names an existing + file outside the run directory is an error: the run would not be movable. + """ + staged_keys = [] + + def rewrite(node, key_path): + if isinstance(node, dict): + return {k: rewrite(v, key_path + (k,)) for k, v in node.items()} + if isinstance(node, list): + return [rewrite(v, key_path + (i,)) for i, v in enumerate(node)] + if isinstance(node, str) and node in path_map: + staged_keys.append(key_path) + return path_map[node] + return node + + out = rewrite(cfg, ()) + _check_no_outside_paths( + out, staged_keys + list(_RUN_OUTPUT_KEYS), subdir, + hint=(f"tfs-configure-model recorded a path {_TOOL} does not know how " + f"to copy. If it is an input file, add the configure_model " + f"argument that supplies it to _PATH_KEYS in {__name__}."), + ) + return out + + # --------------------------------------------------------------------------- # configure_model kwargs preparation # --------------------------------------------------------------------------- @@ -178,7 +268,11 @@ def setup_grid(grid_yaml, out_prefix="grid"): 4. Writes ``combo.json`` recording the variable assignments for that run. A ``grid_summary.json`` is written to *out_prefix* listing all created - runs and any skipped combinations. + runs and any skipped combinations. Input files named by the + configure_model or template variables are copied into + ``/inputs/`` and referenced as ``../inputs/``, so the + *out_prefix* directory can be moved as a unit. Every combination's inputs + and template are validated before anything is written. Parameters ---------- @@ -243,17 +337,33 @@ def setup_grid(grid_yaml, out_prefix="grid"): except jinja2.TemplateSyntaxError as e: raise ValueError(f"Template syntax error in {output_file}: {e}") from e + # Validate every combination's input files and render its template before + # writing anything, so a bad input cannot leave a half-built grid. + # (Component incompatibilities only surface when configure_model runs; those + # combinations are skipped below, as before.) + runs_to_write = [] + checker = _InputStager(out_prefix, _TOOL, dry_run=True) + for i, (cm_vars, tmpl_vars) in enumerate(all_combos, start=1): + all_vars = {**cm_vars, **tmpl_vars} + run_name = _make_run_name(run_name_template, all_vars, i) + _check_cm_vars(cm_vars, grid_yaml_dir, checker) + if jinja_template is not None: + _render_run_template(jinja_template, _stage_template_vars( + tmpl_vars, grid_yaml_dir, checker), run_name) + runs_to_write.append((run_name, cm_vars, tmpl_vars)) + os.makedirs(out_prefix, exist_ok=True) + stager = _InputStager(out_prefix, _TOOL) all_runs = [] skipped = [] - for i, (cm_vars, tmpl_vars) in enumerate(all_combos, start=1): + for run_name, cm_vars, tmpl_vars in runs_to_write: all_vars = {**cm_vars, **tmpl_vars} - run_name = _make_run_name(run_name_template, all_vars, i) subdir = os.path.abspath(os.path.join(out_prefix, run_name)) - # Resolve relative paths in cm_vars to absolute before calling configure_model. + # configure_model reads the original input files (relative paths + # resolved against the grid YAML's directory). resolved_cm = _resolve_cm_paths(cm_vars, grid_yaml_dir) cm_kw = _cm_kwargs(resolved_cm) cm_out_prefix = os.path.join(subdir, _CONFIGURE_OUT_PREFIX) @@ -262,7 +372,6 @@ def setup_grid(grid_yaml, out_prefix="grid"): try: configure_model(out_prefix=cm_out_prefix, **cm_kw) - _relativize_config_paths(f"{cm_out_prefix}_config.yaml", subdir) except Exception as exc: reason = str(exc) skipped.append({"run": run_name, "reason": reason, "combo": all_vars}) @@ -270,15 +379,27 @@ def setup_grid(grid_yaml, out_prefix="grid"): print(f" SKIP {run_name}: {reason}", flush=True) continue + # Copy the inputs into /inputs/ and point the written + # config at the copies (../inputs/). + path_map = { + path: stager.stage(path, f"configure_model variable '{key}'") + for key, path in _input_paths(resolved_cm).items() + } + cfg_path = f"{cm_out_prefix}_config.yaml" + with open(cfg_path) as fh: + cfg = yaml.safe_load(fh) + try: + cfg = _stage_written_config(cfg, path_map, subdir) + except ValueError: + shutil.rmtree(subdir, ignore_errors=True) + raise + with open(cfg_path, "w") as fh: + yaml.dump(cfg, fh, default_flow_style=False, sort_keys=False) + # Render Jinja2 template with template-section variables only. if jinja_template is not None: - rendered_tmpl_vars = _relativize_template_vars(tmpl_vars, grid_yaml_dir, subdir) - try: - rendered = jinja_template.render(**rendered_tmpl_vars) - except jinja2.UndefinedError as exc: - raise ValueError( - f"Undefined template variable for run '{run_name}': {exc}" - ) from exc + rendered = _render_run_template(jinja_template, _stage_template_vars( + tmpl_vars, grid_yaml_dir, stager), run_name) out_filename = os.path.basename(output_file) with open(os.path.join(subdir, out_filename), "w") as fh: fh.write(rendered) diff --git a/src/tfscreen/util/grid_utils.py b/src/tfscreen/util/grid_utils.py index 9ccc21c8..276a1723 100644 --- a/src/tfscreen/util/grid_utils.py +++ b/src/tfscreen/util/grid_utils.py @@ -1,16 +1,29 @@ """ Shared utilities for tfs-setup-grid and tfs-setup-sim-grid. -Provides run-name generation, Jinja2 environment construction, and config-file -path rewriting. Both grid CLIs import from here; keep this module free of any -growth-model- or simulate-specific logic. +Provides run-name generation, Jinja2 environment construction and input-file +staging. Both grid CLIs import from here; keep +this module free of any growth-model- or simulate-specific logic. + +Input staging +------------- +A grid output directory must be movable as a unit (on and off a cluster, onto +another partition), so a run may not refer to anything outside it. +``InputStager`` copies each input file into ``/inputs/`` once and +returns the path a run subdirectory uses to reach it (``../inputs/``); +``check_no_outside_paths`` fails on a config value that names a file but is not +one of the keys the caller stages. """ +import filecmp import os import re +import shutil import jinja2 -import yaml + +# Directory under out_prefix holding the input files shared by all runs. +INPUTS_DIRNAME = "inputs" def sanitize(s): @@ -43,41 +56,151 @@ def make_run_name(name_template, all_vars, index): return f"{prefix}_{suffix}" if suffix else prefix -def relativize_node(node, subdir): - """Recursively rewrite absolute path strings in a config node to be relative to subdir.""" - if isinstance(node, dict): - return {k: relativize_node(v, subdir) for k, v in node.items()} - if isinstance(node, list): - return [relativize_node(v, subdir) for v in node] - if isinstance(node, str) and node and os.path.isabs(node) and os.path.exists(node): - return os.path.relpath(node, subdir) - return node +# --------------------------------------------------------------------------- +# Input staging (self-contained, movable grid directories) +# --------------------------------------------------------------------------- +class InputStager: + """Copy input files into ``/inputs/`` once each. -def relativize_config_paths(yaml_path, subdir): - """Rewrite absolute paths anywhere in a written config YAML to be relative to subdir.""" - with open(yaml_path) as fh: - cfg = yaml.safe_load(fh) - updated = relativize_node(cfg, subdir) - if updated != cfg: - with open(yaml_path, "w") as fh: - yaml.dump(updated, fh, default_flow_style=False, sort_keys=False) + ``stage(path, what)`` returns the path a run subdirectory uses to reach the + copy (``../inputs/``). The same source file always maps to the same + copy. A different file whose name is taken (by an earlier source in this + setup, or by a different file already in the directory) gets a numeric + suffix, so an existing run is never left pointing at changed contents. + With ``dry_run=True`` it only checks that each path is an existing file and + copies nothing, so a whole grid can be validated before anything is written. -def relativize_template_vars(tmpl_vars, grid_yaml_dir, subdir): - """Return tmpl_vars with any path-like string values rewritten relative to subdir. + Parameters + ---------- + out_prefix : str + Root directory of the grid. + tool : str + Name of the calling CLI, used in error messages. + dry_run : bool, optional + Validate only; copy nothing. Default False. + """ - A value is treated as a path when it resolves (relative to grid_yaml_dir, or - as-is if absolute) to a file or directory that exists on disk. + def __init__(self, out_prefix, tool, dry_run=False): + self.inputs_dir = os.path.join(os.path.abspath(out_prefix), INPUTS_DIRNAME) + self.tool = tool + self.dry_run = dry_run + self._by_source = {} + self._claimed = set() + + def stage(self, path, what): + if not os.path.exists(path): + raise FileNotFoundError(f"{what} names a file that does not exist: {path}") + if not os.path.isfile(path): + raise ValueError( + f"{what} names a directory ({path}). {self.tool} copies input " + f"files into the grid so it can be moved, and does not copy " + f"directories. Point it at a file." + ) + source = os.path.realpath(path) + if self.dry_run: + return os.path.join("..", INPUTS_DIRNAME, os.path.basename(source)) + if source in self._by_source: + return self._by_source[source] + + os.makedirs(self.inputs_dir, exist_ok=True) + stem, ext = os.path.splitext(os.path.basename(source)) + n = 1 + while True: + name = f"{stem}{ext}" if n == 1 else f"{stem}_{n}{ext}" + dest = os.path.join(self.inputs_dir, name) + if name not in self._claimed: + if not os.path.exists(dest): + shutil.copy2(source, dest) + break + if os.path.isfile(dest) and filecmp.cmp(source, dest, shallow=False): + break + n += 1 + + self._claimed.add(name) + rel = os.path.join("..", INPUTS_DIRNAME, name) + self._by_source[source] = rel + return rel + + +def check_no_outside_paths(cfg, known_key_paths, source_dirs, hint): + """Fail if a config value outside ``known_key_paths`` names an existing file. + + Such a value would be written as-is and so depend on a location outside the + grid. An absolute value is checked as-is (file or directory); a relative + value is checked as a file against the directory it came from. + + Parameters + ---------- + cfg : dict + Config (possibly nested) to walk. + known_key_paths : iterable of tuple + Key paths (tuples of keys into ``cfg``) the caller stages itself. + source_dirs : str or dict + Directory relative values resolve against: one directory for the whole + config, or a dict mapping each top-level key to its directory. + hint : str + Appended to the error message: what to do if the value really is a + file the run reads. + """ + known = {tuple(k) for k in known_key_paths} + + def base_dir(key_path): + if isinstance(source_dirs, dict): + return source_dirs[key_path[0]] + return source_dirs + + def walk(node, key_path): + if isinstance(node, dict): + for k, v in node.items(): + walk(v, key_path + (k,)) + elif isinstance(node, list): + for i, v in enumerate(node): + walk(v, key_path + (i,)) + elif isinstance(node, str) and node and key_path not in known: + if os.path.isabs(node): + target = node if os.path.exists(node) else None + else: + cand = os.path.join(base_dir(key_path), node) + target = cand if os.path.isfile(cand) else None + if target is not None: + dotted = ".".join(str(k) for k in key_path) + raise ValueError( + f"Config key '{dotted}' = '{node}' names a file or " + f"directory ({os.path.normpath(target)}), but '{dotted}' is " + f"not one of the file-path keys copied into the grid. The " + f"grid must be movable, so a run cannot refer to a location " + f"outside it. {hint}" + ) + + walk(cfg, ()) + + +def stage_template_vars(tmpl_vars, grid_yaml_dir, stager): + """Return tmpl_vars with each value naming an existing file replaced by its copy. + + A value is a file when it resolves (relative to grid_yaml_dir, or as-is if + absolute) to an existing file. A value naming an existing directory is an + error (``.`` excepted: it means the run directory). """ out = {} for key, val in tmpl_vars.items(): - if isinstance(val, str) and val: - abs_path = val if os.path.isabs(val) else os.path.normpath( - os.path.join(grid_yaml_dir, val) - ) - if os.path.exists(abs_path): - out[key] = os.path.relpath(abs_path, subdir) - continue + if isinstance(val, str) and val and val != ".": + path = val if os.path.isabs(val) else os.path.join(grid_yaml_dir, val) + if os.path.isfile(path): + val = stager.stage(path, f"Template variable '{key}'") + elif os.path.isdir(path): + stager.stage(path, f"Template variable '{key}'") # raises out[key] = val return out + + +def render_run_template(jinja_template, tmpl_vars, run_name): + """Render the run template, naming the run on an undefined variable.""" + try: + return jinja_template.render(**tmpl_vars) + except jinja2.UndefinedError as exc: + raise ValueError( + f"Undefined template variable for run '{run_name}': {exc}" + ) from exc diff --git a/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py b/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py index cd37358f..80723984 100644 --- a/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py @@ -1,214 +1,26 @@ -"""Tests for path-rewriting helpers (now in grid_utils, re-exported from setup_grid_cli).""" +"""Tests for tfs-setup-grid: path helpers and self-contained, movable grids.""" +import inspect import os +import shutil +import pandas as pd +import pytest import yaml -import inspect - -from tfscreen.util.grid_utils import ( - relativize_config_paths as _relativize_config_paths, - relativize_node as _relativize_node, - relativize_template_vars as _relativize_template_vars, -) +from tfscreen.util.grid_utils import INPUTS_DIRNAME +from tfscreen.tfmodel.configuration_io import read_configuration from tfscreen.tfmodel.scripts.setup_grid_cli import ( + setup_grid, _cm_kwargs, _resolve_cm_paths, + _stage_written_config, _COMPONENT_AXES, _PATH_KEYS, ) from tfscreen.tfmodel.scripts.configure_model_cli import configure_model -# --------------------------------------------------------------------------- -# _relativize_node -# --------------------------------------------------------------------------- - -def test_relativize_node_absolute_existing(tmp_path): - """Absolute path to an existing file is rewritten relative to subdir.""" - f = tmp_path / "data.csv" - f.write_text("x") - subdir = tmp_path / "run_0001" - subdir.mkdir() - result = _relativize_node(str(f), str(subdir)) - assert result == os.path.relpath(str(f), str(subdir)) - - -def test_relativize_node_absolute_missing(tmp_path): - """Absolute path to a non-existent file is left unchanged.""" - subdir = tmp_path / "run_0001" - subdir.mkdir() - missing = str(tmp_path / "ghost.csv") - assert _relativize_node(missing, str(subdir)) == missing - - -def test_relativize_node_relative_string(tmp_path): - """Relative (non-absolute) strings are never touched.""" - subdir = tmp_path / "run_0001" - subdir.mkdir() - assert _relativize_node("data/foo.csv", str(subdir)) == "data/foo.csv" - - -def test_relativize_node_non_string(tmp_path): - """Non-string values are returned unchanged.""" - subdir = str(tmp_path / "run_0001") - os.makedirs(subdir) - assert _relativize_node(42, subdir) == 42 - assert _relativize_node(None, subdir) is None - assert _relativize_node(True, subdir) is True - - -def test_relativize_node_dict(tmp_path): - """Dict values with absolute paths are recursively rewritten.""" - f = tmp_path / "binding.csv" - f.write_text("x") - subdir = tmp_path / "run_0001" - subdir.mkdir() - node = {"binding_df": str(f), "n_samples": 100} - result = _relativize_node(node, str(subdir)) - assert result["binding_df"] == os.path.relpath(str(f), str(subdir)) - assert result["n_samples"] == 100 - - -def test_relativize_node_list(tmp_path): - """List values with absolute paths are recursively rewritten.""" - f = tmp_path / "file.csv" - f.write_text("x") - subdir = tmp_path / "run_0001" - subdir.mkdir() - result = _relativize_node([str(f), "unchanged"], str(subdir)) - assert result[0] == os.path.relpath(str(f), str(subdir)) - assert result[1] == "unchanged" - - -def test_relativize_node_nested(tmp_path): - """Nested dicts/lists are handled recursively.""" - f = tmp_path / "deep.csv" - f.write_text("x") - subdir = tmp_path / "run_0001" - subdir.mkdir() - node = {"outer": {"inner": str(f)}} - result = _relativize_node(node, str(subdir)) - assert result["outer"]["inner"] == os.path.relpath(str(f), str(subdir)) - - -# --------------------------------------------------------------------------- -# _relativize_config_paths -# --------------------------------------------------------------------------- - -def test_relativize_config_paths_data_section(tmp_path): - """Absolute paths in the data section are rewritten to relative.""" - f = tmp_path / "binding.csv" - f.write_text("x") - subdir = tmp_path / "run_0001" - subdir.mkdir() - cfg = {"data": {"binding_df": str(f), "n_samples": 100}} - yaml_path = subdir / "config.yaml" - yaml_path.write_text(yaml.dump(cfg)) - - _relativize_config_paths(str(yaml_path), str(subdir)) - - with open(yaml_path) as fh: - result = yaml.safe_load(fh) - assert not os.path.isabs(result["data"]["binding_df"]) - assert result["data"]["n_samples"] == 100 - - -def test_relativize_config_paths_top_level(tmp_path): - """Absolute paths outside the data section are also rewritten.""" - cal = tmp_path / "calibration.json" - cal.write_text("{}") - subdir = tmp_path / "run_0001" - subdir.mkdir() - cfg = {"calibration_file": str(cal), "n_samples": 200} - yaml_path = subdir / "config.yaml" - yaml_path.write_text(yaml.dump(cfg)) - - _relativize_config_paths(str(yaml_path), str(subdir)) - - with open(yaml_path) as fh: - result = yaml.safe_load(fh) - assert not os.path.isabs(result["calibration_file"]) - assert result["n_samples"] == 200 - - -def test_relativize_config_paths_no_change(tmp_path): - """Config with no absolute paths is not rewritten.""" - subdir = tmp_path / "run_0001" - subdir.mkdir() - cfg = {"data": {"binding_df": "../../data/binding.csv"}} - yaml_path = subdir / "config.yaml" - original = yaml.dump(cfg) - yaml_path.write_text(original) - mtime_before = yaml_path.stat().st_mtime - - _relativize_config_paths(str(yaml_path), str(subdir)) - - assert yaml_path.stat().st_mtime == mtime_before - - -# --------------------------------------------------------------------------- -# _relativize_template_vars -# --------------------------------------------------------------------------- - -def test_relativize_template_vars_existing_file(tmp_path): - """A relative path in a template var that resolves to an existing file is rewritten.""" - data_dir = tmp_path / "data" - data_dir.mkdir() - geno = data_dir / "genotypes.csv" - geno.write_text("x") - - grid_yaml_dir = str(tmp_path) - subdir = str(tmp_path / "grid" / "run_0001") - os.makedirs(subdir) - - tmpl_vars = {"genotypes_file": "data/genotypes.csv", "seed": 42} - result = _relativize_template_vars(tmpl_vars, grid_yaml_dir, subdir) - - assert not os.path.isabs(result["genotypes_file"]) - # Path from run subdir should navigate up to tmp_path/data/genotypes.csv - resolved = os.path.normpath(os.path.join(subdir, result["genotypes_file"])) - assert resolved == str(geno) - assert result["seed"] == 42 - - -def test_relativize_template_vars_nonexistent(tmp_path): - """A string that doesn't point to an existing path is left unchanged.""" - grid_yaml_dir = str(tmp_path) - subdir = str(tmp_path / "run_0001") - os.makedirs(subdir) - - tmpl_vars = {"genotypes_file": "data/missing.csv", "label": "control"} - result = _relativize_template_vars(tmpl_vars, grid_yaml_dir, subdir) - assert result == tmpl_vars - - -def test_relativize_template_vars_absolute_path(tmp_path): - """An absolute path in a template var is also rewritten if the file exists.""" - f = tmp_path / "abs.csv" - f.write_text("x") - grid_yaml_dir = str(tmp_path) - subdir = str(tmp_path / "run_0001") - os.makedirs(subdir) - - tmpl_vars = {"genotypes_file": str(f)} - result = _relativize_template_vars(tmpl_vars, grid_yaml_dir, subdir) - assert not os.path.isabs(result["genotypes_file"]) - resolved = os.path.normpath(os.path.join(subdir, result["genotypes_file"])) - assert resolved == str(f) - - -def test_relativize_template_vars_non_string_passthrough(tmp_path): - """Non-string template variable values are returned unchanged.""" - grid_yaml_dir = str(tmp_path) - subdir = str(tmp_path / "run_0001") - os.makedirs(subdir) - - tmpl_vars = {"seed": 0, "flag": True, "ratio": 1.5, "none_val": None} - result = _relativize_template_vars(tmpl_vars, grid_yaml_dir, subdir) - assert result == tmpl_vars - - # --------------------------------------------------------------------------- # _cm_kwargs — component-axis → configure_model parameter translation # --------------------------------------------------------------------------- @@ -285,3 +97,290 @@ def test_path_keys_cover_all_df_params(): df_params = {p for p in params if p.endswith("_df")} missing = df_params - _PATH_KEYS assert not missing, f"_PATH_KEYS missing configure_model df args: {sorted(missing)}" + + +# --------------------------------------------------------------------------- +# End to end: self-contained, movable grid directories +# --------------------------------------------------------------------------- + +_GENOTYPES = ["wt", "A2L", "A2C"] + +_LIBRARY = { + "reading_frame": 0, + "first_amplicon_residue": 1, + "wt_seq": "atggcaaaaccggaatgc", + "degen_sites": "...nnt......nnt...", + "tiles": "...111......222...", + "tile_combos": ["single-1", "single-2", "double-1-2"], + "spiked_seqs": ["..................", + "...ctt............"], + "library_mixture": {"single-1": 10, "single-2": 10, + "double-1-2": 100, "spiked": 1}, +} + +_TEMPLATE = ( + "SEED={{ seed }}\n" + "GENOTYPES={{ predict_genotypes_file }}\n" +) + + +def _write_growth(path, ln_cfu=1.0): + rows = [] + for g in _GENOTYPES: + for t in (0.0, 10.0): + rows.append({"library": "lib", "replicate": 1, "time": t, + "genotype": g, "ln_cfu": ln_cfu, "ln_cfu_std": 0.1, + "condition_pre": "pre-cond", + "condition_sel": "sel+cond", + "t_pre": 1.0, "t_sel": 10.0, + "titrant_name": "iptg", "titrant_conc": 0.0}) + pd.DataFrame(rows).to_csv(path, index=False) + + +def _write_binding(path): + pd.DataFrame([{"genotype": g, "titrant_name": "iptg", "titrant_conc": 0.0, + "theta_obs": 0.5, "theta_std": 0.05} + for g in _GENOTYPES]).to_csv(path, index=False) + + +@pytest.fixture +def project(tmp_path): + """Inputs in /data, grid YAML + template in /grids.""" + data = tmp_path / "data" + data.mkdir() + _write_growth(data / "growth.csv") + _write_binding(data / "binding.csv") + (data / "library.yaml").write_text(yaml.dump(_LIBRARY)) + (data / "genotypes.txt").write_text("wt\nA2L\n") + grids = tmp_path / "grids" + grids.mkdir() + (grids / "run.sh").write_text(_TEMPLATE) + return tmp_path + + +def _data_block(**extra): + variant = {"binding_df": "../data/binding.csv", + "growth_df": "../data/growth.csv", + "library_config": "../data/library.yaml", + "skip_model_stats": True} + variant.update(extra) + return {"name": "data", "variants": [variant]} + + +def _write_grid(project, cm_blocks, tmpl_blocks=None): + grid = {"run_name": "{{ condition_growth }}__seed{{ seed }}", + "output_file": "run.sh", + "configure_model": cm_blocks, + "template": tmpl_blocks if tmpl_blocks is not None else [ + {"name": "seed", "variants": [{"seed": 0}, {"seed": 1}]}, + {"name": "predict", "variants": [ + {"predict_genotypes_file": "../data/genotypes.txt"}]}, + ]} + path = project / "grids" / "grid.yaml" + path.write_text(yaml.dump(grid, sort_keys=False)) + return str(path) + + +def _default_cm_blocks(): + return [_data_block(), + {"name": "condition_growth", + "variants": [{"condition_growth": "linear"}]}] + + +def _config_file_refs(cfg): + """Every (key, path) in a written config that names a file, relative to cwd.""" + refs = [("data." + k, v) for k, v in cfg["data"].items()] + for k in ("thermo_data", "presplit_df", "base_growth_df", "dk_geno_pins_file"): + if cfg["components"].get(k): + refs.append(("components." + k, cfg["components"][k])) + if isinstance(cfg.get("library", {}).get("source"), str): + refs.append(("library.source", cfg["library"]["source"])) + return refs + + +def test_grid_survives_move_and_deleting_inputs(project, monkeypatch): + """Move the grid, delete the original inputs: every run still resolves.""" + grid_yaml = _write_grid(project, _default_cm_blocks()) + out = project / "grid_out" + runs = setup_grid(grid_yaml, out_prefix=str(out)) + assert len(runs) == 2 + + moved = project / "elsewhere" / "deeper" / "grid_moved" + moved.parent.mkdir(parents=True) + shutil.move(str(out), str(moved)) + shutil.rmtree(project / "data") + shutil.rmtree(project / "grids") + + for run in runs: + run_dir = moved / run["run"] + cfg_path = run_dir / "tfs_configure_config.yaml" + cfg = yaml.safe_load(cfg_path.read_text()) + + # Data/library paths are read relative to the run directory. + refs = _config_file_refs(cfg) + assert {k for k, _ in refs} >= {"data.growth", "data.binding", + "library.source"} + for key, path in refs: + assert not os.path.isabs(path), key + assert path.startswith(os.path.join("..", INPUTS_DIRNAME)), key + assert os.path.isfile(run_dir / path), key + + # Per-run outputs sit next to the config. + for key in ("priors_file", "guesses_file", "library_file"): + assert os.path.isfile(run_dir / cfg[key]), key + + # Rendered template paths resolve too. + rendered = (run_dir / "run.sh").read_text() + geno_path = rendered.split("GENOTYPES=")[1].strip() + assert geno_path == os.path.join("..", INPUTS_DIRNAME, "genotypes.txt") + assert (run_dir / geno_path).read_text() == "wt\nA2L\n" + + # No string in the config points outside the grid. + assert str(project) not in cfg_path.read_text() + + # And the run actually loads from its own directory. + monkeypatch.chdir(run_dir) + orchestrator, _ = read_configuration("tfs_configure_config.yaml") + assert orchestrator.growth_tm is not None + + +def test_inputs_copied_once(project): + """Runs sharing an input share one copy under inputs/.""" + grid_yaml = _write_grid(project, _default_cm_blocks()) + out = project / "grid_out" + setup_grid(grid_yaml, out_prefix=str(out)) + assert sorted(os.listdir(out / INPUTS_DIRNAME)) == [ + "binding.csv", "genotypes.txt", "growth.csv", "library.yaml"] + + +def test_same_name_different_files_kept_apart(project): + """Two different growth.csv files get distinct copies, each run its own.""" + other = project / "data" / "other" + other.mkdir() + _write_growth(other / "growth.csv", ln_cfu=2.0) + blocks = [ + {"name": "data", "variants": [ + _data_block()["variants"][0], + _data_block(growth_df="../data/other/growth.csv")["variants"][0], + ]}, + {"name": "condition_growth", "variants": [{"condition_growth": "linear"}]}, + ] + grid_yaml = _write_grid(project, blocks, tmpl_blocks=[ + {"name": "seed", "variants": [{"seed": 0}]}, + {"name": "predict", "variants": [ + {"predict_genotypes_file": "../data/genotypes.txt"}]}]) + out = project / "grid_out" + runs = setup_grid(grid_yaml, out_prefix=str(out)) + assert len(runs) == 2 + + growth_refs = [] + for run in runs: + cfg = yaml.safe_load( + (out / run["run"] / "tfs_configure_config.yaml").read_text()) + growth_refs.append(cfg["data"]["growth"]) + src = os.path.normpath(os.path.join( + project / "grids", run["configure_model"]["growth_df"])) + copy = out / run["run"] / cfg["data"]["growth"] + assert copy.read_text() == open(src).read() + assert sorted(os.path.basename(p) for p in growth_refs) == [ + "growth.csv", "growth_2.csv"] + + +def test_changed_input_never_overwrites_existing_copy(project): + """Re-running setup with a changed input leaves earlier runs' copy intact.""" + grid_yaml = _write_grid(project, _default_cm_blocks()) + out = project / "grid_out" + setup_grid(grid_yaml, out_prefix=str(out)) + before = (out / INPUTS_DIRNAME / "growth.csv").read_text() + + _write_growth(project / "data" / "growth.csv", ln_cfu=3.0) + runs = setup_grid(grid_yaml, out_prefix=str(out)) + + assert (out / INPUTS_DIRNAME / "growth.csv").read_text() == before + cfg = yaml.safe_load( + (out / runs[0]["run"] / "tfs_configure_config.yaml").read_text()) + assert cfg["data"]["growth"] == os.path.join("..", INPUTS_DIRNAME, + "growth_2.csv") + + +def test_missing_input_fails_before_writing(project): + blocks = [_data_block(presplit_df="../data/missing.csv"), + {"name": "condition_growth", + "variants": [{"condition_growth": "linear"}]}] + out = project / "grid_out" + with pytest.raises(FileNotFoundError, match="presplit_df"): + setup_grid(_write_grid(project, blocks), out_prefix=str(out)) + assert not out.exists() + + +def test_directory_input_fails_before_writing(project): + (project / "data" / "thermo").mkdir() + blocks = [_data_block(thermo_data="../data/thermo"), + {"name": "condition_growth", + "variants": [{"condition_growth": "linear"}]}] + out = project / "grid_out" + with pytest.raises(ValueError, match="directory"): + setup_grid(_write_grid(project, blocks), out_prefix=str(out)) + assert not out.exists() + + +def test_unknown_file_argument_fails_before_writing(project): + """A configure_model value outside _PATH_KEYS naming a file is refused.""" + blocks = [_data_block(), + {"name": "extra", + "variants": [{"mystery_file": "../data/genotypes.txt"}]}] + out = project / "grid_out" + with pytest.raises(ValueError, match="mystery_file.*_PATH_KEYS"): + setup_grid(_write_grid(project, blocks), out_prefix=str(out)) + assert not out.exists() + + +def test_template_errors_fail_before_writing(project): + out = project / "grid_out" + grid_yaml = _write_grid(project, _default_cm_blocks(), tmpl_blocks=[ + {"name": "seed", "variants": [{"seed": 0}]}]) # predict_genotypes_file undefined + with pytest.raises(ValueError, match="Undefined template variable"): + setup_grid(grid_yaml, out_prefix=str(out)) + assert not out.exists() + + grid_yaml = _write_grid(project, _default_cm_blocks(), tmpl_blocks=[ + {"name": "seed", "variants": [{"seed": 0}]}, + {"name": "predict", "variants": [{"predict_genotypes_file": "../data"}]}]) + with pytest.raises(ValueError, match="directory"): + setup_grid(grid_yaml, out_prefix=str(out)) + assert not out.exists() + + +def test_skipped_combination_copies_nothing(project): + """An incompatible combination is skipped and leaves no orphan copies.""" + blocks = [_data_block(), + {"name": "combo", "variants": [ + {"condition_growth": "power", "theta_rescale": "logit"}]}] + out = project / "grid_out" + runs = setup_grid(_write_grid(project, blocks), out_prefix=str(out)) + assert runs == [] + assert not (out / INPUTS_DIRNAME).exists() + + +# --------------------------------------------------------------------------- +# _stage_written_config +# --------------------------------------------------------------------------- + +def test_stage_written_config_rewrites_every_occurrence(tmp_path): + src = str(tmp_path / "lib.yaml") + open(src, "w").write("x") + cfg = {"data": {"growth": "/g.csv"}, + "components": {"theta": "hill_geno"}, + "library": {"source": src}, + "priors_file": "tfs_configure_priors.csv"} + out = _stage_written_config(cfg, {src: "../inputs/lib.yaml"}, str(tmp_path)) + assert out["library"]["source"] == "../inputs/lib.yaml" + assert cfg["library"]["source"] == src # input not modified + + +def test_stage_written_config_refuses_unknown_outside_path(tmp_path): + stray = str(tmp_path / "pins.csv") + open(stray, "w").write("x") + cfg = {"components": {"dk_geno_pins_file": stray}} + with pytest.raises(ValueError, match="dk_geno_pins_file"): + _stage_written_config(cfg, {}, str(tmp_path / "run")) diff --git a/tests/tfscreen/util/test_grid_utils.py b/tests/tfscreen/util/test_grid_utils.py index 356220ad..db20db86 100644 --- a/tests/tfscreen/util/test_grid_utils.py +++ b/tests/tfscreen/util/test_grid_utils.py @@ -1,15 +1,23 @@ """ -Unit tests for tfscreen.util.grid_utils. - -The relativize_node / relativize_config_paths / relativize_template_vars -functions are already covered in -tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py, so this file focuses -on the remaining helpers: sanitize, make_jinja_env, and make_run_name. +Unit tests for tfscreen.util.grid_utils: sanitize, make_jinja_env, +make_run_name and the input-staging helpers (InputStager, +check_no_outside_paths, stage_template_vars, render_run_template). """ +import os + import pytest -from tfscreen.util.grid_utils import sanitize, make_jinja_env, make_run_name +from tfscreen.util.grid_utils import ( + INPUTS_DIRNAME, + InputStager, + check_no_outside_paths, + make_jinja_env, + make_run_name, + render_run_template, + sanitize, + stage_template_vars, +) # --------------------------------------------------------------------------- @@ -133,3 +141,119 @@ def test_empty_suffix_returns_prefix_only(self): def test_bad_template_raises_value_error(self): with pytest.raises(ValueError, match="run_name template error"): make_run_name("{% for %}", {}, 0) + + +# --------------------------------------------------------------------------- +# InputStager +# --------------------------------------------------------------------------- + +def _write(path, text): + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w") as fh: + fh.write(text) + return str(path) + + +class TestInputStager: + def test_copies_once_and_returns_run_relative_path(self, tmp_path): + src = _write(tmp_path / "data" / "growth.csv", "g") + stager = InputStager(tmp_path / "grid", "tfs-test") + rel = stager.stage(src, "x") + assert rel == os.path.join("..", INPUTS_DIRNAME, "growth.csv") + assert stager.stage(src, "x") == rel + assert os.listdir(tmp_path / "grid" / INPUTS_DIRNAME) == ["growth.csv"] + run_dir = tmp_path / "grid" / "run_0001" + run_dir.mkdir() + assert open(os.path.join(run_dir, rel)).read() == "g" + + def test_same_name_different_file_gets_suffix(self, tmp_path): + a = _write(tmp_path / "a" / "growth.csv", "a") + b = _write(tmp_path / "b" / "growth.csv", "b") + stager = InputStager(tmp_path / "grid", "tfs-test") + assert stager.stage(a, "x").endswith("growth.csv") + rel_b = stager.stage(b, "x") + assert rel_b.endswith("growth_2.csv") + assert open(tmp_path / "grid" / INPUTS_DIRNAME / "growth_2.csv").read() == "b" + + def test_never_overwrites_changed_existing_copy(self, tmp_path): + old = _write(tmp_path / "grid" / INPUTS_DIRNAME / "growth.csv", "old") + src = _write(tmp_path / "data" / "growth.csv", "new") + rel = InputStager(tmp_path / "grid", "tfs-test").stage(src, "x") + assert rel.endswith("growth_2.csv") + assert open(old).read() == "old" + + def test_reuses_identical_existing_copy(self, tmp_path): + _write(tmp_path / "grid" / INPUTS_DIRNAME / "growth.csv", "same") + src = _write(tmp_path / "data" / "growth.csv", "same") + rel = InputStager(tmp_path / "grid", "tfs-test").stage(src, "x") + assert rel.endswith(os.sep + "growth.csv") + + def test_missing_file_raises(self, tmp_path): + with pytest.raises(FileNotFoundError, match="my key"): + InputStager(tmp_path, "tfs-test").stage(str(tmp_path / "no.csv"), "my key") + + def test_directory_raises(self, tmp_path): + with pytest.raises(ValueError, match="directory"): + InputStager(tmp_path, "tfs-test").stage(str(tmp_path), "my key") + + def test_dry_run_copies_nothing(self, tmp_path): + src = _write(tmp_path / "data" / "growth.csv", "g") + InputStager(tmp_path / "grid", "tfs-test", dry_run=True).stage(src, "x") + assert not os.path.exists(tmp_path / "grid") + + +# --------------------------------------------------------------------------- +# check_no_outside_paths +# --------------------------------------------------------------------------- + +class TestCheckNoOutsidePaths: + def test_known_key_allowed(self, tmp_path): + f = _write(tmp_path / "g.csv", "x") + check_no_outside_paths({"growth_df": f}, [("growth_df",)], str(tmp_path), "") + + def test_unknown_absolute_file_raises(self, tmp_path): + f = _write(tmp_path / "g.csv", "x") + with pytest.raises(ValueError, match="a.b.*HINT"): + check_no_outside_paths({"a": {"b": f}}, [], str(tmp_path), "HINT") + + def test_unknown_relative_file_raises(self, tmp_path): + _write(tmp_path / "g.csv", "x") + with pytest.raises(ValueError, match="g.csv"): + check_no_outside_paths({"a": ["g.csv"]}, [], str(tmp_path), "") + + def test_per_key_source_dirs(self, tmp_path): + _write(tmp_path / "base" / "g.csv", "x") + cfg = {"a": "g.csv", "b": "g.csv"} + dirs = {"a": str(tmp_path), "b": str(tmp_path / "base")} + with pytest.raises(ValueError, match="'b'"): + check_no_outside_paths(cfg, [], dirs, "") + + def test_non_paths_pass(self, tmp_path): + check_no_outside_paths({"a": "linear", "b": 1, "c": [0.1, None]}, + [], str(tmp_path), "") + + +# --------------------------------------------------------------------------- +# stage_template_vars / render_run_template +# --------------------------------------------------------------------------- + +class TestStageTemplateVars: + def test_file_values_staged_others_untouched(self, tmp_path): + _write(tmp_path / "genos.txt", "wt") + stager = InputStager(tmp_path / "grid", "tfs-test") + out = stage_template_vars( + {"f": "genos.txt", "seed": 1, "label": "x", "here": "."}, + str(tmp_path), stager) + assert out == {"f": os.path.join("..", INPUTS_DIRNAME, "genos.txt"), + "seed": 1, "label": "x", "here": "."} + + def test_directory_value_raises(self, tmp_path): + (tmp_path / "d").mkdir() + with pytest.raises(ValueError, match="directory"): + stage_template_vars({"f": "d"}, str(tmp_path), + InputStager(tmp_path, "tfs-test")) + + def test_render_names_run_on_undefined(self): + tmpl = make_jinja_env(strict=True).from_string("{{ missing }}") + with pytest.raises(ValueError, match="run_0007"): + render_run_template(tmpl, {}, "run_0007") From c7b228db4e14ef456b50f191f5d8db4d214fba1b Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 24 Sep 2026 21:57:35 -0700 Subject: [PATCH 028/208] Diagnose the unanchored k/dk_geno slide; set up anchored grid (3.5) Binding weight 1 did not fix the mixture fits either (it did improve theta coverage to 0.71-0.75). The failure is optimization along the k/dk_geno slide: under the mixture's own joint density, single's solution scores ~18,000 log units better than where the mixture's SVI stopped; the drift starts after the MAP warm-up (growth_k climbs from ~0.01 to ~0.1); and the mean SVI gradient at single's solution is the same in both models, so there is no gradient bug. The only anchor is wt's dk_geno pin, and the Student-t growth likelihood makes abandoning wt cheap (the mixture fit misses wt by ~13.6 ln units, ~2,000 log units vs ~44,000 under a Normal). The prefit's k prior, the intended anchor, never engaged: its Hessian scale hit the 0.1 ceiling in every run. Adds grid_anchor.yaml (6 runs, binding_weight 1, prefit --k_scale_ceiling 0.005) via a new optional k_scale_ceiling in run.srun, the gradient diagnosis script, and records the weight-1 results and the slide diagnosis in the study README and the plan. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 7 ++ .../congression-calibration/.gitignore | 1 + .../studies/congression-calibration/README.md | 64 ++++++++++++--- .../diagnosis/compare_masked.py | 15 ++-- .../diagnosis/diag_gradient.py | 77 +++++++++++++++++++ .../congression-calibration/grid_anchor.yaml | 55 +++++++++++++ .../studies/congression-calibration/run.srun | 10 ++- 7 files changed, 214 insertions(+), 15 deletions(-) create mode 100644 planning/studies/congression-calibration/diagnosis/diag_gradient.py create mode 100644 planning/studies/congression-calibration/grid_anchor.yaml diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 93d78501..5b32c5d1 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -613,6 +613,13 @@ checked with `tfs-summarize-calibration`. Next: `grid_bw1.yaml` (binding_weight 1). The weight and the real binding SDs (SE of a fitted Hill curve) are open questions for real data (user, 2026-09-24). + Weight 1 (2026-09-24) did not fix it either (it did improve theta + coverage). Third diagnosis: the k/dk_geno slide is held only by wt's + dk_geno pin, the Student-t growth likelihood makes abandoning wt cheap + (the mixture fit misses wt by ~13.6 ln units), and the prefit k prior + never engaged (k_scale at its 0.1 ceiling). No gradient bug: the + mixture's SVI gradient matches `single`'s. Next: `grid_anchor.yaml` + (prefit `--k_scale_ceiling 0.005`, weight 1). 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index 8314cb70..abaefb98 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -4,3 +4,4 @@ calib/ congression_calibration_masked/ diagnosis/*.csv congression_calibration_bw1/ +congression_calibration_anchor/ diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 6eb95b3d..83354935 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -171,7 +171,7 @@ classes (switching them off costs 21,100 in growth log-likelihood, against 36,700 unmasked). The floor bias is real and censoring is still worth doing, but it does not drive the mixture's behavior. -## Revised diagnosis: the binding weight (2026-09-24) +## Second diagnosis: the binding weight (2026-09-24; superseded, see below) Scripts: [`diagnosis/diag_basin.py`](diagnosis/diag_basin.py) and [`diagnosis/diag_sites.py`](diagnosis/diag_sites.py) (runs 0001/0002). The @@ -206,11 +206,57 @@ binding SDs used on real data are the SE of a Hill curve fitted to the anisotropy points, which counts 9 correlated values as independent and leaves no room for differences between assay and cell. -## Next: binding weight 1 (grid_bw1.yaml) - -The same 6 simulations as the masked grid, all rows, refit with -`--binding_weight 1` (`binding_weight` in `run.srun`). If the revised -diagnosis is right, the lambda-0 mixture matches `single`, lambda stops -being pulled up, and the mixture's extra slide goes away. The simulation -generates binding and growth consistently, so it tests the weighting, not -the real modality mismatch. +## Binding weight 1 (grid_bw1.yaml, 2026-09-24): weight not the driver + +The same 6 simulations refit with `--binding_weight 1` +([`diagnosis/compare_masked.py`](diagnosis/compare_masked.py), which now +takes the follow-up grids as arguments). True lambda 0: + +| | original | masked | weight 1 | +|---|---|---|---| +| lambda, measured prior (0.357 +/- 0.05) | 0.55 | 0.53 | 0.47 | +| k offset, mixture (matched prior) | +0.062 | +0.065 | +0.080 | +| bulk theta RMSE, mixture | 0.267 | 0.270 | 0.247 | +| bulk theta RMSE, `single` | 0.219 | 0.220 | 0.227 | + +Theta 95% coverage improved in every arm at weight 1 (0.71 to 0.75, from +0.61 to 0.70), so the weight matters for calibration, but the mixture's +behavior survived. At weight 1 the mixture fit is worse than `single` on +both binding and growth, so no trade-off explains it. + +## Third diagnosis: the unanchored slide (2026-09-24) + +- **Optimization, not the objective.** Under the mixture model's own joint + density, `single`'s solution at lambda 0.004 scores ~18,000 log units + better than where the mixture's SVI stopped + ([`diagnosis/diag_basin.py`](diagnosis/diag_basin.py), bw1 grid). +- **The drift happens in SVI, after the MAP warm-up.** After the warm-up all + fits have sensible `growth_k` (truth 0.011 to 0.029); the matched-prior + mixture then climbs to 0.089 to 0.112, with the between-condition + differences collapsing, and every `dk_geno` falls by ~0.09 (`ln_cfu0` + barely moves, so it is not a per-genotype trap). +- **No gradient bug.** The mean SVI gradient (64 draws) at `single`'s + solution is the same for both models (kanR+kan `growth_k`: -1.90e6 vs + -1.86e6), as is the exact joint-density gradient + ([`diagnosis/diag_gradient.py`](diagnosis/diag_gradient.py)). Both pull k + up from `single`'s point and back down from the mixture's: `single` + stopped short, the mixture overshot. +- **The only anchor is weak.** `hierarchical_geno` pins wt's `dk_geno` to 0, + and it stays 0 in both fits. The mixture fit abandons wt instead: it + predicts wt's `ln_cfu` ~13.6 ln units too high (`single`: +1.3). The + growth likelihood is Student-t (fitted nu ~9 `single`, ~6.4 mixture), + whose cost grows only logarithmically: that miss costs ~2,000 log units + here, against ~44,000 under a Normal. +- **The intended anchor never engaged.** The prefit's per-condition k prior + is meant to pin the slide, but its Hessian-based `k_scale` hit the 0.1 + ceiling in every run. + +## Next: pin k (grid_anchor.yaml) + +The same 6 simulations at binding weight 1 with the prefit's k prior forced +tight (`--k_scale_ceiling 0.005`, `k_scale_ceiling` in `run.srun`). The +prefit's k estimates are themselves 0.006 to 0.009 low in these +simulations, so expect a uniform `dk_geno` offset. If the diagnosis is +right, the lambda-0 mixture matches `single` and lambda stops being pulled +up. Open for real data: why the prefit cannot determine k, and whether nu +should be free (a Normal likelihood would give wt's pin real weight). diff --git a/planning/studies/congression-calibration/diagnosis/compare_masked.py b/planning/studies/congression-calibration/diagnosis/compare_masked.py index 4807dd07..8f6bac85 100644 --- a/planning/studies/congression-calibration/diagnosis/compare_masked.py +++ b/planning/studies/congression-calibration/diagnosis/compare_masked.py @@ -1,10 +1,12 @@ """ -Compare the masked runs (grid_masked.yaml, rows with < 5 reads dropped) with -their unmasked twins in grid.yaml (same simulated data). Run from the study -directory. +Compare follow-up runs (grid_masked.yaml: rows with < 5 reads dropped; +grid_bw1.yaml: binding_weight 1) with their twins in grid.yaml (same +simulated data). Run from the study directory; arguments name the follow-up +grid directories (default: congression_calibration_masked). """ import glob import json +import sys import numpy as np import pandas as pd @@ -40,10 +42,13 @@ def summarize(d): return out +GRIDS = sys.argv[1:] or ["congression_calibration_masked"] rows = [] for m, o in PAIRS.items(): - for tag, d in (("masked", glob.glob(f"congression_calibration_masked/run_{m}_*")[0]), - ("full", glob.glob(f"congression_calibration/run_{o}_*")[0])): + runs = [("original", glob.glob(f"congression_calibration/run_{o}_*")[0])] + runs += [(g.replace("congression_calibration_", ""), glob.glob(f"{g}/run_{m}_*")[0]) + for g in GRIDS] + for tag, d in runs: r = summarize(d) r["data"] = tag rows.append(r) diff --git a/planning/studies/congression-calibration/diagnosis/diag_gradient.py b/planning/studies/congression-calibration/diagnosis/diag_gradient.py new file mode 100644 index 00000000..2862fe0f --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_gradient.py @@ -0,0 +1,77 @@ +""" +Is the mixture's SVI gradient biased along the k/dk_geno direction? + +Build the mixture fit's guide parameters from the single fit's solution +(keeping the mixture fit's lambda parameters), then average the ELBO +gradient over many draws with no optimization. Also the deterministic +gradient of the mixture's joint log density at single's median latents. +Run from this directory; GRID selects the grid (default: the unmasked one). +""" +import sys +sys.argv = [sys.argv[0]] +from diag_lam0 import * +from numpyro.infer import Trace_ELBO +from numpyro.infer.util import log_density + +N_DRAWS = 64 + +(d1, o1, s1, st1), (d2, o2, s2, st2) = load("run_0001"), load("run_0002") +p1 = s1.get_params(st1) +p2 = s2.get_params(st2) + +shared = sorted(set(p1) & set(p2)) +only2 = sorted(set(p2) - set(p1)) +print("mixture-only params:", only2) +start = {k: (p1[k] if k in p1 else p2[k]) for k in p2} + +data = full_batch(o2) +elbo = Trace_ELBO(num_particles=1) + + +def mean_grad(params, orch, svi, n=N_DRAWS): + def loss(p, key): + return elbo.loss(key, p, orch.jax_model, svi.guide, + data=full_batch(orch), priors=orch.priors) + g = jax.jit(jax.grad(loss)) + grads = [g(params, jax.random.PRNGKey(i)) for i in range(n)] + mean = jax.tree_util.tree_map(lambda *x: jnp.mean(jnp.stack(x), 0), *grads) + se = jax.tree_util.tree_map(lambda *x: jnp.std(jnp.stack(x), 0) / np.sqrt(n), *grads) + return mean, se + + +def show(tag, grads, keys): + mean, se = grads + print(f"\n{tag}: mean d(loss)/d(param) +/- SE (SVI moves against the sign)") + for k in keys: + m = np.ravel(np.asarray(mean[k])); s = np.ravel(np.asarray(se[k])) + print(f" {k:40s} " + " ".join(f"{a:+.3g}+/-{b:.2g}" for a, b in zip(m, s))) + + +keys = [k for k in p2 if k.startswith("condition_growth_k")] + \ + [k for k in p2 if k.startswith("dk_geno") and np.size(p2[k]) <= 4] + only2 +show("mixture model, guide at SINGLE's solution", mean_grad(start, o2, s2), keys) +show("mixture model, guide at MIXTURE's own solution", mean_grad(p2, o2, s2), keys) +k1 = [k for k in keys if k in p1] +show("single model, guide at SINGLE's solution", mean_grad(p1, o1, s1), k1) + +# Deterministic check: gradient of the joint log density wrt the k latent. +lat1, _ = median_latents(o1, s1, st1) +lat = dict(lat1) +lat["transformation_lam"] = jnp.asarray(np.exp(float(p2["transformation_lam_loc"]))) + + +def joint(l, orch): + lp, _ = log_density(seed(orch.jax_model, 0), (), + dict(data=full_batch(orch), priors=orch.priors), l) + return lp + + +for tag, orch, l in (("mixture", o2, lat), ("single", o1, lat1)): + g = jax.grad(joint)(l, orch) + kname = [k for k in g if k.startswith("condition_growth_k")] + print(f"\n{tag} joint log density at single's median latents, d/d(latent):") + for k in kname: + print(f" {k:30s}", np.round(np.ravel(np.asarray(g[k])), 1)) + dk = np.asarray(g["dk_geno_offset"]) if "dk_geno_offset" in g else None + if dk is not None: + print(f" dk_geno_offset (sum over genotypes) {dk.sum():.1f}") diff --git a/planning/studies/congression-calibration/grid_anchor.yaml b/planning/studies/congression-calibration/grid_anchor.yaml new file mode 100644 index 00000000..4a833312 --- /dev/null +++ b/planning/studies/congression-calibration/grid_anchor.yaml @@ -0,0 +1,55 @@ +# --------------------------------------------------------------------------- +# Anchored follow-up to grid.yaml (congression calibration, step 3.5) +# +# tfs-setup-sim-grid grid_anchor.yaml --out_prefix congression_calibration_anchor +# for d in congression_calibration_anchor/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Tests the slide diagnosis (README "Third diagnosis"): the k/dk_geno slide +# is held only by wt's dk_geno pin, which the Student-t growth likelihood +# makes cheap to abandon, and the prefit's k prior never engaged (its +# Hessian scale hit the 0.1 ceiling). Pin k with a tight prefit prior +# (k_scale_ceiling 0.005), at binding_weight 1. Same simulations as grid.yaml +# runs 0001-0003 (lambda 0) and 0037-0039 (lambda 1.0): wide dk, seed 1. +# 2 lambda x 3 fits = 6 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__dkloc{{ dk_geno_hyper_loc }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}__bw{{ binding_weight }}__kceil{{ k_scale_ceiling }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + - transformation_poisson_lambda: 1.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + + +template: + + - name: fit + variants: + - fit: single + lam_prior: "off" + - fit: mixture + lam_prior: matched + - fit: mixture + lam_prior: measured + + - name: weight + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 8a8b103f..5987dc06 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -30,6 +30,9 @@ MIN_COUNTS={{ min_counts | default(0) }} # Binding likelihood weight passed to tfs-configure-model (empty = its default, # growth rows / binding rows). grid_bw1.yaml sets it to 1. BINDING_WEIGHT="{{ binding_weight | default('') }}" +# Ceiling on the prefit's per-condition k prior scale (empty = its default, +# 0.1). grid_anchor.yaml sets it low to pin the k/dk_geno slide. +K_SCALE_CEILING="{{ k_scale_ceiling | default('') }}" # The simulated lambda and the seed live in tfs_sim_config.yaml. read -r SEED LAM_SIM < <(python -c " @@ -98,8 +101,13 @@ tfs-configure-model \ # --------------------------------------------------------------------------- # 3. Pre-fit calibration, fit, posterior # --------------------------------------------------------------------------- +PREFIT_ARGS=() +if [[ -n "${K_SCALE_CEILING}" ]]; then + PREFIT_ARGS=(--k_scale_ceiling "${K_SCALE_CEILING}") +fi + echo ">>> Pre-fit calibration" -tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" +tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" "${PREFIT_ARGS[@]}" echo ">>> Fit model" tfs-fit-model tfs_configure_config.yaml \ From 2d860498ebf4eafe17fdd9389e125650c36de988 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 07:13:57 -0700 Subject: [PATCH 029/208] Set up lambda-0 controls for the mixture anomaly (step 3.5) The anchored grid (binding_weight 1, tight prefit k prior) fixed single but not the mixture: at lambda 0 its fit still ends with k ~0.08 too high and wt abandoned. Two controls on the lambda-0 simulation: lambda pinned at ~1e-6 under SVI (mathematically single; drift would mean a bug in the mixture code during training), and MAP fits of the mixture and single (the same solution under MAP would mean a real mode, single-like would mean an SVI artifact). Adds grid_controls.yaml (3 runs), lam_prior "fixed0" and an analysis_method option in run.srun, and the ELBO and population-array diagnosis scripts. Results are recorded after the controls finish. Co-authored-by: Claude Opus 5.5 --- .../congression-calibration/.gitignore | 1 + .../diagnosis/diag_elbo.py | 42 ++++++++ .../diagnosis/diag_population.py | 29 +++++ .../studies/congression-calibration/fetch.sh | 3 + .../grid_controls.yaml | 65 +++++++++++ .../congression-calibration/grid_summary.json | 102 ++++++++++++++++++ .../inputs/hill_params.csv | 5 + .../studies/congression-calibration/run.srun | 8 +- 8 files changed, 254 insertions(+), 1 deletion(-) create mode 100644 planning/studies/congression-calibration/diagnosis/diag_elbo.py create mode 100644 planning/studies/congression-calibration/diagnosis/diag_population.py create mode 100755 planning/studies/congression-calibration/fetch.sh create mode 100644 planning/studies/congression-calibration/grid_controls.yaml create mode 100644 planning/studies/congression-calibration/grid_summary.json create mode 100644 planning/studies/congression-calibration/inputs/hill_params.csv diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index abaefb98..d29854fa 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -5,3 +5,4 @@ congression_calibration_masked/ diagnosis/*.csv congression_calibration_bw1/ congression_calibration_anchor/ +congression_calibration_controls/ diff --git a/planning/studies/congression-calibration/diagnosis/diag_elbo.py b/planning/studies/congression-calibration/diagnosis/diag_elbo.py new file mode 100644 index 00000000..e0503a0e --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_elbo.py @@ -0,0 +1,42 @@ +""" +Does the ELBO (averaged over guide draws) prefer the mixture fit's endpoint +while the joint density at median latents prefers single's solution? That +would mean guide noise, passed through the mixture's convex logsumexp and +max-theta, is what drives the SVI drift. Run from this directory; GRID +selects the grid. +""" +import sys +sys.argv = [sys.argv[0]] +from diag_lam0 import * +from numpyro.infer import Trace_ELBO + +N_DRAWS = 64 +(d1, o1, s1, st1), (d2, o2, s2, st2) = load("run_0001"), load("run_0002") +p1, p2 = s1.get_params(st1), s2.get_params(st2) +start = {k: (p1[k] if k in p1 else p2[k]) for k in p2} +elbo = Trace_ELBO(num_particles=1) + + +def mean_loss(params, orch, svi, n=N_DRAWS): + f = jax.jit(lambda p, key: elbo.loss(key, p, orch.jax_model, svi.guide, + data=full_batch(orch), priors=orch.priors)) + v = np.array([float(f(params, jax.random.PRNGKey(i))) for i in range(n)]) + return v.mean(), v.std() / np.sqrt(n) + + +for tag, params in (("single's solution (+ mixture lambda)", start), + ("mixture's own endpoint", p2)): + m, se = mean_loss(params, o2, s2) + print(f"mixture -ELBO at {tag:38s} {m:12.1f} +/- {se:.1f}") +m, se = mean_loss(p1, o1, s1) +print(f"single -ELBO at {'single solution':38s} {m:12.1f} +/- {se:.1f}") + +# Same comparison with the guide's scales shrunk toward zero (near-point +# evaluation): if the ordering flips, guide noise is what favors the drift. +def shrink(p, f=1e-3): + return {k: (v * f if k.endswith("_scale") or k.endswith("_scales") else v) + for k, v in p.items()} +for tag, params in (("single's solution, scales x1e-3", shrink(start)), + ("mixture endpoint, scales x1e-3", shrink(p2))): + m, se = mean_loss(params, o2, s2, n=8) + print(f"mixture -ELBO at {tag:38s} {m:12.1f} +/- {se:.1f}") diff --git a/planning/studies/congression-calibration/diagnosis/diag_population.py b/planning/studies/congression-calibration/diagnosis/diag_population.py new file mode 100644 index 00000000..20963906 --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_population.py @@ -0,0 +1,29 @@ +""" +Is the population dk_geno / activity / theta the mixture looks co-residents +up in the same as each genotype's own value? Compare the component's focal +output with population[batch_idx] at the mixture fit's median latents. +Run from this directory; GRID selects the grid. +""" +import sys +sys.argv = [sys.argv[0]] +from diag_lam0 import * + +(d2, o2, s2, st2) = load("run_0002") +lat2, _ = median_latents(o2, s2, st2) +data = full_batch(o2) +tr = trace(substitute(seed(o2.jax_model, 0), data=lat2)).get_trace(data=data, priors=o2.priors) +print("deterministic sites:", [k for k, v in tr.items() if v["type"] == "deterministic"][:40]) + +from tfscreen.tfmodel.generative.registry import model_registry +comp = model_registry["dk_geno"][o2.settings["dk_geno"]] +def run_dk(): + return comp.define_model("dk_geno", data.growth, o2.priors.growth.dk_geno, + return_population=True) +focal, pop = substitute(seed(run_dk, 0), data=lat2)() +bi = np.asarray(data.growth.batch_idx) +f = np.ravel(np.asarray(focal)); p = np.asarray(pop) +print("focal dk_geno: shape", np.asarray(focal).shape, " population:", p.shape) +print("focal - population[batch_idx]: max|d| %.3g" % np.max(np.abs(f - p[bi]))) +print("focal mean %.4f population mean %.4f" % (f.mean(), p.mean())) +if "dk_geno" in tr: + print("traced dk_geno site mean %.4f" % float(np.mean(tr["dk_geno"]["value"]))) diff --git a/planning/studies/congression-calibration/fetch.sh b/planning/studies/congression-calibration/fetch.sh new file mode 100755 index 00000000..9b21d621 --- /dev/null +++ b/planning/studies/congression-calibration/fetch.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env + +rsync -av --exclude '*.h5' -e ssh $(T):${1} . diff --git a/planning/studies/congression-calibration/grid_controls.yaml b/planning/studies/congression-calibration/grid_controls.yaml new file mode 100644 index 00000000..1ec10518 --- /dev/null +++ b/planning/studies/congression-calibration/grid_controls.yaml @@ -0,0 +1,65 @@ +# --------------------------------------------------------------------------- +# Controlled fits for the lambda-0 mixture anomaly (congression calibration, +# step 3.5) +# +# tfs-setup-sim-grid grid_controls.yaml --out_prefix congression_calibration_controls +# for d in congression_calibration_controls/run_*/; do (cd "$d" && sbatch run.srun); done +# +# In every follow-up grid the lambda-0 mixture fit ends in a solution that +# leans on congressed classes of weight ~0.2%, with k ~0.08 too high and wt +# abandoned, while single does not. Two controls on the same simulation as +# grid.yaml runs 0001-0003 (lambda 0, wide dk, seed 1), with the anchored +# settings of grid_anchor.yaml (binding_weight 1, prefit k_scale_ceiling +# 0.005): +# +# mixture / fixed0 / svi lambda pinned at ~1e-6, so the mixture is single. +# Drift here means a bug in the mixture code path +# during training. +# mixture / matched / map MAP instead of SVI. The same solution here means a +# real mode of the model; single-like means an SVI +# artifact. +# single / off / map the MAP baseline for the MAP mixture fit. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}__{{ analysis_method }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + + +template: + + - name: fit + variants: + - fit: mixture + lam_prior: fixed0 + analysis_method: svi + - fit: mixture + lam_prior: matched + analysis_method: map + - fit: single + lam_prior: "off" + analysis_method: map + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 diff --git a/planning/studies/congression-calibration/grid_summary.json b/planning/studies/congression-calibration/grid_summary.json new file mode 100644 index 00000000..0c52cddb --- /dev/null +++ b/planning/studies/congression-calibration/grid_summary.json @@ -0,0 +1,102 @@ +{ + "grid_yaml": "/gpfs/home/harms/tfscreen/planning/studies/congression-calibration/grid_anchor.yaml", + "out_prefix": "/gpfs/home/harms/tfscreen/planning/studies/congression-calibration/congression_calibration_anchor", + "runs": [ + { + "run": "run_0001_lam0_0_dkloc-3_5_seed1_single_off_bw1_0_kceil0_005", + "simulate": { + "transformation_poisson_lambda": 0.0, + "dk_geno_hyper_loc": -3.5, + "dk_geno_hyper_scale": 0.5, + "dk_geno_hyper_shift": 0.02, + "seed": 1 + }, + "template": { + "fit": "single", + "lam_prior": "off", + "binding_weight": 1.0, + "k_scale_ceiling": 0.005 + } + }, + { + "run": "run_0002_lam0_0_dkloc-3_5_seed1_mixture_matched_bw1_0_kceil0_005", + "simulate": { + "transformation_poisson_lambda": 0.0, + "dk_geno_hyper_loc": -3.5, + "dk_geno_hyper_scale": 0.5, + "dk_geno_hyper_shift": 0.02, + "seed": 1 + }, + "template": { + "fit": "mixture", + "lam_prior": "matched", + "binding_weight": 1.0, + "k_scale_ceiling": 0.005 + } + }, + { + "run": "run_0003_lam0_0_dkloc-3_5_seed1_mixture_measured_bw1_0_kceil0_005", + "simulate": { + "transformation_poisson_lambda": 0.0, + "dk_geno_hyper_loc": -3.5, + "dk_geno_hyper_scale": 0.5, + "dk_geno_hyper_shift": 0.02, + "seed": 1 + }, + "template": { + "fit": "mixture", + "lam_prior": "measured", + "binding_weight": 1.0, + "k_scale_ceiling": 0.005 + } + }, + { + "run": "run_0004_lam1_0_dkloc-3_5_seed1_single_off_bw1_0_kceil0_005", + "simulate": { + "transformation_poisson_lambda": 1.0, + "dk_geno_hyper_loc": -3.5, + "dk_geno_hyper_scale": 0.5, + "dk_geno_hyper_shift": 0.02, + "seed": 1 + }, + "template": { + "fit": "single", + "lam_prior": "off", + "binding_weight": 1.0, + "k_scale_ceiling": 0.005 + } + }, + { + "run": "run_0005_lam1_0_dkloc-3_5_seed1_mixture_matched_bw1_0_kceil0_005", + "simulate": { + "transformation_poisson_lambda": 1.0, + "dk_geno_hyper_loc": -3.5, + "dk_geno_hyper_scale": 0.5, + "dk_geno_hyper_shift": 0.02, + "seed": 1 + }, + "template": { + "fit": "mixture", + "lam_prior": "matched", + "binding_weight": 1.0, + "k_scale_ceiling": 0.005 + } + }, + { + "run": "run_0006_lam1_0_dkloc-3_5_seed1_mixture_measured_bw1_0_kceil0_005", + "simulate": { + "transformation_poisson_lambda": 1.0, + "dk_geno_hyper_loc": -3.5, + "dk_geno_hyper_scale": 0.5, + "dk_geno_hyper_shift": 0.02, + "seed": 1 + }, + "template": { + "fit": "mixture", + "lam_prior": "measured", + "binding_weight": 1.0, + "k_scale_ceiling": 0.005 + } + } + ] +} diff --git a/planning/studies/congression-calibration/inputs/hill_params.csv b/planning/studies/congression-calibration/inputs/hill_params.csv new file mode 100644 index 00000000..a3568471 --- /dev/null +++ b/planning/studies/congression-calibration/inputs/hill_params.csv @@ -0,0 +1,5 @@ +genotype,log_hill_K,hill_n,theta_high,theta_low +wt,-4.1,2,0.01,0.99 +M42I,-2.2104779610300698,1.5156149571654287,0.5054105302329879,0.9538933267956679 +H74A,-5.872705439673401,1.2001278450518955,0.05,0.7115380202706272 +K84L,-5.755115159475512,1.0593068151944411,0.1,0.856776050040223 diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 5987dc06..45892b4c 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -33,6 +33,8 @@ BINDING_WEIGHT="{{ binding_weight | default('') }}" # Ceiling on the prefit's per-condition k prior scale (empty = its default, # 0.1). grid_anchor.yaml sets it low to pin the k/dk_geno slide. K_SCALE_CEILING="{{ k_scale_ceiling | default('') }}" +# tfs-fit-model --analysis_method (svi or map). grid_controls.yaml sets map. +ANALYSIS_METHOD="{{ analysis_method | default('svi') }}" # The simulated lambda and the seed live in tfs_sim_config.yaml. read -r SEED LAM_SIM < <(python -c " @@ -65,6 +67,10 @@ if [[ "${FIT}" == "single" ]]; then else if [[ "${LAM_PRIOR}" == "matched" ]]; then LAM_MEAN=$(python -c "print(max(${LAM_SIM}, 0.01))") + elif [[ "${LAM_PRIOR}" == "fixed0" ]]; then + # lambda pinned essentially at zero: the mixture is then single. + LAM_MEAN=1e-6 + LAM_PRIOR_SD=1e-9 else LAM_MEAN=${LAM_MEASURED} fi @@ -112,7 +118,7 @@ tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" "${PREFIT_ARGS echo ">>> Fit model" tfs-fit-model tfs_configure_config.yaml \ --seed "${SEED}" \ - --analysis_method svi \ + --analysis_method "${ANALYSIS_METHOD}" \ --convergence_tolerance 0.0001 echo ">>> Sample posterior" From c6b75d497ed4b3f0069e1309f7a7855d7c95dce6 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 08:20:57 -0700 Subject: [PATCH 030/208] cleaned up some spuriously added files --- .../congression-calibration/.gitignore | 3 + .../studies/congression-calibration/fetch.sh | 3 - .../congression-calibration/grid_summary.json | 102 ------------------ .../congression-calibration/hill_params.csv | 5 - 4 files changed, 3 insertions(+), 110 deletions(-) delete mode 100755 planning/studies/congression-calibration/fetch.sh delete mode 100644 planning/studies/congression-calibration/grid_summary.json delete mode 100644 planning/studies/congression-calibration/hill_params.csv diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index d29854fa..5eb5f896 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -6,3 +6,6 @@ diagnosis/*.csv congression_calibration_bw1/ congression_calibration_anchor/ congression_calibration_controls/ +fetch.sh +*.csv +*.json diff --git a/planning/studies/congression-calibration/fetch.sh b/planning/studies/congression-calibration/fetch.sh deleted file mode 100755 index 9b21d621..00000000 --- a/planning/studies/congression-calibration/fetch.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env - -rsync -av --exclude '*.h5' -e ssh $(T):${1} . diff --git a/planning/studies/congression-calibration/grid_summary.json b/planning/studies/congression-calibration/grid_summary.json deleted file mode 100644 index 0c52cddb..00000000 --- a/planning/studies/congression-calibration/grid_summary.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "grid_yaml": "/gpfs/home/harms/tfscreen/planning/studies/congression-calibration/grid_anchor.yaml", - "out_prefix": "/gpfs/home/harms/tfscreen/planning/studies/congression-calibration/congression_calibration_anchor", - "runs": [ - { - "run": "run_0001_lam0_0_dkloc-3_5_seed1_single_off_bw1_0_kceil0_005", - "simulate": { - "transformation_poisson_lambda": 0.0, - "dk_geno_hyper_loc": -3.5, - "dk_geno_hyper_scale": 0.5, - "dk_geno_hyper_shift": 0.02, - "seed": 1 - }, - "template": { - "fit": "single", - "lam_prior": "off", - "binding_weight": 1.0, - "k_scale_ceiling": 0.005 - } - }, - { - "run": "run_0002_lam0_0_dkloc-3_5_seed1_mixture_matched_bw1_0_kceil0_005", - "simulate": { - "transformation_poisson_lambda": 0.0, - "dk_geno_hyper_loc": -3.5, - "dk_geno_hyper_scale": 0.5, - "dk_geno_hyper_shift": 0.02, - "seed": 1 - }, - "template": { - "fit": "mixture", - "lam_prior": "matched", - "binding_weight": 1.0, - "k_scale_ceiling": 0.005 - } - }, - { - "run": "run_0003_lam0_0_dkloc-3_5_seed1_mixture_measured_bw1_0_kceil0_005", - "simulate": { - "transformation_poisson_lambda": 0.0, - "dk_geno_hyper_loc": -3.5, - "dk_geno_hyper_scale": 0.5, - "dk_geno_hyper_shift": 0.02, - "seed": 1 - }, - "template": { - "fit": "mixture", - "lam_prior": "measured", - "binding_weight": 1.0, - "k_scale_ceiling": 0.005 - } - }, - { - "run": "run_0004_lam1_0_dkloc-3_5_seed1_single_off_bw1_0_kceil0_005", - "simulate": { - "transformation_poisson_lambda": 1.0, - "dk_geno_hyper_loc": -3.5, - "dk_geno_hyper_scale": 0.5, - "dk_geno_hyper_shift": 0.02, - "seed": 1 - }, - "template": { - "fit": "single", - "lam_prior": "off", - "binding_weight": 1.0, - "k_scale_ceiling": 0.005 - } - }, - { - "run": "run_0005_lam1_0_dkloc-3_5_seed1_mixture_matched_bw1_0_kceil0_005", - "simulate": { - "transformation_poisson_lambda": 1.0, - "dk_geno_hyper_loc": -3.5, - "dk_geno_hyper_scale": 0.5, - "dk_geno_hyper_shift": 0.02, - "seed": 1 - }, - "template": { - "fit": "mixture", - "lam_prior": "matched", - "binding_weight": 1.0, - "k_scale_ceiling": 0.005 - } - }, - { - "run": "run_0006_lam1_0_dkloc-3_5_seed1_mixture_measured_bw1_0_kceil0_005", - "simulate": { - "transformation_poisson_lambda": 1.0, - "dk_geno_hyper_loc": -3.5, - "dk_geno_hyper_scale": 0.5, - "dk_geno_hyper_shift": 0.02, - "seed": 1 - }, - "template": { - "fit": "mixture", - "lam_prior": "measured", - "binding_weight": 1.0, - "k_scale_ceiling": 0.005 - } - } - ] -} diff --git a/planning/studies/congression-calibration/hill_params.csv b/planning/studies/congression-calibration/hill_params.csv deleted file mode 100644 index a3568471..00000000 --- a/planning/studies/congression-calibration/hill_params.csv +++ /dev/null @@ -1,5 +0,0 @@ -genotype,log_hill_K,hill_n,theta_high,theta_low -wt,-4.1,2,0.01,0.99 -M42I,-2.2104779610300698,1.5156149571654287,0.5054105302329879,0.9538933267956679 -H74A,-5.872705439673401,1.2001278450518955,0.05,0.7115380202706272 -K84L,-5.755115159475512,1.0593068151944411,0.1,0.856776050040223 From c5061de3f559b7036df0f94eb56cb715ed04fc9c Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 08:25:15 -0700 Subject: [PATCH 031/208] Review step 3.5 fits: SVI unconverged; file convergence study Four rounds of diagnosis on the congression calibration grid explained the mixture fits' endpoints without changing them. The endpoints are not converged fits. The SVI stop rule divides the loss change by the improvement since the start of SVI, whose loss (~8e7, prior-width guide scales plus jitter) is ~500x the final loss, so runs stop while the loss still falls 20-30% per 1000 epochs. The pre-MAP's step size decays to 1e-6 within its own 1000 epochs, so SVI starts far from the mode. Epoch checkpoints of the anchored grid show single holding growth_k at the truth, while the mixture overshoots by +0.12 (lambda 0) and +0.05 (lambda 1) during the high-variance start (nu ~1.3, sigma_k ~1.1), then recovers slowly and is cut off mid-recovery. The study's simulated co-resident pool is also 39% wt: the tile enumeration adds one wt entry per non-degenerate codon. Adds planning/studies/congression-calibration-convergence/ (README, trace_checkpoints.py, coresident_pool.py) and a pointer in step 3.5 of the congression physics plan. Routes forward are proposals, not yet decided. Planning only; no code changes. Verified: both scripts run against the pulled anchored grid and reproduce the README's numbers. Co-Authored-By: Claude Opus 5.5 --- planning/congression-physics-plan.md | 8 + .../README.md | 280 ++++++++++++++++++ .../coresident_pool.py | 73 +++++ .../trace_checkpoints.py | 114 +++++++ 4 files changed, 475 insertions(+) create mode 100644 planning/studies/congression-calibration-convergence/README.md create mode 100644 planning/studies/congression-calibration-convergence/coresident_pool.py create mode 100644 planning/studies/congression-calibration-convergence/trace_checkpoints.py diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 5b32c5d1..99e6aa35 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -620,6 +620,14 @@ checked with `tfs-summarize-calibration`. never engaged (k_scale at its 0.1 ceiling). No gradient bug: the mixture's SVI gradient matches `single`'s. Next: `grid_anchor.yaml` (prefit `--k_scale_ceiling 0.005`, weight 1). + Review (2026-09-25): none of the 3.5 fits converged. The stop rule is + relative to the loss at the start of SVI (~500 times the final loss). + The anchored grid's epoch checkpoints show that the mixture's k + overshoot is an early SVI excursion, still unwinding at the stop, + while `single` holds k at the truth. The simulated co-resident pool is + also 39% wt. Earlier diagnoses need re-judging on converged fits. + Proposed routes forward, not yet decided: + `planning/studies/congression-calibration-convergence/`. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration-convergence/README.md b/planning/studies/congression-calibration-convergence/README.md new file mode 100644 index 00000000..52a9c129 --- /dev/null +++ b/planning/studies/congression-calibration-convergence/README.md @@ -0,0 +1,280 @@ +# Congression calibration: SVI convergence review + +**Question.** Four rounds of diagnosis on the step 3.5 calibration grid +(detection floor, binding weight, unanchored k/dk_geno slide, ELBO/Jensen) +each explained the mixture fits' endpoints, and none of the fixes changed +them. Are those endpoints converged fits at all? If they are not, what does +the mixture actually do during training? + +**Decision it feeds.** What to do next in step 3.5 of +[`planning/congression-physics-plan.md`](../../congression-physics-plan.md): +whether to keep diagnosing the mixture model, or fix the optimization first. +The routes forward below are proposals, not decisions. + +## Summary + +- **None of the 3.5 fits converged**, `single` included. The stop rule + measures loss change relative to the loss at the start of SVI, which is + ~500 times the final loss, so runs stop while the loss is still falling + 20 to 30% per 1000 epochs and the guide scales are still shrinking. +- **The mixture's "k drift" is an early excursion that was still unwinding + at the stop.** In the high-variance start of SVI (guide scales at prior + width, nu collapsing to ~1.3), the mixture's `growth_k` overshoots the + truth by +0.12 at lambda 0 and +0.05 at lambda 1, then comes back + slowly. `single`, on the same data, holds `growth_k` at the truth + throughout. +- **The simulated library is dominated by wt**, which is 39% of the + co-resident pool, so most congressed classes are "genotype + wt". wt is + also the only genotype with a pinned dk_geno. +- Nothing here points at the congression physics or the mixture's design. + The earlier diagnoses should be re-judged on converged fits. + +## How to run + +The scripts read a grid pulled from the cluster (`fetch.sh` in +`planning/studies/congression-calibration/`), by default the anchored grid +(`grid_anchor.yaml`) inside that study directory. From this directory, with +tfscreen importable: + +```bash +python trace_checkpoints.py # runs 0001, 0002, 0005 +python coresident_pool.py # run 0002 +GRID=/path/to/grid python trace_checkpoints.py run_0002 run_0003 +``` + +Both print to stdout and write nothing. `trace_checkpoints.py` takes about +20 s on a laptop CPU. + +## Inputs + +- Anchored grid (`planning/studies/congression-calibration/grid_anchor.yaml`, + set up on c7b228d, run 2026-09-24): binding weight 1, prefit + `--k_scale_ceiling 0.005`, lambda 0 and 1.0, wide dk_geno spread, seed 1. + Run 0001 is `single`, 0002 the mixture with the matched lambda prior at + simulated lambda 0 (fitted lambda ~0.004), 0005 the mixture with the matched + prior at lambda 1.0. Runs 0001 and 0002 were fit to the same simulated data. +- Each run's `checkpoints/*_checkpoint.pkl` (every 1000 epochs), + `tfs_fit_model_checkpoint.pkl`, `tfs_fit_model_losses.txt`, + `tfs_sim_growth_parameters.csv`, `tfs_configure_library.csv`, + `tfs_sim_library.csv` and `tfs_sim_presplit.csv`. + +## Commit + +Scripts written and run on 2d86049 (2026-09-25). + +## Results + +### 1. The stop rule fires on the start-up transient + +`RunInference._update_loss_deque` +(`src/tfscreen/tfmodel/inference/run_inference.py`) defines the metric as + +``` +|mean(old window) - mean(new window)| / (loss_start - loss_best) +``` + +with `loss_start` taken once, when the first two 10-epoch windows of SVI +fill. At that point the component guide's per-genotype scales are still at +their initial 1.0 and the initial values carry 0.1 jitter, so `loss_start` is +~8e7. The runs end near 1.5e5 to 2.3e5: + +| run | `loss_start` | `loss_best` | stop threshold on the 10-epoch change (tolerance 1e-4) | +|---|---|---|---| +| 0001 `single` | 7.64e7 | 2.29e5 | 7,620 | +| 0002 mixture, lambda 0 | 8.93e7 | 1.68e5 | 8,910 | +| 0005 mixture, lambda 1 | 8.91e7 | 1.34e5 | 8,900 | + +The threshold is effectively "the loss has fallen by 99.99% of its initial +value," not "the loss has stopped changing." At the stop the smoothed loss is +still falling 20 to 30% per 1000 epochs (run 0002: 3.6e5 at epoch 7000, +2.5e5 at 8000, 1.9e5 at 9000). + +The original 54-run grid (default binding weight) ended at losses of 9e6 to +1.2e7, even further from converged. + +### 2. The pre-MAP warm-up is close to a no-op + +`_run_map` (`src/tfscreen/tfmodel/scripts/fit_model_cli.py`) sets the +learning-rate schedule to decay from `adam_step_size` to +`adam_final_step_size` (1e-3 to 1e-6) over `max_num_epochs`, and the pre-MAP +passes `max_num_epochs=pre_map_num_epoch` (1000). The step size therefore +collapses within the warm-up. Adam moves a parameter by roughly the step +size per step, so about 0.15 in total over the warm-up. The pre-MAP loss +goes from 6.5e7 to 5.3e7, against ~1.5e5 at the end of SVI. SVI starts far +from the mode, with prior-width guide scales (`dk_geno_offset_scales` and the +other per-genotype scales initialize to 1.0). + +### 3. Parameter trajectories + +`trace_checkpoints.py`. `growth_k` for kanR+kan (truth 0.0107) in the three +runs; guide scale, nu, sigma_k and loss from run 0002 (runs 0001 and 0005 +follow the same pattern). nu and sigma_k are guide medians; "dk scale" is +the median per-genotype `dk_geno_offset_scales`. + +| epoch | `single` | mixture, λ 0 | mixture, λ 1 | dk scale | nu | sigma_k | loss | +|---|---|---|---|---|---|---|---| +| 1000 | 0.007 | 0.012 | -0.003 | 1.00 | 19.6 | 0.04 | 6.0e7 | +| 2000 | 0.003 | 0.096 | 0.051 | 0.93 | 7.5 | 0.10 | 1.9e7 | +| 3000 | 0.013 | 0.125 | 0.057 | 0.85 | 3.0 | 0.25 | 5.0e6 | +| 4000 | 0.016 | 0.135 | 0.046 | 0.78 | 1.3 | 0.57 | 2.0e6 | +| 5000 | 0.011 | 0.128 | 0.042 | 0.65 | 1.3 | 1.08 | 9.7e5 | +| 6000 | 0.010 | 0.128 | 0.039 | 0.50 | 2.1 | 1.15 | 5.5e5 | +| 7000 | 0.011 | 0.118 | 0.039 | 0.36 | 3.5 | 1.06 | 3.6e5 | +| 8000 | | 0.107 | 0.039 | 0.26 | 5.2 | 0.91 | 2.5e5 | +| 9000 | | 0.094 | 0.034 | 0.20 | 6.4 | 0.77 | 1.9e5 | +| stop | 0.009 (7982) | 0.092 (9234) | 0.030 (9876) | 0.18 | 6.6 | 0.74 | 1.8e5 | + +The other three conditions move the same way (run 0002 at the stop: 0.090, +0.109, 0.115 against truths 0.015, 0.021, 0.029), and `dk_geno`'s hyper-shift +mirrors them (0.024 at epoch 1000, -0.169 at 4000, -0.079 at the stop). +Lambda in run 0005 also overshoots and returns: 1.02, 1.27 (epoch 2000), 0.95 +(8000), 0.98 at the stop. + +What the table shows: + +- Between epochs 1000 and 5000 the fit escapes the high guide variance by + inflating the noise: nu falls from ~20 to ~1.3 (Cauchy-like tails) and + sigma_k rises from 0.04 to ~1.1 ln units. `single` does the same (nu 1.1 at + epoch 5000). +- In that phase nothing holds the k/dk_geno slide. Under near-Cauchy tails, + wt's pinned dk_geno costs only logarithmically to abandon, and the prefit's + tight k prior (scale 0.005; ~1,400 log units at the run 0002 peak) is small + next to a loss of 1e6 to 1e7. +- `single` wanders by about ±0.01 and ends at the truth. The mixture's + `growth_k` jumps within the first 1000 epochs of SVI and peaks near epoch + 4000. It then returns at about 0.01 per 1000 epochs as the guide scales + shrink and nu recovers, and was still falling when the run stopped. + +This also accounts for the earlier findings from the endpoints. Under the +mixture's own joint density, `single`'s solution beat the mixture's endpoint +by ~18,000, and the mean gradient at that endpoint pointed k back down +(`diag_basin.py`, `diag_gradient.py`). That is what a fit stopped +mid-recovery looks like, not a real mode or an overshoot. + +### 4. Why the mixture's excursion is larger (hypothesis, untested) + +In the high-variance phase, a guide draw often puts a genotype's dk_geno deep +in the lognormal's negative tail, so its clean class dies in that draw. Its +congressed classes rescue the draw, because dilution halves the focal dk. +Most congressed classes contain wt (result 5), whose dk_geno is pinned at 0. +Sliding k up by C and every other dk_geno down by C leaves clean classes +unchanged but speeds up every wt-containing class by C/2, which makes the +rescue more effective and improves the expected log-likelihood under the +guide. + +The excursion sizes fit this: rescue classes weighted ~0.2% (lambda 0.004) +need a larger boost than classes weighted 42% (lambda 1), and the excursion +is +0.12 against +0.05. This is the Jensen/ELBO idea in a concrete form. It +acts in the start-up phase, when guide scales are 0.8 to 1.0. `diag_elbo.py` +evaluates at the endpoints, where the scales are 0.15 to 0.26 and the effect is +much weaker. + +### 5. The simulated library is dominated by wt + +`coresident_pool.py`: + +| quantity | value | +|---|---| +| wt share of the co-resident pool | 0.392 (next largest: 0.023) | +| wt slots per genotype, `congression_sets` [12, 3, 1] | 8.2 of 21 | +| wt entries in `single-1` / `single-2` / `double-1-2` | 30 of 46 / 36 of 67 / 1080 of 3082 | +| wt share of presplit cells (true ln_cfu0), replicate 1 / 2 | 0.61 / 0.22 | + +`LibraryManager._prepare_indiv_lib_blocks` +(`src/tfscreen/genetics/library_manager.py`) treats every codon of a tile as +a site, and a non-degenerate codon's only "mutant" is its wt codon. The study +config's `degen_sites` has one degenerate codon in tile 1's 31 codons and two +in tile 2's 37, so each single sub-library gets one wt entry per +non-degenerate codon. For example, `single-1` has 30 wt entries plus the 16 +NNT codons at site 42. The simulator and the fit share the enumerator, so +this is not a sim/fit mismatch. It does make this simulation unrepresentative +of a library whose tiles are fully degenerate. Whether the enumeration is +intended is an open question. + +### 6. Status of the earlier diagnoses + +| diagnosis (study README) | status | +|---|---| +| Detection floor | The floor bias itself (0 reads: +1.26 ln) is a data-side fact and stands. The "congressed classes are worth 36,700" measurement was taken at an unconverged endpoint. | +| Binding weight | Weight 251 times a binding SD of 0.001 dominating the objective is a property of the objective and stands. Its role in the mixture's drift is undetermined; the weight-1 fits drifted the same way, as the transient predicts. | +| Unanchored slide and Student-t | Partly right: the slide is loose during the transient because nu collapses. "The mixture abandons wt by 13.6 ln units" is a mid-recovery snapshot. | +| ELBO/Jensen (`diag_elbo.py`) | Plausible as the driver of the early excursion (result 4), but testing it at the endpoints measures a much weaker effect. | +| Grid-level numbers (lambda pulled up, bulk theta coverage 0.65, mixture theta RMSE above `single`'s, `single`'s -0.02 k drift) | All from unconverged fits, `single`'s baseline included. None are yet properties of the models. | + +## Is the congression architecture at fault? + +Probably not: + +- The forward model is verified: lambda -> 0 reproduces `single` to 1e-6. +- The estimator is accurate at the true parameters (step 3.0, + `planning/studies/congression-estimator/`). +- The matched-prior lambda 1 fit recovered lambda (0.98). + +Two structural points to keep in view: + +- **Growth data barely inform lambda in the measured regime.** Congression + there is ~0.05 ln RMS, and `single`'s errors did not change with the + simulated lambda. The plan already sets such parameters from biology. +- **A mixture of exponentials is dominated at late times by its fastest + class.** That mimics the detection-floor bias in dying genotypes and makes + a genotype's likelihood bimodal (clean-dominated vs congressed-dominated). + Inference is most fragile there. Look at it once fits converge. + +## Routes forward (proposals) + +In rough order of cost: + +1. **Resume the anchored runs to real convergence.** No new simulations. A + resumed fit re-bases the stop rule: `run_optimization` resets + `loss_start`, so the denominator becomes the resumed run's own + improvement. From a *copy* of a run directory (the resume overwrites + `tfs_fit_model_checkpoint.pkl` and `tfs_fit_model_losses.txt`): + + ```bash + tfs-fit-model tfs_configure_config.yaml --seed 1 \ + --checkpoint_file tfs_fit_model_checkpoint.pkl \ + --convergence_tolerance 0.0001 + ``` + + Keep `--max_num_epochs` at its default. It also sets the step-size decay + horizon, and the optimizer's step count carries over from the checkpoint, + so shortening it drops the step size abruptly. Against the resumed run's + smaller improvement, the loss noise will probably keep the stop rule from + firing, so expect the full 100,000 epochs: about 20 min on the cluster + GPU (these runs took ~12 s per 1000 epochs). Then run + `trace_checkpoints.py` on the copy. This settles "unconverged" vs "a real + pathology" for runs 0001, 0002 and 0005. +2. **Fix the start and the stop** (code changes): + - run the pre-MAP to convergence, with a step-size schedule that does not + collapse within the warm-up; + - start the component guide's per-genotype scales small (for example 0.01 + to 0.1, like AutoNormal's `init_scale`) rather than at prior width; + - measure convergence against the current loss or parameter movement, + not the start-up transient. +3. **Profile lambda with MAP.** Fix lambda on a grid, optimize everything + else to convergence, on the lambda 0 and lambda 1 data. This answers "does + the data pull lambda up?" without SVI. +4. **Test self-consistency before realism.** Fit data generated by the + numpyro model itself (fixed known parameters), `single` vs mixture at + lambda 0. This separates inference from sim/fit mismatch. Then add the + realism back one piece at a time: per-tube noise, pseudocount floor, + binding. +5. **Consider pinning lambda** as a constant by default, with lambda as a + latent an option. This follows the plan's rule for parameters that only a + lambda series could identify. +6. **Re-judge the earlier diagnoses on converged fits** (result 6). +7. **Library.** Decide whether the wt enumeration is intended, and use a + simulation library with a realistic wt share. Check the real library's wt + share of the co-resident pool. + +`grid_controls.yaml` (2d86049) is worth holding until item 2 is done: + +- Its MAP arms use the same stop rule (MAP `loss_start` ~6.5e7) and will + likely stop early too. +- Its `fixed0` arm (lambda ~1e-6) still has congressed classes, at weight + ~5e-7, which a large enough early excursion could use. Drift there would + not by itself mean a bug in the mixture code. + +**Practice.** Before interpreting any fit, run `trace_checkpoints.py` (or +equivalent) on its `checkpoints/` and confirm that the key parameters have +stopped moving. diff --git a/planning/studies/congression-calibration-convergence/coresident_pool.py b/planning/studies/congression-calibration-convergence/coresident_pool.py new file mode 100644 index 00000000..c975a2e4 --- /dev/null +++ b/planning/studies/congression-calibration-convergence/coresident_pool.py @@ -0,0 +1,73 @@ +""" +Composition of the co-resident pool the mixture draws congressed classes +from, and wt's share of simulated cells. + +The pool is the bulk share (pool_fraction * bulk_fraction) of genotypes with +growth data, __unknown__ excluded, as in +ModelOrchestrator._coresident_pool. Also reports how many wt entries each +sub-library enumerates (tfs_sim_library.csv) and wt's share of presplit +cells per replicate. + +Run from this directory. GRID names a pulled grid directory (default: the +anchored grid inside the congression-calibration study); the argument is a +run-number prefix (default: run_0002). The pool depends only on the library, +so any run of the grid gives the same answer. +""" + +import glob +import os +import sys + +import numpy as np +import pandas as pd +import yaml + +HERE = os.path.dirname(os.path.abspath(__file__)) +GRID = os.environ.get("GRID", os.path.join( + HERE, "..", "congression-calibration", "congression_calibration_anchor")) +RUN = sys.argv[1] if len(sys.argv) > 1 else "run_0002" + +run_dir = glob.glob(os.path.join(GRID, RUN + "_*"))[0] + + +def path(name): + return os.path.join(run_dir, name) + + +lib = pd.read_csv(path("tfs_configure_library.csv")) +lib["genotype"] = lib.genotype.astype(str) +grown = set(pd.read_csv(path("tfs_sim_growth.csv"), + usecols=["genotype"]).genotype.astype(str)) +lib = lib[lib.genotype.isin(grown) & (lib.genotype != "__unknown__")].copy() +lib["share"] = lib.pool_fraction * lib.bulk_fraction +lib["share"] /= lib.share.sum() + +print(f"=== {os.path.basename(run_dir)}") +print("Co-resident pool, largest shares:") +print(lib.sort_values("share", ascending=False).head(6)[ + ["genotype", "pool_fraction", "bulk_fraction", "share"]].to_string(index=False)) + +sets = yaml.safe_load(open(path("tfs_configure_config.yaml"))) +sets = sets["components"]["congression_sets"] +slots = sum(num_sets * (n + 1) for n, num_sets in enumerate(sets)) +wt = lib.set_index("genotype").share["wt"] +print(f"\nwt share {wt:.3f}: {slots * wt:.1f} of {slots} co-resident slots per " + f"genotype are wt (congression_sets {sets})") + +sim_lib = pd.read_csv(path("tfs_sim_library.csv")) +sim_lib["genotype"] = sim_lib.genotype.astype(str) +totals = sim_lib.groupby("library_origin").degeneracy.sum() +wt_rows = sim_lib[sim_lib.genotype == "wt"].set_index("library_origin") +print("\nwt entries per sub-library (enumerated codon combinations):") +for origin, row in wt_rows.iterrows(): + print(f" {origin:12s} {row.degeneracy:6d} of {totals[origin]:6d} " + f"({row.degeneracy / totals[origin]:.2f})") + +presplit = pd.read_csv(path("tfs_sim_presplit.csv")) +presplit["genotype"] = presplit.genotype.astype(str) +presplit["cfu"] = np.exp(presplit.ln_cfu_0_true) +keys = ["replicate", "condition_pre"] +share = (presplit[presplit.genotype == "wt"].groupby(keys).cfu.sum() + / presplit.groupby(keys).cfu.sum()) +print("\nwt share of presplit cells (true ln_cfu0):") +print(share.round(3).to_string()) diff --git a/planning/studies/congression-calibration-convergence/trace_checkpoints.py b/planning/studies/congression-calibration-convergence/trace_checkpoints.py new file mode 100644 index 00000000..e4a89f7a --- /dev/null +++ b/planning/studies/congression-calibration-convergence/trace_checkpoints.py @@ -0,0 +1,114 @@ +""" +Trace a fit's guide parameters across its epoch checkpoints, to see whether +they had stopped moving when SVI declared convergence. + +For each run, one row per checkpoint (checkpoints/*_checkpoint.pkl every 1000 +epochs, then the final tfs_fit_model_checkpoint.pkl): the per-condition +growth_k guide loc, dk_geno's hyper-shift loc and median per-genotype offset +guide scale, the guide medians of nu, sigma_k and lambda, and the smoothed +loss. A truth row comes from tfs_sim_growth_parameters.csv. The stop line +gives the convergence bookkeeping stored in the final checkpoint and the +10-epoch loss change below which a tolerance of 1e-4 (run.srun) stops. + +Run from this directory. GRID names a pulled grid directory (default: the +anchored grid inside the congression-calibration study); the arguments are +run-number prefixes (default: run_0001 run_0002 run_0005). The default runs +take about 20 s on a laptop CPU. +""" + +import glob +import os +import sys +import warnings + +warnings.filterwarnings("ignore") + +import dill +import numpy as np +import pandas as pd + +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.inference.run_inference import RunInference + +HERE = os.path.dirname(os.path.abspath(__file__)) +GRID = os.environ.get("GRID", os.path.join( + HERE, "..", "congression-calibration", "congression_calibration_anchor")) +RUNS = sys.argv[1:] or ["run_0001", "run_0002", "run_0005"] +TOLERANCE = 1e-4 + + +def smoothed_loss(run_dir): + losses = pd.read_csv(os.path.join(run_dir, "tfs_fit_model_losses.txt"), + header=None, names=["epoch", "loss", "change"]) + losses = losses[pd.to_numeric(losses.epoch, errors="coerce").notna()] + losses = losses.astype(float).set_index("epoch").loss + return losses.rolling(50, center=True, min_periods=1).median() + + +def condition_order(run_dir): + priors = pd.read_csv(os.path.join(run_dir, "tfs_configure_priors.csv")) + k = priors[priors.parameter == "growth.condition_growth.k_loc"] + return list(k.sort_values("flat_index").condition_rep) + + +def guide_median(params, name): + """Median of a LogNormal guide site with loc parameter ``name``.""" + if name not in params: + return np.nan + return float(np.exp(np.ravel(np.asarray(params[name]))[0])) + + +def trace(run_dir): + cwd = os.getcwd() + os.chdir(run_dir) + try: + orch, init_params = read_configuration("tfs_configure_config.yaml") + ri = RunInference(orch, 0) + files = sorted(glob.glob("checkpoints/*_checkpoint.pkl")) + files.append("tfs_fit_model_checkpoint.pkl") + loss = smoothed_loss(".") + conditions = condition_order(".") + + rows = [] + for f in files: + svi, state = ri.restore_svi_from_checkpoint( + f, init_params=init_params) + p = svi.get_params(state) + with open(f, "rb") as handle: + stored = dill.load(handle) + epoch = stored["current_step"] // ri._iterations_per_epoch + row = {"epoch": epoch} + k = np.ravel(np.asarray(p["condition_growth_k_locs"])) + row.update({f"k[{c}]": v for c, v in zip(conditions, k)}) + row["dk_shift"] = float(np.ravel(p["dk_geno_hyper_shift_loc"])[0]) + row["dk_scale_med"] = float(np.median(p["dk_geno_offset_scales"])) + row["nu"] = guide_median(p, "growth_nu_loc") + row["sigma_k"] = guide_median(p, "growth_noise_sigma_k_loc") + row["lam"] = guide_median(p, "transformation_lam_loc") + row["loss"] = float(loss.iloc[np.argmin(np.abs(loss.index - epoch))]) + rows.append(row) + + truth = pd.read_csv("tfs_sim_growth_parameters.csv") + truth = truth.set_index("condition_rep").growth_k + truth_row = {"epoch": "truth"} + truth_row.update({f"k[{c}]": truth[c] for c in conditions}) + rows.append(truth_row) + + denom = stored["loss_start"] - stored["loss_best"] + stop = (f"stop: loss_start {stored['loss_start']:.3g}, loss_best " + f"{stored['loss_best']:.3g}; tolerance {TOLERANCE:g} stops once " + f"the 10-epoch change in mean loss is below " + f"{TOLERANCE * denom:,.0f}") + finally: + os.chdir(cwd) + return pd.DataFrame(rows), stop + + +if __name__ == "__main__": + pd.set_option("display.width", 250) + for run in RUNS: + run_dir = glob.glob(os.path.join(GRID, run + "_*"))[0] + df, stop = trace(run_dir) + print(f"\n=== {os.path.basename(run_dir)}") + print(df.to_string(index=False, float_format=lambda v: f"{v:.4g}")) + print(stop) From 05870c96a18066f4553e2f02e438cf13a75720f0 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 08:44:15 -0700 Subject: [PATCH 032/208] Integrate the convergence review; set up resume runs (step 3.5) An independent review found that none of the 3.5 fits converged: the SVI stop rule divides the loss change by the improvement since the start of SVI (~500x the final loss), so runs stopped while the loss still fell ~25% per 1000 epochs, and the pre-MAP warm-up's step size collapses within it. Verified here, and the lambda-0 controls agree: under MAP the mixture matches single (k offset +0.0003 vs -0.0013), while SVI's early high-variance phase carries the mixture's k away. The endpoint diagnoses in the study README are superseded. Records the anchored-grid and control results and the review, and adds resume.srun, which resumes a finished run to convergence in a copy of its directory (route 1). Fixing the stop rule and warm-up goes to its own session. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 6 ++ .../congression-calibration/.gitignore | 1 + .../studies/congression-calibration/README.md | 79 ++++++++++++++++--- .../congression-calibration/resume.srun | 72 +++++++++++++++++ 4 files changed, 149 insertions(+), 9 deletions(-) create mode 100644 planning/studies/congression-calibration/resume.srun diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 99e6aa35..33cefe0a 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -628,6 +628,12 @@ checked with `tfs-summarize-calibration`. also 39% wt. Earlier diagnoses need re-judging on converged fits. Proposed routes forward, not yet decided: `planning/studies/congression-calibration-convergence/`. + Integrated 2026-09-25: the review's claims check out, and the + controls agree (under MAP the lambda-0 mixture matches `single`, k + offset +0.0003). The endpoint diagnoses in the calibration README are + superseded. Next (user): resume anchored runs 0001/0002/0005 to + convergence (`resume.srun`); fixing the SVI stop rule and warm-up goes + to its own session, since it affects every `tfs-fit-model` fit. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index 5eb5f896..91dedc2b 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -9,3 +9,4 @@ congression_calibration_controls/ fetch.sh *.csv *.json +congression_calibration_anchor_resumed/ diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 83354935..59de42a4 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -224,7 +224,7 @@ Theta 95% coverage improved in every arm at weight 1 (0.71 to 0.75, from behavior survived. At weight 1 the mixture fit is worse than `single` on both binding and growth, so no trade-off explains it. -## Third diagnosis: the unanchored slide (2026-09-24) +## Third diagnosis: the unanchored slide (2026-09-24; superseded, see below) - **Optimization, not the objective.** Under the mixture model's own joint density, `single`'s solution at lambda 0.004 scores ~18,000 log units @@ -251,12 +251,73 @@ both binding and growth, so no trade-off explains it. is meant to pin the slide, but its Hessian-based `k_scale` hit the 0.1 ceiling in every run. -## Next: pin k (grid_anchor.yaml) +## Anchored grid (grid_anchor.yaml, 2026-09-25) -The same 6 simulations at binding weight 1 with the prefit's k prior forced -tight (`--k_scale_ceiling 0.005`, `k_scale_ceiling` in `run.srun`). The -prefit's k estimates are themselves 0.006 to 0.009 low in these -simulations, so expect a uniform `dk_geno` offset. If the diagnosis is -right, the lambda-0 mixture matches `single` and lambda stops being pulled -up. Open for real data: why the prefit cannot determine k, and whether nu -should be free (a Normal likelihood would give wt's pin real weight). +Binding weight 1 plus a tight prefit k prior (`--k_scale_ceiling 0.005`, +prefit `k_scale` 0.005). True lambda 0: + +| | original | weight 1 | weight 1 + tight k prior | +|---|---|---|---| +| k offset, `single` | -0.015 | -0.007 | -0.0004 | +| k offset, mixture (matched prior) | +0.062 | +0.080 | +0.083 | +| lambda, measured prior (0.357 +/- 0.05) | 0.55 | 0.47 | 0.45 | +| bulk theta RMSE, mixture vs `single` | 0.267 vs 0.219 | 0.247 vs 0.227 | 0.261 vs 0.230 | + +The prior fixed `single`; the mixture drifted ~17 prior SDs past it. Two +further endpoint checks were inconclusive or negative: the ELBO at the two +solutions ([`diagnosis/diag_elbo.py`](diagnosis/diag_elbo.py)) and the +population arrays the mixture looks co-residents up in, which match each +genotype's own values exactly +([`diagnosis/diag_population.py`](diagnosis/diag_population.py)). + +## Controls (grid_controls.yaml, 2026-09-25) + +Lambda-0 simulation, anchored settings. All three were still improving at +the stop. + +| run | k offset | fitted lambda | final loss | +|---|---|---|---| +| mixture, MAP | +0.0003 | 0.0047 | 6.5e4 | +| `single`, MAP | -0.0013 | | 6.2e4 | +| mixture, lambda pinned ~1e-6, SVI | +0.016 | 1e-6 | 1.7e5 | +| mixture, matched prior, SVI (anchored grid) | +0.083 | 0.004 | 1.8e5 | + +Without SVI's guide draws the mixture lands where `single` does; MAP also +reaches much lower loss. The pinned-lambda SVI fit drifts less but still +drifts. + +## Review: the fits never converged (2026-09-25) + +An independent review +([`../congression-calibration-convergence/`](../congression-calibration-convergence/README.md)) +found that none of the 3.5 fits converged, `single` included, and it +supersedes the endpoint diagnoses above. Verified here: + +- The stop rule (`RunInference._update_loss_deque`) divides the loss change + by the improvement since the start of SVI, whose loss is ~500 times the + final loss. Runs stop while the loss is still falling: run 0002 of the + anchored grid went 5.5e5, 3.6e5, 2.5e5, 1.9e5 over epochs 6000-9000 and + stopped at 9234. "SVI run converged" in the logs did not mean converged; + the diagnoses above took it at face value. +- The pre-MAP warm-up's step size decays to 1e-6 within its own 1000 + epochs, so SVI starts far from the mode with prior-width guide scales. +- Epoch checkpoints show `single` holding k at the truth while the + mixture's k jumps early (to +0.12 near epoch 4000, with nu ~1.3) and + returns slowly; it was cut off mid-return. The controls agree: under MAP + the mixture matches `single`. +- The simulated co-resident pool is 39% wt (the library enumerator adds a + wt entry per non-degenerate codon); being checked separately. + +What stands from the earlier sections: the read-count floor bias (0 reads ++1.26 ln) and the binding weight's dominance of the objective, as facts about +the data and the objective. Their effect on converged fits is open. + +## Next: resume to convergence (resume.srun) + +Route 1 of the review: resume anchored runs 0001 (`single`), 0002 (mixture, +lambda 0) and 0005 (mixture, lambda 1) from their checkpoints, in copies +(`_resumed/`), with the default max_num_epochs, then trace them with +`../congression-calibration-convergence/trace_checkpoints.py`. If the +mixture's k returns to the truth, the transient explanation is confirmed. +Fixing the stop rule and the warm-up is a separate piece of work (general +to `tfs-fit-model`). diff --git a/planning/studies/congression-calibration/resume.srun b/planning/studies/congression-calibration/resume.srun new file mode 100644 index 00000000..4be1cc0b --- /dev/null +++ b/planning/studies/congression-calibration/resume.srun @@ -0,0 +1,72 @@ +#!/bin/bash -l +#SBATCH --account=harmslab +#SBATCH --job-name=cong_resume +#SBATCH --output=resume_%j.out +#SBATCH --error=resume_%j.err +#SBATCH --partition=gpu +#SBATCH --time=00-02:00:00 +#SBATCH --nodes=1 +#SBATCH --cpus-per-task=8 +#SBATCH --gpus=1 +#SBATCH --ntasks-per-node=1 + +# Resume one finished grid run to real convergence, in a copy of its +# directory (step 3.5 convergence check; see +# planning/studies/congression-calibration-convergence/README.md, route 1). +# +# sbatch resume.srun +# e.g. sbatch resume.srun congression_calibration_anchor run_0002 +# +# The copy goes to _resumed/. Resuming overwrites +# tfs_fit_model_checkpoint.pkl and tfs_fit_model_losses.txt, hence the copy. +# A resumed fit re-bases the stop rule on its own improvement, so it will +# probably run the full default max_num_epochs (100,000; keep the default, +# which also sets the step-size decay horizon). + +# Swap lines if on cluster (module load) or local (XLA_FLAGS to use CPU) +module load cuda/12.4.1 +#export XLA_FLAGS="--xla_force_host_platform_device_count=8" + +set -e + +GRID_DIR="${1%/}" +RUN_PREFIX="${2}" +if [[ -z "${GRID_DIR}" || -z "${RUN_PREFIX}" ]]; then + echo "Usage: sbatch resume.srun " + exit 1 +fi + +SRC=$(ls -d "${GRID_DIR}/${RUN_PREFIX}"_* | head -1) +DEST="${GRID_DIR}_resumed/$(basename "${SRC}")" +mkdir -p "${GRID_DIR}_resumed" +rsync -a --exclude '*.h5' --exclude 'summary/' "${SRC}/" "${DEST}/" +cd "${DEST}" + +SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") +METHOD=$(grep -o '^ANALYSIS_METHOD="[a-z]*"' run.srun | cut -d'"' -f2) +METHOD=${METHOD:-svi} + +echo ">>> Resume fit (${METHOD}) from ${SRC}" +tfs-fit-model tfs_configure_config.yaml \ + --seed "${SEED}" \ + --analysis_method "${METHOD}" \ + --checkpoint_file tfs_fit_model_checkpoint.pkl \ + --convergence_tolerance 0.0001 + +echo ">>> Sample posterior" +tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl + +echo ">>> Extract parameters" +tfs-extract-params tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict theta" +tfs-predict-theta tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict growth" +tfs-predict-growth tfs_configure_config.yaml tfs_posterior.h5 \ + --num_marginal_samples=500 + +echo ">>> Summarize fit" +tfs-summarize-fit . + +echo ">>> Done" From bff2c51ad4090e6cccdd3081d3910dc313fc6311 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 11:46:07 -0700 Subject: [PATCH 033/208] Count only designed codons as library sites LibraryManager._prepare_indexes indexed every block in a tile as a site. A non-degenerate codon's only "variant" is its wt codon, so each one added a wt copy to every single-mutant sub-library, and each pairing with a degenerate codon added a full single-mutant expansion to the double-mutant sub-libraries. Out-of-frame flanks did the same. In the congression-calibration study config (1 NNT codon of 31 in tile 1, 2 of 37 in tile 2) this made wt 39% of the co-resident pool, against 1.2% in the real, fully degenerate design. A site is now a codon whose designed sequence differs from wt (a degenerate or explicit mutant codon). A tile with no sites is an error. get_libraries warns when the design encodes no wt at all (no site encodes the wt amino acid and no spiked sequence is wt), since wt is then not an expected genotype; that can be a real design, but it is usually a mistake. Effects: fully degenerate tiles (the real design, examples/process_raw, examples/simulate, examples/simulate-empirical) enumerate exactly as before. Partially degenerate configs change: the study config goes from 46/67/3082 sequences (30/36/1080 wt) to 16/32/512 (0/1/0 wt), and wt's co-resident share from 0.39 to 0.003. The simulator's transformation draws, tfs-report-cfu0, and tfs-configure-model's library snapshot (pool_fraction, bulk_fraction, hence co-resident sets) follow, so sims and fits built from partially degenerate configs must be regenerated. Genotype names are unchanged. Verification: new tests pin the site rule, partial and full enumeration counts, explicit-mutant and flank handling, wt pool_fraction, and the no-wt warning; they fail on the old code (except the fully degenerate case) and pass now. Full unit suite: 4766 passed, 15 skipped. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 26 ++++ src/tfscreen/genetics/library_manager.py | 42 +++++- .../tfscreen/genetics/test_library_manager.py | 140 +++++++++++++++++- 3 files changed, 198 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f4ad06d..3c6e1f76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -202,6 +202,32 @@ fall into two kinds: ### Fixed +- **Library enumeration counted every codon of a tile as a site, flooding + partially degenerate libraries with wt.** `LibraryManager._prepare_indexes` + (`genetics/library_manager.py`) indexed every block in a tile, so each + non-degenerate codon (and each out-of-frame flank) added one wt copy to every + single-mutant sub-library, and each such codon paired with a degenerate one + added a full single-mutant expansion to the double-mutant sub-libraries. A + site is now a codon whose designed sequence differs from wt (a degenerate or + explicit mutant codon). Fully degenerate tiles, including the real design and + `examples/process_raw`/`examples/simulate`, enumerate exactly as before. + Partially degenerate ones change a lot: in + `planning/studies/congression-calibration/simulate_config.yaml`, `single-1` + goes from 46 sequences (30 wt) to 16 (0 wt), `single-2` from 67 (36 wt) to + 32 (1 wt), and `double-1-2` from 3082 (1080 wt) to 512 (0 wt), and wt's share + of the co-resident pool drops from 0.39 to 0.003 (0.59 to 0.015 for + `examples/simulate-and-analyze`). Everything built on the enumeration moves + with it for such libraries: the simulator's transformation draws, + `tfs-report-cfu0`, and `tfs-configure-model`'s library snapshot + (`pool_fraction`, `bulk_fraction`) and hence the fit's co-resident sets. + Simulations and fits made from partially degenerate configs should be + regenerated. Genotype names are unchanged. `tfs-process-fastq` no longer + expects the exact wt DNA sequence unless a site's expansion or a spiked + sequence contains it (it used to come from the non-degenerate codons). A + tile with no + site is now an error, and a design that encodes no wt at all (no site's + codon encodes the wt amino acid and no spiked sequence is wt) warns, since wt + is then not an expected genotype. - **`tfs-setup-sim-grid` grids could not be moved, and nested file paths were not resolved.** Each run's `tfs_sim_config.yaml` and rendered template referred to input files by a path relative to their original location, so diff --git a/src/tfscreen/genetics/library_manager.py b/src/tfscreen/genetics/library_manager.py index 6d925563..cbddab48 100644 --- a/src/tfscreen/genetics/library_manager.py +++ b/src/tfscreen/genetics/library_manager.py @@ -20,6 +20,8 @@ from typing import Iterable, Set, Dict, Union, Tuple, List +import warnings + def _check_char(some_str: str, name: str, @@ -508,18 +510,35 @@ def _prepare_indexes(self): self.indexers : dict[str, list[int]] A dictionary mapping each tile identifier (e.g., '1') to a - list of the integer indices where that tile's blocks appear in - the main block lists (`wt_blocks`, `mut_blocks`). + list of the integer indices of that tile's sites in the main + block lists (`wt_blocks`, `mut_blocks`). A site is a codon block + whose designed sequence differs from wt: a degenerate codon or + an explicit mutant codon. Non-degenerate codons and out-of-frame + flanks are part of the tile but are not sites. Counting them + would add one wt copy per such codon to every single-mutant + sub-library (and a full single-mutant expansion per pair to the + double-mutant ones), inflating wt's share of the pool. self.residues : list[str] A list of strings, where each string is the amino acid residue number corresponding to each block. This is offset by `self.first_amplicon_residue`. + + Raises + ------ + ValueError + If a tile has no sites (no codon differs from wt). """ self.indexers = {} for lib in self.libraries_seen: self.indexers[lib] = [i for i in range(len(self.lib_lookup)) - if self.lib_lookup[i] == lib] + if self.lib_lookup[i] == lib + and self.mut_blocks[i] != self.wt_blocks[i]] + if len(self.indexers[lib]) == 0: + raise ValueError( + f"Tile '{lib}' has no library sites: none of its codons " + f"differ from wt in degen_sites." + ) self.residues = [f"{i + self.first_amplicon_residue}" for i in range(len(self.wt_blocks))] @@ -596,8 +615,9 @@ def _get_singles(self, target_lib: str) -> Tuple[List[str], List[str]]: This method relies on pre-computed attributes: `self.indexers`, `self.wt_blocks`, and `self.mut_blocks`. It calls the helper method `self._convert_to_aa` for the final translation step. - The wild-type sequence will be present in the output list once for - each mutable position in the tile. + The wild-type sequence is present in the output once for each site + whose expansion includes the wt codon (e.g. GCT at an NNT site). + Codons that are not sites (see `_prepare_indexes`) contribute nothing. """ @@ -806,6 +826,18 @@ def get_libraries(self) -> Tuple[Dict[str, List[str]], Dict[str, List[str]]]: all_lib_seqs["spiked"] = lib_seqs all_aa_muts["spiked"] = aa_muts + # wt is only in the library if some site's expansion encodes the wt + # amino acid or a spiked sequence is wt. A design can legitimately + # lack it, but it is more often a mistake, so say so. + if not any(aa == "" for muts in all_aa_muts.values() for aa in muts): + warnings.warn( + "The library design encodes no wildtype sequence: no library " + "site's degenerate codon encodes the wt amino acid and no " + "spiked sequence is wt. wt will not be an expected genotype.", + UserWarning, + stacklevel=2, + ) + return all_lib_seqs, all_aa_muts diff --git a/tests/tfscreen/genetics/test_library_manager.py b/tests/tfscreen/genetics/test_library_manager.py index 73d0b0f0..a09fe2ac 100644 --- a/tests/tfscreen/genetics/test_library_manager.py +++ b/tests/tfscreen/genetics/test_library_manager.py @@ -439,8 +439,10 @@ def test_prepare_indexes(): lm.libraries_seen = {'1', '2'} lm.lib_lookup = ['.', '1', '.', '2', '2', '.', '1'] lm.first_amplicon_residue = 42 - # The contents of wt_blocks don't matter, only its length - lm.wt_blocks = [[] for _ in range(len(lm.lib_lookup))] + # Tile blocks are sites only where mut_blocks differs from wt_blocks + lm.wt_blocks = [['a'], ['gct'], ['c'], ['gat'], ['cgt'], ['g'], ['aaa']] + lm.mut_blocks = [['a'], ['gct', 'gat'], ['c'], ['gat', 'gct'], ['cgt', 'cct'], + ['g'], ['tta']] # 2. Call the method under test lm._prepare_indexes() @@ -814,8 +816,9 @@ def test_get_libraries_dispatcher(mock_get_singles, # should cause to call _get_spiked lm.run_config = {"spiked_seqs":"spike_call"} - # 3. Call the method under test - dna_libs, aa_libs = lm.get_libraries() + # 3. Call the method under test (the mocked genotypes include no wt) + with pytest.warns(UserWarning, match="no wildtype sequence"): + dna_libs, aa_libs = lm.get_libraries() # 4. Assert that each helper was called correctly mock_get_singles.assert_called_once_with('1') @@ -837,4 +840,131 @@ def test_get_libraries_dispatcher(mock_get_singles, "spiked": ["spiked_aa"] } assert dna_libs == expected_dna - assert aa_libs == expected_aa \ No newline at end of file + assert aa_libs == expected_aa + +def test_prepare_indexes_skips_non_site_blocks(): + """ + Tile blocks identical to wt (non-degenerate codons, flanks) are not sites. + """ + lm = LibraryManager.__new__(LibraryManager) + lm.libraries_seen = {'1'} + lm.lib_lookup = ['.', '1', '1', '1', '1'] + lm.first_amplicon_residue = 1 + lm.wt_blocks = [['a'], ['tg'], ['gct'], ['aaa'], ['c']] + lm.mut_blocks = [['a'], ['tg'], ['gct', 'gat'], ['aaa'], ['c']] + + lm._prepare_indexes() + + assert lm.indexers == {'1': [2]} + + +def test_prepare_indexes_tile_without_sites(): + """A tile with no codon differing from wt is a config error.""" + lm = LibraryManager.__new__(LibraryManager) + lm.libraries_seen = {'1'} + lm.lib_lookup = ['.', '1'] + lm.first_amplicon_residue = 1 + lm.wt_blocks = [['a'], ['gct']] + lm.mut_blocks = [['a'], ['gct']] + + with pytest.raises(ValueError, match="no library sites"): + lm._prepare_indexes() + + +# ---------------------------------------------------------------------------- +# Library enumeration end to end: which codons count as sites +# ---------------------------------------------------------------------------- + +# wt: atg gct aaa | gat cgt -> M A K | D R (residues 10-14) +# tile 1 = codons 10-12, NNT at A11 only (GCT is an NNT codon: 1 wt entry) +# tile 2 = codons 13-14, NNT at D13 only (GAT is an NNT codon: 1 wt entry) +@pytest.fixture +def partial_tile_config() -> dict: + return { + "reading_frame": 0, + "first_amplicon_residue": 10, + "wt_seq": "atggctaaagatcgt", + "degen_sites": "...nnt...nnt...", + "tiles": "111111111222222", + "tile_combos": ["single-1", "single-2", "double-1-2"], + } + + +def _origin_counts(config): + """Total and wt degeneracy per library origin.""" + df = LibraryManager(config).build_library_df() + df["library_origin"] = df["library_origin"].astype(str) + df["genotype"] = df["genotype"].astype(str) + total = df.groupby("library_origin")["degeneracy"].sum().to_dict() + wt = (df[df["genotype"] == "wt"] + .set_index("library_origin")["degeneracy"].to_dict()) + return total, wt + + +def test_enumeration_partial_tiles_count_only_sites(partial_tile_config): + total, wt = _origin_counts(partial_tile_config) + assert total == {"single-1": 16, "single-2": 16, "double-1-2": 256} + assert wt == {"single-1": 1, "single-2": 1, "double-1-2": 1} + + +def test_enumeration_fully_degenerate_tiles(partial_tile_config): + partial_tile_config["degen_sites"] = "nntnntnntnntnnt" + total, wt = _origin_counts(partial_tile_config) + # 3 and 2 NNT sites; inter-tile doubles: 3 * 2 site pairs * 16 * 16 + assert total == {"single-1": 48, "single-2": 32, "double-1-2": 1536} + # wt codons that are NNT: gct (A11), gat (D13), cgt (R14); atg/aaa are not + assert wt == {"single-1": 1, "single-2": 2, "double-1-2": 2} + + +def test_enumeration_explicit_mutant_codon_is_a_site(partial_tile_config): + partial_tile_config["degen_sites"] = "...gat...nnt..." + partial_tile_config["tile_combos"] = ["single-1"] + # The only designed sequence is A11D, so the library has no wt + with pytest.warns(UserWarning, match="no wildtype sequence"): + df = LibraryManager(partial_tile_config).build_library_df() + assert list(df["genotype"].astype(str)) == ["A11D"] + assert list(df["degeneracy"]) == [1] + + +def test_enumeration_flank_is_not_a_site(partial_tile_config): + # tile 1 starts one base into codon 10, leaving a 2-base left flank + partial_tile_config["tiles"] = ".11111111222222" + partial_tile_config["tile_combos"] = ["single-1"] + total, wt = _origin_counts(partial_tile_config) + assert total == {"single-1": 16} + assert wt == {"single-1": 1} + + +def test_enumeration_library_composition_wt_share(partial_tile_config): + from tfscreen.genetics.library_design import library_composition_table + + partial_tile_config["library_mixture"] = {"single-1": 1, "single-2": 1, + "double-1-2": 1} + comp = library_composition_table(partial_tile_config) + wt = comp.set_index("genotype").loc["wt"] + assert wt["pool_fraction"] == pytest.approx((1/16 + 1/16 + 1/256) / 3) + assert wt["bulk_fraction"] == pytest.approx(1.0) + + +def test_enumeration_warns_without_wt(partial_tile_config): + # atg (M10) and aaa (K12) are not NNT codons, so no site encodes wt + partial_tile_config["degen_sites"] = "nnt...nnt......" + partial_tile_config["tiles"] = "111111111......" + partial_tile_config["tile_combos"] = ["single-1"] + with pytest.warns(UserWarning, match="no wildtype sequence"): + df = LibraryManager(partial_tile_config).build_library_df() + assert "wt" not in set(df["genotype"].astype(str)) + + +def test_enumeration_wt_spike_suppresses_warning(partial_tile_config): + import warnings + + partial_tile_config["degen_sites"] = "nnt...nnt......" + partial_tile_config["tiles"] = "111111111......" + partial_tile_config["tile_combos"] = ["single-1"] + partial_tile_config["spiked_seqs"] = ["..............."] + with warnings.catch_warnings(): + warnings.simplefilter("error") + df = LibraryManager(partial_tile_config).build_library_df() + wt = df[df["genotype"].astype(str) == "wt"] + assert list(wt["library_origin"].astype(str)) == ["spiked"] From 5bf5b786b3736a76fc8d52588be4ee9d7023562a Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 13:33:51 -0700 Subject: [PATCH 034/208] Stop SVI/MAP on noise-referenced convergence, cut step size on stalls The stop rule divided the loss change by the improvement since the start of SVI. That start-up loss was ~500x the final loss, so step-3.5 fits stopped (and printed "converged") while still falling 20-30% per 1000 epochs, and resumed runs never stopped. The step size decayed over max_num_epochs, collapsing the pre-MAP within its 1000 epochs, and the pre-MAP result never reached the component guide (no name matched). Optimization now runs in windows of optimizer steps. The loss is improving if a line through 20 block medians drops by more than 3 standard errors; each parameter's trend is measured in posterior SDs (prior SDs for MAP, log units for positive parameters) beyond noise and step-size resolution. After `patience` windows without loss improvement the step size is cut 10x; at the floor, `patience` windows with no improvement and no moving parameter end the run. Checkpoints carry the step size and monitor state; each window is recorded in {out_prefix}_convergence.csv. MAP, the pre-MAP and the prefit now start from the configured guesses; SVI starts from the pre-MAP solution via the {site}_loc(s) convention, with guide scales capped at 0.1. Removes --convergence_tolerance, --convergence_window and --convergence_check_interval; adds --convergence_window_steps, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size_cut. Verified on synthetic traces (flat, skewed and heavy-tailed noise, two-phase, slow tails, resume), a recorded real-data trace, a toy model, and smoke-data configure -> prefit -> fit runs to convergence. Unit (--runslow) and smoke suites pass. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 60 ++ CLAUDE.md | 18 +- docs/source/analysis.rst | 52 +- examples/simulate-and-analyze/run.sh | 3 +- examples/tfmodel/run.srun | 8 +- src/tfscreen/tfmodel/inference/convergence.py | 400 +++++++++++ .../tfmodel/inference/initialization.py | 281 ++++++++ .../tfmodel/inference/run_inference.py | 676 ++++++++++++++---- src/tfscreen/tfmodel/scripts/fit_model_cli.py | 388 +++++----- .../tfmodel/scripts/prefit_calibration_cli.py | 96 +-- .../fixtures/generate_reference_posteriors.py | 1 - tests/smoke-tests/test_convergence_smoke.py | 112 +++ .../test_prefit_calibration_smoke.py | 3 +- .../loss_traces/real_svi_200k_genotypes.npy | Bin 0 -> 119232 bytes .../loss_traces/sim_svi_anchored_run0002.npy | Bin 0 -> 33152 bytes .../tfmodel/inference/test_convergence.py | 411 +++++++++++ .../tfmodel/inference/test_guide_selection.py | 1 - .../tfmodel/inference/test_initialization.py | 158 ++++ .../tfmodel/inference/test_run_inference.py | 479 +------------ .../inference/test_run_optimization.py | 400 +++++++++++ .../tfmodel/scripts/test_fit_model_cli.py | 98 ++- .../tfmodel/scripts/test_fit_model_helpers.py | 32 +- .../scripts/test_prefit_calibration_cli.py | 29 +- 23 files changed, 2780 insertions(+), 926 deletions(-) create mode 100644 src/tfscreen/tfmodel/inference/convergence.py create mode 100644 src/tfscreen/tfmodel/inference/initialization.py create mode 100644 tests/smoke-tests/test_convergence_smoke.py create mode 100644 tests/tfscreen/tfmodel/inference/loss_traces/real_svi_200k_genotypes.npy create mode 100644 tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_anchored_run0002.npy create mode 100644 tests/tfscreen/tfmodel/inference/test_convergence.py create mode 100644 tests/tfscreen/tfmodel/inference/test_initialization.py create mode 100644 tests/tfscreen/tfmodel/inference/test_run_optimization.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f4ad06d..6673f5d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -114,6 +114,61 @@ fall into two kinds: ### Changed +- **Breaking: convergence and step size in `tfs-fit-model` and + `tfs-prefit-calibration`.** The stop rule divided the window-to-window loss + change by the improvement since the start of the run. On the step-3.5 + simulations the start-up loss was ~500 times the final loss, so fits stopped + (and printed "converged") while the loss was still falling 20-30% per 1000 + epochs; after a resume the same rule effectively never fired. The rule + before that (change relative to the loss itself) never fired on a noisy + ELBO. Both measured against an arbitrary scale instead of the loss's noise. + - Optimization now runs in windows of `--convergence_window_steps` optimizer + steps (default 2000, at least 10 epochs). A window's loss is *improving* + if a line through 20 block medians drops by more than `--convergence_z` + (3) standard errors and more than `--loss_rtol` (1e-6) of the loss. Each + parameter's trend is measured in posterior SDs (guide scale), prior SDs + (MAP) or log units (positive parameters), beyond noise and the step size's + resolution; it is *moving* above `--param_tolerance` (0.05). See + `inference/convergence.py`. + - The step size is now cut by `--adam_step_size_cut` (0.1) after + `--patience` (3) windows without loss improvement, down to + `--adam_final_step_size`. This replaces the exponential decay over + `max_num_epochs`, which collapsed the pre-MAP's step size within its own + 1000 epochs and made resumes depend on `max_num_epochs`. At the final step + size, `--patience` windows with neither loss improvement nor parameter + movement end the run. `--max_num_epochs` is only a cap, and a run that + reaches it says it has not converged and names the parameter still + moving. + - Removed flags: `--convergence_tolerance`, `--convergence_window` (replaced + by `--convergence_window_steps`, in optimizer steps) and + `--convergence_check_interval`. `--patience` now counts windows (default + 3, was 10 checks). `--init_param_jitter` was removed from + `tfs-prefit-calibration` (it never affected the MAP). Old templates that + pass the removed flags now fail at argument parsing. + - New output `{out_prefix}_convergence.csv`, one row per window (loss, drop, + standard error, parameter moving most, step size, decision). + `{out_prefix}_losses.txt` is now `epoch,loss,step,step_size`, with the + loss the median of each block. Checkpoints record the step size and the + monitor state; a resume continues at that step size. + - `RunInference.run_optimization` takes `convergence_window_steps`, + `patience`, `convergence_z`, `loss_rtol`, `param_tolerance`, + `final_step_size` and `step_size_cut`, in place of `convergence_tolerance`, + `convergence_window` and `convergence_check_interval`. +- **SVI and MAP start where they were meant to.** AutoDelta (MAP, the SVI + pre-MAP, `tfs-prefit-calibration`) ignored the configured guesses and + started at prior medians. The component guide ignored guesses keyed by site + name, and the pre-MAP result reached it under names it does not use + (`{site}_auto_loc`), so SVI never started from the pre-MAP. Now + `RunInference.site_values` collects site values from guesses and MAP + results, MAP runs start from them, and `RunInference.component_guide_start` + maps them onto the component guide's `{site}_loc(s)` parameters + (`inference/initialization.py`). The component guide's scales now start at + most `--guide_init_scale` (default 0.1; was the prior width, 1.0), as the + numpyro autoguides do. `--pre_map_num_epoch` is now a cap for a warm-up + that stops when it converges (default 10000, was a fixed 1000). On the smoke + data SVI starts ~18 times lower in loss, converges in 40k instead of 64k + steps, and ends ~185 nats lower. + - **Breaking: congression is now an observable-level mixture (`transformation: mixture`).** The old `empirical` component replaced each bulk genotype's theta by the expected maximum over co-resident plasmids and @@ -202,6 +257,11 @@ fall into two kinds: ### Fixed +- **The SVI loss file and epoch checkpoints were numbered from the end of the + pre-MAP**, because the step counter carried over from the pre-MAP to SVI on + the same `RunInference`; the SVI `losses.txt` also lost its header. A run + started without a state now resets the counter. + - **`tfs-setup-sim-grid` grids could not be moved, and nested file paths were not resolved.** Each run's `tfs_sim_config.yaml` and rendered template referred to input files by a path relative to their original location, so diff --git a/CLAUDE.md b/CLAUDE.md index 8dc5ad5c..44498e29 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,7 +45,7 @@ tfs-process-counts # counts → ln_cfu DataFrames tfs-process-presplit # Process pre-split count files tfs-configure-model # Generate YAML config template (+ library composition snapshot) tfs-prefit-calibration # Pre-fit linking function via MAP -tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale) +tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut) tfs-fit-genotypes # Per-genotype MLE fits of the growth model (no congression correction) tfs-sample-posterior # Draw posterior samples from fitted model tfs-sample-prior # Draw prior predictive samples @@ -117,6 +117,8 @@ The hierarchical Bayesian inference engine. Key files: - **`inference/run_inference.py`** — `RunInference`: coordinates JAX/Numpyro sampling (SVI or NUTS) and MAP estimation (optax). **Guide selection:** `setup_svi(guide_type=..., guide_kwargs=..., init_values=...)` takes any name in `GUIDE_TYPES` — `component` (the guide assembled from the model components) or a numpyro autoguide from the `AUTOGUIDES` registry (snake_case of the class name, `delta` = `AutoDelta`; CamelCase class names accepted via `resolve_guide_type`). `tfs-fit-model --guide_type` exposes it for `analysis_method=svi`; an autoguide's location starts at the pre-MAP point (`init_to_value`), and `init_params` (component-guide param names) is not passed to it. Checkpoints record `guide_type`/`guide_kwargs`; `restore_svi_from_checkpoint` rebuilds that guide (legacy checkpoints → `component`) and `tfs-sample-posterior` routes `delta` → Laplace, everything else → guide sampling. `run_optimization` refuses any autoguide (AutoDelta included) when `inference/batch_safety.py` finds batch-dependent latents. Because per-genotype latents are library-sized, the `AutoContinuous` guides (incl. `auto_multivariate_normal`) are valid under mini-batching; the dense MVN just costs O(D²) memory (reported, warned above `_DENSE_GUIDE_WARN_GB`). +- **`inference/convergence.py`** — when to cut the step size and when to stop; see **Convergence and step size** below. + - **`tensors/tensor_manager.py`** — `TensorManager`: maps ragged per-genotype observations into JAX-compatible tensors. - **`generative/registry.py`** — `model_registry` dict mapping component names to module implementations. This is where all swappable components are registered. @@ -147,8 +149,22 @@ The hierarchical Bayesian inference engine. Key files: 7. A new `dk_geno` or `activity` component must accept `return_population=False` in `define_model` and `guide` and, when True, return `(tensor, population)`: the library-ordered per-genotype values from the same draw, or `None` if the latents arrived batch-sized. Build both with `generative/components/_population.py::per_genotype` (default path = the old slice-then-compute, so no extra cost when not requested). The congression mixture looks co-resident genotypes up in these by library index; `tests/tfscreen/tfmodel/generative/components/test_component_population.py` checks every registered variant. +8. Guide sites should follow the `{site}_loc(s)` / `{site}_scale(s)` naming convention (a Normal or LogNormal guide whose location/scale params are named after the site). The MAP warm-up hands its solution to the component guide through it (`inference/initialization.py`); `tests/tfscreen/tfmodel/inference/test_initialization.py::test_component_guides_follow_loc_scale_convention` fails for a new variant that does not, unless it is added to `_KNOWN_UNMAPPED` with a reason. + (This applies to `components/` categories. `generative/observe/` is not a `/` registry entry — see above.) +### Convergence and step size + +`RunInference.run_optimization` is the one optimization loop (SVI, MAP, the SVI pre-MAP warm-up, `tfs-prefit-calibration`). It runs in tumbling **windows** of `convergence_window_steps` optimizer steps (default 2000; raised to ≥ `MIN_WINDOW_EPOCHS` = 10 epochs so mini-batched genotypes are each visited several times; split into `PARAM_BLOCKS` = 8 blocks). `inference/convergence.py` holds the decisions as host-side numpy, testable on synthetic traces (`tests/tfscreen/tfmodel/inference/test_convergence.py`, including a recorded real-data and a simulated trace in `loss_traces/`). + +- **Loss test** (`loss_trend`): OLS line through the medians of 20 blocks of the window's per-step losses → drop per window ± SE. *Improving* iff `drop > z·SE` and `drop > loss_rtol·|loss|`. Judged against the loss's own noise: never against the start-up transient (the old rule's `|Δ|/(loss_start − loss_best)` stopped runs ~500× above their final loss and never stopped after a resume) nor against `|loss|` (the rule before that, which never fired on a noisy ELBO). A rising or oscillating loss is *not* improving. +- **Parameter test** (`param_drift`): each tracked param's block means (accumulated on the device inside the `lax.scan` carry — no per-step host transfer) → per-element trend over the window, in **normalizer** units (`RunInference._param_normalizer_specs`): paired guide scale for a location (`_loc`/`_locs`/`_auto_loc` ↔ `_scale`/`_scales`/`_auto_scale`; the posterior SD), derived SD for AutoContinuous `auto_loc`, prior SD for an AutoDelta location on a real site, and 1 for positive/bounded params (log/logit units, so relative). Excess = `|drift| − z·SE − floor`, where `floor = MIN_STEP_COHERENCE (0.01) · step_size · window` is the optimizer's resolution (Adam moves ~step size per step whatever the gradient; without the floor, jitter of a location whose guide scale collapsed below the step size reads as hundreds of SDs of drift). Summarized per array (max if ≤ 100 elements, else 99th percentile); *moving* iff any summary > `param_tolerance` (0.05). `scale_tril`/`cov_factor` are not tracked. +- **Decisions** (`ConvergenceMonitor.end_window`): above the floor step size, `patience` consecutive windows without loss improvement → cut (`step_size_cut`, default 0.1). **Parameters never block a cut**: some directions never settle (a horseshoe local scale's MAP drifts to 0 forever at ~no loss change) and holding the step size high for them only wastes time. At `final_step_size`, `patience` consecutive windows with neither loss improvement nor parameter movement → converged; a still-moving parameter keeps the run going and is named in the log, so a slide or degenerate direction is reported, never called converged. `max_num_epochs` is only a cap. A hierarchical MAP generally has no finite optimum (hyper-scale funnel), so MAP/pre-MAP runs often end at the cap — the honest outcome. +- **Step-size cuts** swap `svi.optim` for a new `ClippedAdam` at the smaller constant step (the optimizer state is step-size independent) and re-trace the scan (a fresh closure, so no stale compiled step size). `setup_svi` records `_step_size`/`_adam_clip_norm`; a step-size *schedule* is still accepted but refuses cuts. The old `optax.exponential_decay` over `max_num_epochs` is gone (it collapsed the pre-MAP's step size within its 1000 epochs and tied resumes to `max_num_epochs`). +- **Records**: `{out_prefix}_convergence.csv` (one row per window: loss, drop ± SE, t, worst param and its excess/drift, step size, plateau count, decision); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). + +**Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (default 0.1 for the component guide, `DEFAULT_COMPONENT_INIT_SCALE`). `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. + ### Per-condition growth priors The `condition_growth` components (`linear`/`power`/`saturation`) carry a per-condition **additive baseline** (`k` for linear/power, `min` for saturation) that is only jointly identified with the shared per-genotype `dk_geno`: the growth likelihood `g = k_condition + dk_geno + A·m·θ` is invariant to `k += C, dk_geno −= C`. With only weak/rare anchors (wt's pinned `dk_geno=0`, `base_growth`) the whole system slides by a global constant `C`, inflating all condition baselines and `k_ref` and making genotypes with constrained `dk_geno` (notably wt) badly mis-fit their `ln_cfu`. The fix is to pin each condition baseline with a per-condition prior — a prior on the 4 baseline params acts at full strength, unlike the abundance-diluted genotype anchors. diff --git a/docs/source/analysis.rst b/docs/source/analysis.rst index 664f93e0..9d8c9f60 100644 --- a/docs/source/analysis.rst +++ b/docs/source/analysis.rst @@ -79,12 +79,13 @@ prefix ``tfs_prefit``): * ``tfs_prefit_checkpoint.pkl`` — optimizer checkpoint (can be passed to ``--checkpoint_file`` to resume an interrupted calibration run). * ``tfs_prefit_losses.txt`` — per-epoch loss history. +* ``tfs_prefit_convergence.csv`` — one row per convergence window (see + *Convergence* below). .. code-block:: bash tfs-prefit-calibration tfs_configure_config.yaml \ - --seed 42 \ - --convergence_tolerance 0.00001 + --seed 42 Step 3: Fit Model (``tfs-fit-model``) -------------------------------------- @@ -95,10 +96,11 @@ via ``--analysis_method``: * **map** — Maximum A Posteriori optimisation (Adam). Fast; produces a point estimate. Use ``tfs-sample-posterior`` afterwards to obtain uncertainty estimates via a Laplace approximation. -* **svi** (default) — Stochastic Variational Inference. Automatically runs a - short MAP pre-pass (``--pre_map_num_epoch``) before the full variational fit. - Produces a full approximate posterior; posterior samples are drawn after - convergence. +* **svi** (default) — Stochastic Variational Inference. First runs a MAP + warm-up (at most ``--pre_map_num_epoch`` epochs) and starts the variational + fit at its solution, with guide scales capped at ``--guide_init_scale`` + (default 0.1). Produces a full approximate posterior; posterior samples are + drawn with ``tfs-sample-posterior``. * **nuts** — No-U-Turn Sampler (exact MCMC). Slowest; most accurate. The example below matches the MAP configuration used in the example ``run.srun``: @@ -110,18 +112,48 @@ The example below matches the MAP configuration used in the example ``run.srun`` --seed 42 \ --analysis_method map \ --adam_step_size 1e-6 \ - --convergence_check_interval 100 \ - --convergence_window 50 \ + --adam_final_step_size 1e-6 \ --checkpoint_interval 100 \ --max_num_epochs 100000000 \ - --pre_map_num_epoch 100000 \ - --convergence_tolerance 0.0005 \ --patience 5 Key outputs (with default ``--out_prefix tfs_fit_model``): * ``tfs_fit_model_checkpoint.pkl`` — optimizer checkpoint; resume with ``--checkpoint_file`` * ``tfs_fit_model_params.npz`` — MAP/SVI parameter point estimates +* ``tfs_fit_model_convergence.csv`` — one row per convergence window + +Convergence +~~~~~~~~~~~ + +``tfs-fit-model`` (SVI, MAP and the SVI warm-up) and ``tfs-prefit-calibration`` +decide when to stop the same way. Optimization runs in windows of +``--convergence_window_steps`` optimizer steps (default 2000, and at least 10 +epochs). At the end of each window two questions are asked: + +* **Is the loss still improving?** A line through the medians of 20 blocks of + the window's losses gives the drop per window and its standard error. The + loss is improving if the drop is more than ``--convergence_z`` (default 3) + standard errors, and more than ``--loss_rtol`` (default 1e-6) of the loss. + The loss is judged against its own noise, so a noisy ELBO (few particles, + mini-batches) neither stops early nor runs forever. +* **Is any parameter still moving?** Each parameter's trend over the window is + measured in units of its posterior SD (the guide scale; for MAP the prior + SD, and log units for positive parameters). Movement explained by noise, or + smaller than the optimizer can resolve at the current step size, does not + count; anything left above ``--param_tolerance`` (default 0.05) does. + +After ``--patience`` (default 3) windows in a row without loss improvement, +the step size is multiplied by ``--adam_step_size_cut`` (default 0.1), down to +``--adam_final_step_size``. At that floor the run stops after ``--patience`` +windows in which the loss has not improved *and* no parameter has moved. +``--max_num_epochs`` is only a cap. A run that reaches it says so, and names +the largest remaining movement. Resuming from a checkpoint continues at the +checkpoint's step size. + +``{out_prefix}_convergence.csv`` records every window: the loss, its drop and +standard error, the parameter moving most, the step size and the decision +(``continue``, ``cut`` or ``converged``). Step 4: Sample Posterior (``tfs-sample-posterior``) ---------------------------------------------------- diff --git a/examples/simulate-and-analyze/run.sh b/examples/simulate-and-analyze/run.sh index 09ff0d9b..bcb34316 100644 --- a/examples/simulate-and-analyze/run.sh +++ b/examples/simulate-and-analyze/run.sh @@ -93,8 +93,7 @@ echo ">>> Fit model" tfs-fit-model \ tfs_configure_config.yaml \ --seed "${seed}" \ - --analysis_method svi \ - --convergence_tolerance 0.0001 + --analysis_method svi # --------------------------------------------------------------------------- # 5. Sample posterior diff --git a/examples/tfmodel/run.srun b/examples/tfmodel/run.srun index ea86e6e5..0739c7f4 100644 --- a/examples/tfmodel/run.srun +++ b/examples/tfmodel/run.srun @@ -38,8 +38,7 @@ PREDICT_GENOTYPES_FILE="{{ predict_genotypes_file }}" echo ">>> Prefit calibration" tfs-prefit-calibration tfs_configure_config.yaml \ - --seed ${RUN_SEED} \ - --convergence_tolerance 0.00001 + --seed ${RUN_SEED} # --------------------------------------------------------------------------- # MAP fit @@ -51,12 +50,9 @@ tfs-fit-model \ --seed ${RUN_SEED} \ --analysis_method map \ --adam_step_size 1e-6 \ - --convergence_check_interval 100 \ - --convergence_window 50 \ + --adam_final_step_size 1e-6 \ --checkpoint_interval 100 \ --max_num_epochs 100000000 \ - --pre_map_num_epoch 100000 \ - --convergence_tolerance 0.0005 \ --patience 5 # --------------------------------------------------------------------------- diff --git a/src/tfscreen/tfmodel/inference/convergence.py b/src/tfscreen/tfmodel/inference/convergence.py new file mode 100644 index 00000000..418e9543 --- /dev/null +++ b/src/tfscreen/tfmodel/inference/convergence.py @@ -0,0 +1,400 @@ +""" +Convergence detection for the SVI/MAP optimization loop. + +Optimization runs in tumbling *windows* of ``window_steps`` optimizer steps. +At the end of each window two tests decide whether the fit is still moving: + +**Loss test.** The window's per-step losses are split into +``loss_blocks`` blocks. A least-squares line through the block medians gives +the decrease in loss projected over one window (``drop``) and its standard +error (``drop_se``, from the scatter of the block medians about the line). +The loss is *improving* when ``drop`` exceeds both ``z * drop_se`` (the +decrease is larger than the loss's own noise) and ``loss_rtol * |level|`` (a +floor for deterministic losses, whose noise is ~0). A loss that rises, or +oscillates without net decrease, is not improving: that is the signature of +a step size too large for the current stage, which a cut fixes. Block +medians keep the right-skewed noise of a stochastic ELBO from biasing the +trend, and blocks of many steps make the standard error robust to +short-range autocorrelation. + +**Parameter test.** Each tracked parameter is averaged over ``param_blocks`` +blocks of the window. The same line fit through the block means gives each +element's projected movement over one window and its standard error, both +divided by a *normalizer*: the parameter's posterior SD (its guide scale) for +a variational location, the prior SD for a MAP location, and 1 for a +parameter already in log or logit units (positive or bounded parameters, so +the movement is relative). An element's *excess* is the part of its movement +not explained by noise or by the optimizer's resolution, +``max(|drift| - z * se - floor, 0)``, where ``floor`` is +``MIN_STEP_COHERENCE * step_size * window_steps`` (normalized the same way). +Adam moves a parameter by about the step size per step whatever the gradient's +magnitude, so a parameter still descending covers a sizeable fraction of +``step_size * window_steps`` per window, while one jittering about its optimum +covers only a few step sizes; the floor keeps that jitter -- which can be many +posterior SDs when a guide scale is smaller than the step size -- from reading +as drift. Movement below the floor means a gradient signal-to-noise ratio +under ``MIN_STEP_COHERENCE``, which the current step size cannot resolve. A +parameter array is summarized by its maximum excess (small arrays) or a high +quantile of it (per-genotype arrays, where a handful of elements always sit in +the noise tail). The parameters are *moving* when any summary exceeds +``param_tolerance``. + +**Decisions.** The two tests play different roles: + +- A window in which the loss is not improving is a *stall*. After + ``patience`` consecutive stalls the step size is cut (by ``step_size_cut``, + floored at ``final_step_size``), whatever the parameters are doing. This is + the usual reduce-on-plateau rule: the loss alone decides when the current + step size has done what it can. Parameters do not block a cut because some + directions never settle under a given objective (a MAP of a horseshoe local + scale drifts toward zero forever, at almost no change in loss), and holding + the step size high for them helps nothing. +- Once the step size is at its floor, a window that is a stall *and* has no + moving parameter is a *plateau*, and ``patience`` consecutive plateaus are + convergence. A parameter that is still moving therefore keeps the run + going (and is named in the log) until it stops or ``max_num_epochs`` is + reached, so a slow slide or a degenerate direction is reported, never + mistaken for convergence. + +Because a parameter's systematic drift and its step-to-step jitter both scale +with the step size, the significance part of the tests does not depend on the +step size; each cut lowers the noise floor so the next stage resolves the +estimates more finely. + +Everything here is host-side numpy (``param_drift`` also works on JAX arrays), +so the logic can be tested on synthetic traces without a model. +""" + +import numpy as np + +# Movement slower than this fraction of the step size per step is below the +# optimizer's resolution at that step size (see the module docstring). +MIN_STEP_COHERENCE = 0.01 + +# Arrays with at most this many elements are summarized by their maximum +# excess; larger (per-genotype, per-mutation) arrays by a quantile. +SMALL_ARRAY_SIZE = 100 + +# Convergence decisions returned by ConvergenceMonitor.end_window. +CONTINUE = "continue" +CUT = "cut" +CONVERGED = "converged" + + +def _line_fit(y, t): + """ + Least-squares slope of ``y`` against ``t`` along axis 0, and its SE. + + Parameters + ---------- + y : array, shape (n, ...) + Values at each of ``n`` time points. + t : array, shape (n,) + Time points. + + Returns + ------- + slope, se : arrays with the trailing shape of ``y`` + """ + + n = t.shape[0] + tc = t - t.mean() + sxx = float(np.sum(tc * tc)) + tc = tc.reshape((n,) + (1,) * (y.ndim - 1)) + ybar = y.mean(axis=0) + slope = (tc * (y - ybar)).sum(axis=0) / sxx + resid = y - ybar - slope * tc + s2 = (resid * resid).sum(axis=0) / (n - 2) + se = (s2 / sxx) ** 0.5 + return slope, se + + +def loss_trend(losses, num_blocks=20): + """ + Projected change in loss over a window, with its standard error. + + Parameters + ---------- + losses : 1-D array + Per-step losses of one window, in step order. + num_blocks : int, optional + Number of blocks the window is split into (default 20). Trailing + steps that do not fill a block are dropped. + + Returns + ------- + dict + ``level`` (median of the last block), ``drop`` (loss decrease over the + window predicted by the fitted line; positive when the loss falls), + ``drop_se`` and ``t`` (``drop / drop_se``; ``inf`` when the block + medians lie exactly on the line). + """ + + losses = np.asarray(losses, dtype=float).ravel() + num_blocks = min(num_blocks, losses.size) + if num_blocks < 3: + raise ValueError( + f"loss_trend needs at least 3 losses (got {losses.size})." + ) + block = losses.size // num_blocks + used = losses[losses.size - num_blocks * block:] + medians = np.median(used.reshape(num_blocks, block), axis=1) + centers = (np.arange(num_blocks) + 0.5) * block + + slope, se = _line_fit(medians, centers) + width = float(used.size) + drop = -float(slope) * width + drop_se = float(se) * width + if drop_se > 0: + t = drop / drop_se + else: + t = np.inf if drop != 0 else 0.0 + + return {"level": float(medians[-1]), + "drop": drop, + "drop_se": drop_se, + "t": float(t)} + + +def param_drift(block_means, block_centers, window_steps, normalizer, z, + floor=0.0): + """ + Per-element movement of a parameter over one window, in normalizer units. + + Parameters + ---------- + block_means : array, shape (num_blocks, ...) + The parameter averaged over each block of the window (unconstrained + space). + block_centers : array, shape (num_blocks,) + Step at the center of each block. + window_steps : int + Window length; the fitted slope is projected over this many steps. + normalizer : array or float + Divides the movement: posterior SD, prior SD, or 1. Broadcast against + the parameter's shape. + z : float + Number of standard errors of movement attributed to noise. + floor : float, optional + Movement (in parameter units, before normalizing) attributed to the + optimizer's resolution (default 0). + + Returns + ------- + drift, excess : arrays with the parameter's shape + ``drift`` is the projected movement (signed); ``excess`` is + ``max(|drift| - z * se - floor, 0)``, all in normalizer units. + """ + + # Works for numpy and jax arrays alike. + xp = np + if type(block_means).__module__.startswith("jax"): + import jax.numpy as xp + + t = np.asarray(block_centers, dtype=float) + slope, se = _line_fit(block_means, t) + drift = slope * window_steps / normalizer + se = se * window_steps / normalizer + excess = xp.maximum(xp.abs(drift) - z * se - floor / normalizer, 0.0) + return drift, excess + + +def summarize_excess(excess, quantile=0.99): + """ + One number per parameter array: max excess for small arrays, else a + quantile. Non-finite elements count as infinitely moving. + """ + + excess = np.asarray(excess, dtype=float).ravel() + if excess.size == 0: + return 0.0 + excess = np.where(np.isfinite(excess), excess, np.inf) + if excess.size <= SMALL_ARRAY_SIZE: + return float(np.max(excess)) + return float(np.quantile(excess, quantile)) + + +class ConvergenceMonitor: + """ + Decide, window by window, whether to continue, cut the step size, or stop. + + Parameters + ---------- + step_size : float + Current (initial) optimizer step size. + final_step_size : float or None, optional + Floor for the step size. None, or a value >= ``step_size``, disables + cuts: the run is at its floor from the start. + step_size_cut : float, optional + Factor applied to the step size at each cut (default 0.1). + patience : int, optional + Consecutive windows without loss improvement required for a cut, and + (at the floor) without loss improvement or parameter movement + required for a stop (default 3). + z : float, optional + Standard errors of change attributed to noise (default 3). + loss_rtol : float, optional + Relative floor on a meaningful loss change per window (default 1e-6). + param_tolerance : float, optional + Largest allowed parameter excess per window, in normalizer units + (default 0.05). + """ + + def __init__(self, + step_size, + final_step_size=None, + step_size_cut=0.1, + patience=3, + z=3.0, + loss_rtol=1e-6, + param_tolerance=0.05): + + if not 0 < step_size_cut < 1: + raise ValueError( + f"step_size_cut must be between 0 and 1 (got {step_size_cut})." + ) + if patience < 1: + raise ValueError(f"patience must be >= 1 (got {patience}).") + + self.step_size = float(step_size) + if final_step_size is None: + final_step_size = self.step_size + self.final_step_size = float(final_step_size) + self.step_size_cut = float(step_size_cut) + self.patience = int(patience) + self.z = float(z) + self.loss_rtol = float(loss_rtol) + self.param_tolerance = float(param_tolerance) + + self.plateau_count = 0 + self.num_cuts = 0 + self.converged = False + self.last = None + + @property + def at_floor(self): + """True when no further step-size cut is possible.""" + return self.step_size <= self.final_step_size * (1 + 1e-9) + + def loss_improving(self, stats): + """Whether a ``loss_trend`` result counts as a real improvement.""" + floor = self.loss_rtol * abs(stats["level"]) + return (stats["drop"] > self.z * stats["drop_se"] + and stats["drop"] > floor) + + def drift_floor(self, window_steps): + """Movement per window below the optimizer's resolution.""" + if not np.isfinite(self.step_size): + return 0.0 + return MIN_STEP_COHERENCE * self.step_size * window_steps + + def end_window(self, step, loss_stats, param_excess=None, param_drift=None): + """ + Record one finished window and return the decision. + + Parameters + ---------- + step : int + Optimizer step at the end of the window. + loss_stats : dict + Output of ``loss_trend`` for the window. + param_excess : dict or None, optional + ``{parameter name: summarized excess}`` (``summarize_excess``). + param_drift : dict or None, optional + ``{parameter name: summarized |drift|}``, reported only. + + Returns + ------- + str + ``CONTINUE``, ``CUT`` (the step size has been cut; the caller + must apply ``self.step_size``) or ``CONVERGED``. + """ + + param_excess = dict(param_excess or {}) + param_drift = dict(param_drift or {}) + + loss_improving = self.loss_improving(loss_stats) + + worst_param, worst_excess = None, 0.0 + for name, value in param_excess.items(): + if worst_param is None or value > worst_excess: + worst_param, worst_excess = name, value + params_moving = worst_excess > self.param_tolerance + + # Cuts follow the loss alone; the stop also needs the parameters. + at_floor = self.at_floor + if at_floor: + plateau = not (loss_improving or params_moving) + else: + plateau = not loss_improving + self.plateau_count = self.plateau_count + 1 if plateau else 0 + + decision = CONTINUE + step_size = self.step_size + if self.plateau_count >= self.patience: + if at_floor: + decision = CONVERGED + self.converged = True + else: + decision = CUT + self.step_size = max(self.step_size * self.step_size_cut, + self.final_step_size) + self.num_cuts += 1 + self.plateau_count = 0 + + self.last = { + "step": int(step), + "step_size": step_size, + "loss": loss_stats["level"], + "loss_drop": loss_stats["drop"], + "loss_drop_se": loss_stats["drop_se"], + "loss_t": loss_stats["t"], + "loss_improving": bool(loss_improving), + "worst_param": worst_param, + "worst_param_excess": float(worst_excess), + "worst_param_drift": float(param_drift.get(worst_param, np.nan)) + if worst_param is not None else np.nan, + "params_moving": bool(params_moving), + "plateau": bool(plateau), + "plateau_count": self.plateau_count, + "decision": decision, + } + return decision + + def describe(self): + """One-line summary of the last window, for logs.""" + if self.last is None: + return "no complete convergence window yet" + r = self.last + loss = (f"loss {r['loss']:.6g}, drop/window {r['loss_drop']:.4g} " + f"+/- {r['loss_drop_se']:.3g} (t={r['loss_t']:.3g})") + if r["worst_param"] is None: + params = "no parameters tracked" + else: + params = (f"largest parameter movement {r['worst_param']} " + f"(excess {r['worst_param_excess']:.3g}, " + f"drift {r['worst_param_drift']:.3g})") + return (f"step {r['step']}: {loss}; {params}; step size " + f"{r['step_size']:.3g}; plateau {r['plateau_count']}/" + f"{self.patience}; {r['decision']}") + + def state_dict(self): + """Serializable state for checkpoints.""" + return {"step_size": self.step_size, + "final_step_size": self.final_step_size, + "plateau_count": self.plateau_count, + "num_cuts": self.num_cuts, + "converged": self.converged, + "last": self.last} + + def load_state_dict(self, state): + """ + Restore the stage (step size, cuts, plateau count) from a checkpoint. + + The tolerances and floor stay as configured for the resumed run. + """ + self.step_size = float(state["step_size"]) + self.plateau_count = int(state.get("plateau_count", 0)) + self.num_cuts = int(state.get("num_cuts", 0)) + self.converged = bool(state.get("converged", False)) + self.last = state.get("last") diff --git a/src/tfscreen/tfmodel/inference/initialization.py b/src/tfscreen/tfmodel/inference/initialization.py new file mode 100644 index 00000000..db2f4176 --- /dev/null +++ b/src/tfscreen/tfmodel/inference/initialization.py @@ -0,0 +1,281 @@ +""" +Starting points for optimization: translating between site values and the +parameters of each guide. + +Three kinds of dictionary describe a point in parameter space: + +- **site values**, keyed by model sample-site name, in constrained space + (what ``init_to_value`` takes, and what most configured guesses are keyed + by); +- **AutoDelta parameters**, keyed ``{site}_auto_loc`` (a MAP point, also in + constrained space); +- **component-guide parameters**, keyed by the guide's ``pyro.param`` names. + By convention a site ``s`` guided by a Normal or LogNormal has its location + in ``s_loc``/``s_locs`` and its scale in ``s_scale``/``s_scales``. + +``site_values`` pulls site values out of any mixture of the three, and +``component_guide_init`` turns site values into component-guide parameters. +The guide map behind both is built by tracing the guide and checking that each +candidate parameter really is the location (or scale) of its site's +distribution, so a component that does not follow the convention is reported +rather than mis-initialized. +""" + +import numpy as np +import jax.numpy as jnp +import numpyro.distributions as dist +from numpyro import handlers + +_WRAPPERS = (dist.ExpandedDistribution, dist.Independent, + dist.MaskedDistribution) + +AUTO_LOC_SUFFIX = "_auto_loc" + + +def _unwrap(fn): + """Strip batch-shape wrappers (expand, to_event, mask) off a distribution.""" + while isinstance(fn, _WRAPPERS): + fn = fn.base_dist + return fn + + +def trace_model_sites(model, priors, data, substitutions=None, seed=0): + """ + Trace ``model`` once and return its latent sample sites. + + Parameters + ---------- + model : callable + Numpyro model taking ``priors=`` and ``data=``. + priors, data + Passed to the model. ``data`` should be a full (library-ordered) + batch so per-genotype sites have library shape. + substitutions : dict or None, optional + Site values to substitute while tracing. + seed : int, optional + PRNG seed for the trace. + + Returns + ------- + dict + ``{site name: numpyro trace site}`` for unobserved sample sites. + """ + + fn = handlers.seed(model, seed) + if substitutions: + fn = handlers.substitute(fn, data=substitutions) + tr = handlers.trace(fn).get_trace(priors=priors, data=data) + return {name: site for name, site in tr.items() + if site["type"] == "sample" and not site.get("is_observed", False)} + + +def _matching_param(site_name, suffixes, params, target, shape): + """Name of the param in ``params`` that equals ``target`` for this site.""" + for suffix in suffixes: + name = site_name + suffix + if name not in params: + continue + value = jnp.asarray(params[name]) + if value.shape != shape: + continue + try: + same = bool(jnp.allclose(jnp.broadcast_to(value, target.shape), + target)) + except ValueError: + same = False + if same: + return name + return None + + +def component_guide_map(guide, priors, data, seed=0): + """ + Map each guide sample site to its location and scale parameters. + + Parameters + ---------- + guide : callable + The component guide (``orchestrator.jax_model_guide``). + priors, data + Passed to the guide; ``data`` should be a full batch. + seed : int, optional + PRNG seed for the trace. + + Returns + ------- + mapping : dict + ``{site: {"kind": "normal"|"lognormal", "loc": param name, + "scale": param name or None, "shape": site shape}}``. + unmatched : list of str + Guide sample sites whose location parameter could not be identified + (not Normal/LogNormal, or not following the naming convention). + defaults : dict + ``{param name: initial value}`` for every guide param. + """ + + tr = handlers.trace(handlers.seed(guide, seed)).get_trace(priors=priors, + data=data) + params = {name: site["value"] for name, site in tr.items() + if site["type"] == "param"} + + mapping = {} + unmatched = [] + for name, site in tr.items(): + if site["type"] != "sample" or site.get("is_observed", False): + continue + fn = _unwrap(site["fn"]) + if isinstance(fn, dist.LogNormal): + kind = "lognormal" + elif isinstance(fn, dist.Normal): + kind = "normal" + else: + unmatched.append(name) + continue + + shape = jnp.shape(site["value"]) + loc = _matching_param(name, ("_loc", "_locs"), params, + jnp.asarray(fn.loc), shape) + if loc is None: + unmatched.append(name) + continue + scale = _matching_param(name, ("_scale", "_scales"), params, + jnp.asarray(fn.scale), shape) + mapping[name] = {"kind": kind, "loc": loc, "scale": scale, + "shape": shape} + + return mapping, sorted(unmatched), params + + +def site_values(values, model_sites, guide_map=None): + """ + Collect constrained site values from a mixed-key dictionary. + + Recognized keys, in increasing priority: component-guide location params + (via ``guide_map``; a LogNormal location is exponentiated), bare site + names, and AutoDelta ``{site}_auto_loc`` params. Values that cannot be + broadcast to the site's shape are skipped. + + Parameters + ---------- + values : dict + Guesses, a MAP result, or both. + model_sites : dict + ``trace_model_sites`` output. + guide_map : dict or None, optional + ``component_guide_map`` mapping. + + Returns + ------- + dict + ``{site: array}``. + """ + + out = {} + + def _put(site, value): + shape = jnp.shape(model_sites[site]["value"]) + try: + out[site] = jnp.broadcast_to(jnp.asarray(value, dtype=float), + shape) + except ValueError: + pass + + if guide_map: + for site, entry in guide_map.items(): + if site in model_sites and entry["loc"] in values: + value = jnp.asarray(values[entry["loc"]], dtype=float) + if entry["kind"] == "lognormal": + value = jnp.exp(value) + _put(site, value) + + for key, value in values.items(): + if key in model_sites: + _put(key, value) + + for key, value in values.items(): + if key.endswith(AUTO_LOC_SUFFIX): + site = key[:-len(AUTO_LOC_SUFFIX)] + if site in model_sites: + _put(site, value) + + return out + + +def component_guide_init(values, guide_map, defaults, init_scale=None): + """ + Component-guide parameters that start at the given site values. + + Parameters + ---------- + values : dict + Constrained site values (``site_values`` output). + guide_map : dict + ``component_guide_map`` mapping. + defaults : dict + Starting param values to fall back on (the guide's own initial values, + overlaid with any param-keyed guesses). + init_scale : float or None, optional + Upper bound for every mapped scale param: each starts at + ``min(default, init_scale)``. None leaves scales at their defaults. + + Returns + ------- + params : dict + ``{param name: value}`` for mapped locations and scales. + skipped : list of str + Sites with a value that could not be used (a non-positive value for a + LogNormal site). + """ + + params = {} + skipped = [] + for site, entry in guide_map.items(): + if site in values: + value = jnp.asarray(values[site], dtype=float) + if entry["kind"] == "lognormal": + if not bool(jnp.all(value > 0)): + skipped.append(site) + value = None + else: + value = jnp.log(value) + if value is not None: + params[entry["loc"]] = jnp.broadcast_to(value, entry["shape"]) + + scale = entry["scale"] + if init_scale is not None and scale is not None and scale in defaults: + params[scale] = jnp.minimum(jnp.asarray(defaults[scale], + dtype=float), + init_scale) + + return params, sorted(skipped) + + +def site_prior_sds(model_sites): + """ + Prior standard deviation of each site, broadcast to the site's shape. + + Parameters + ---------- + model_sites : dict + ``trace_model_sites`` output (ideally traced with the current site + values substituted, so hierarchical priors reflect them). + + Returns + ------- + dict + ``{site: array}`` for sites whose prior has a finite, positive + variance. Other sites are left out. + """ + + out = {} + for name, site in model_sites.items(): + try: + sd = jnp.sqrt(jnp.asarray(site["fn"].variance, dtype=float)) + sd = jnp.broadcast_to(sd, jnp.shape(site["value"])) + except (NotImplementedError, ValueError, TypeError, AttributeError): + continue + sd = np.asarray(sd) + if sd.size == 0 or not np.all(np.isfinite(sd)) or not np.all(sd > 0): + continue + out[name] = sd + return out diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index e03e47b7..4fb3abf7 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -12,16 +12,49 @@ Predictive, ) from numpyro.infer import autoguide -from numpyro.infer.initialization import init_to_value +from numpyro.infer.initialization import ( + init_to_median, + init_to_uniform, +) +from numpyro.distributions.transforms import IdentityTransform from numpyro.optim import ClippedAdam import numpy as np import dill +from functools import partial from tqdm.auto import tqdm from tfscreen.tfmodel.inference.batch_safety import ( find_orchestrator_batch_dependent_latents, orchestrator_latent_dimension, ) +from tfscreen.tfmodel.inference import convergence as conv +from tfscreen.tfmodel.inference.initialization import ( + AUTO_LOC_SUFFIX, + component_guide_init, + component_guide_map, + site_prior_sds, + site_values, + trace_model_sites, +) + +# The convergence window is split into this many blocks for the parameter +# test (each block's parameter mean is accumulated on the device), and the +# loop hands control back to the host once per block. +PARAM_BLOCKS = 8 + +# Every window spans at least this many epochs, so with mini-batching each +# genotype is visited several times per window. +MIN_WINDOW_EPOCHS = 10 + +# Parameters never tracked for movement: dense covariance factors (their +# diagonal is tracked through the derived posterior SD instead). +_UNTRACKED_PARAM_TAGS = ("scale_tril", "cov_factor") + +# Location/scale suffix pairs, checked in order (``_auto_loc`` also ends in +# ``_loc``). +_LOC_SCALE_SUFFIXES = (("_auto_loc", "_auto_scale"), + ("_locs", "_scales"), + ("_loc", "_scale")) # Autoguides selectable through setup_svi(guide_type=...), keyed by the # snake_case form of the numpyro class name ('delta' keeps its historical short @@ -54,6 +87,19 @@ _DENSE_GUIDE_WARN_GB = 4.0 +def _init_to_value_or(site=None, values=None, fallback=init_to_uniform): + """ + ``init_to_value`` with a choice of strategy for sites missing from + ``values`` (numpyro's always falls back to ``init_to_uniform``). + """ + if site is None: + return partial(_init_to_value_or, values=values, fallback=fallback) + if site["type"] == "sample" and not site["is_observed"] \ + and site["name"] in (values or {}): + return values[site["name"]] + return fallback(site) + + def resolve_guide_type(guide_type): """Return the canonical ``GUIDE_TYPES`` name for ``guide_type``.""" @@ -89,8 +135,6 @@ def _safe_chunks(first_dim, trailing_shape, dtype): safe_first = max(1, _HDF5_MAX_CHUNK_BYTES // (trailing * item)) return (min(first_dim, safe_first),) + trailing_shape -from collections import deque -from functools import partial import os import warnings import h5py @@ -132,9 +176,17 @@ def __init__(self,model,seed): self._seed = seed self._main_key = random.PRNGKey(self._seed) self._current_step = 0 - self._relative_change = np.inf - self._loss_start = None - self._loss_best = np.inf + + # Step size and gradient clip of the optimizer built by setup_svi. + # run_optimization rebuilds the optimizer when it cuts the step size. + self._step_size = None + self._adam_clip_norm = None + + # Convergence-monitor state: restored from a checkpoint (resume) and + # written back into checkpoints; the monitor itself lives in + # run_optimization. + self._monitor_state = None + self._monitor = None # Calculate iterations per epoch num_genotypes = self.model.data.num_genotype @@ -145,8 +197,7 @@ def __init__(self,model,seed): batch_size = len(test_idx.flatten()) self._iterations_per_epoch = int(np.ceil(num_genotypes / batch_size)) - - self._patience_counter = 0 + self._batch_size = batch_size # Set by setup_svi and written into checkpoints. self._guide_type = None @@ -189,7 +240,7 @@ def setup_svi(self, ('auto_low_rank_multivariate_normal' only). init_values : dict or None, optional Constrained values keyed by model site name, used to initialize an - autoguide's location (``init_to_value``). Sites not present fall + autoguide's location. Sites not present fall back to numpyro's uniform initialization. Autoguides only. Returns @@ -220,15 +271,24 @@ def setup_svi(self, else: ctor_kwargs = dict(guide_kwargs) if init_values is not None: - ctor_kwargs["init_loc_fn"] = init_to_value(values=init_values) + # Sites without a value fall back to the autoguide's own + # default initialization (median for AutoDelta, uniform for + # the others). + fallback = (init_to_median if guide_type == "delta" + else init_to_uniform) + ctor_kwargs["init_loc_fn"] = partial(_init_to_value_or, + values=init_values, + fallback=fallback) guide = AUTOGUIDES[guide_type](self.model.jax_model, **ctor_kwargs) # Recorded in checkpoints so the same guide can be rebuilt on restore. self._guide_type = guide_type self._guide_kwargs = guide_kwargs + self._step_size = adam_step_size + self._adam_clip_norm = adam_clip_norm optimizer = ClippedAdam(step_size=adam_step_size, - clip_norm=adam_clip_norm) + clip_norm=adam_clip_norm) svi = SVI(self.model.jax_model, guide, @@ -281,43 +341,69 @@ def run_optimization(self, svi_state=None, init_params=None, out_prefix="tfs", - convergence_tolerance=1e-5, - convergence_window=10, - patience=10, - convergence_check_interval=2, + convergence_window_steps=2000, + patience=3, + convergence_z=3.0, + loss_rtol=1e-6, + param_tolerance=0.05, + final_step_size=None, + step_size_cut=0.1, checkpoint_interval=10, max_num_epochs=10000000, init_param_jitter=0.1, epoch_checkpoint_interval=1000): """ - Run the SVI optimization loop. - - This method iterates, updates SVI state, calculates loss, checks for - convergence, and writes checkpoints. + Run the optimization loop until convergence or ``max_num_epochs``. + + The loop runs in tumbling windows of optimizer steps. At the end of + each window ``inference/convergence.py`` tests whether the loss is + still improving (relative to its own noise) and whether any parameter + is still moving (relative to its posterior or prior width). After + ``patience`` consecutive windows without loss improvement the step + size is cut by ``step_size_cut``; once it has reached + ``final_step_size``, ``patience`` consecutive windows with neither + loss improvement nor parameter movement are convergence. Every window + is recorded in ``{out_prefix}_convergence.csv``. Parameters ---------- svi : numpyro.infer.SVI - The SVI object from `setup_svi`. + The SVI object from `setup_svi`. Its optimizer is replaced (same + state, smaller step size) at each step-size cut. svi_state : Any, optional - An existing SVI state to resume from. If None, a new state is - initialized. If a checkpoint file, restore from the checkpoint. + An existing SVI state to continue from, or the path of a checkpoint + to resume (restoring the step count, step size and convergence + stage). If None, a new state is initialized and the step count + starts at zero. init_params : dict, optional Initial parameters. out_prefix : str, optional Root name for output files (checkpoints, losses). - convergence_tolerance : float, optional - Convergence criterion: stop when the window-to-window change in - smoothed loss is less than this fraction of the total improvement - seen since warm-up ended (i.e., since the loss deque first filled). - Default 1e-5. - convergence_window : int, optional - Number of epochs to average over for convergence check. + convergence_window_steps : int, optional + Length of a convergence window in optimizer steps (default 2000). + Raised to at least ``MIN_WINDOW_EPOCHS`` epochs and rounded up to a + multiple of ``PARAM_BLOCKS``. patience : int, optional - Number of consecutive convergence checks that must meet tolerance - to declare convergence. - convergence_check_interval : int, optional - Frequency (in epochs) to check for convergence. + Consecutive windows without loss improvement required for a + step-size cut, and (at ``final_step_size``) without loss + improvement or parameter movement required for convergence + (default 3). + convergence_z : float, optional + Standard errors of change attributed to noise (default 3). + loss_rtol : float, optional + Loss changes smaller than this fraction of the loss per window + count as a plateau even when significant (default 1e-6); matters + only for (near-)deterministic losses. + param_tolerance : float, optional + Parameter movement per window, beyond noise, that still counts as + a plateau (default 0.05), in posterior SDs (guide scale), prior SDs + (MAP locations), or log/logit units (positive or bounded + parameters). + final_step_size : float or None, optional + Smallest step size. None (default) or a value >= the current step + size disables cuts: the first sustained plateau is convergence. + step_size_cut : float, optional + Factor applied to the step size at each cut (default 0.1). checkpoint_interval : int, optional Frequency (in epochs) to write checkpoints. max_num_epochs : int, optional @@ -337,7 +423,7 @@ def run_optimization(self, params : dict The final optimized parameters. converged : bool - True if the optimization converged based on the tolerance. + True if the run stopped because it converged (see above). Raises ------ @@ -348,16 +434,14 @@ def run_optimization(self, ValueError If ``svi`` uses a numpyro autoguide (AutoDelta included) and the model has latents whose shape follows the genotype mini-batch - (see ``inference/batch_safety.py``). + (see ``inference/batch_safety.py``), or if step-size cuts are + requested for an optimizer built with a step-size schedule. """ # Refuse an autoguide the model cannot support before any fitting. if isinstance(svi.guide, autoguide.AutoGuide): self._check_autoguide(svi.guide) - # Set up update function (triggers jit) - update_function = jax.jit(svi.update) - # Add jitter to the input parameters if they are specified if init_params is not None: init_params = self._jitter_init_parameters(init_params=init_params, @@ -366,20 +450,6 @@ def run_optimization(self, # Put the data on to the gpu data_on_gpu = jax.device_put(self.model.data) - # JAX-optimized update function for use with lax.scan - def scan_fn(data_on_gpu, carry, indices): - svi_state = carry - batch = self.model.get_batch(data_on_gpu, indices) - new_svi_state, loss = update_function(svi_state, - priors=self.model.priors, - data=batch) - return new_svi_state, loss - - # JIT the scan function. We pass data_on_gpu as a formal argument to - # the jitted function to avoid capturing it as a constant in the - # closure (which triggers expensive constant folding for large datasets) - fast_scan = jax.jit(lambda data, state, indices: jax.lax.scan(partial(scan_fn, data), state, indices)) - # Create an initial batch to initialize SVI gpu_batch_idx = jax.device_put(self.model.get_random_idx()) batch_data = self.model.get_batch(data_on_gpu, gpu_batch_idx) @@ -390,10 +460,11 @@ def scan_fn(data_on_gpu, carry, indices): init_params=init_params, priors=self.model.priors, data=batch_data) - + + self._monitor_state = None if svi_state is None: svi_state = initial_svi_state - + self._current_step = 0 elif isinstance(svi_state,str): if os.path.isfile(svi_state): svi_state = self._restore_checkpoint(svi_state) @@ -401,23 +472,84 @@ def scan_fn(data_on_gpu, carry, indices): raise ValueError( f"svi_state '{svi_state}' is not valid" ) + + # --- Step size and convergence monitor --- + + step_size = self._step_size + if step_size is None: + step_size = getattr(svi.optim, "step_size", None) + if callable(step_size): + if final_step_size is not None: + raise ValueError( + "step-size cuts (final_step_size) need a constant step " + "size from setup_svi, not a schedule." + ) + monitor_step_size = np.nan else: - svi_state = svi_state - - # Initialize loss file - self._write_losses(np.array([]), out_prefix) - - # loss deque holds loss values for smoothing to check for convergence - # The window represents epochs, so we multiply by iterations_per_epoch. - # We need two such windows (one old, one new) to compare. - deque_maxlen = 2 * convergence_window * self._iterations_per_epoch - self._loss_deque = deque(maxlen=deque_maxlen) + monitor_step_size = float(step_size) if step_size is not None else np.nan + + monitor = conv.ConvergenceMonitor( + step_size=monitor_step_size, + final_step_size=final_step_size, + step_size_cut=step_size_cut, + patience=patience, + z=convergence_z, + loss_rtol=loss_rtol, + param_tolerance=param_tolerance, + ) + if self._monitor_state is not None: + monitor.load_state_dict(self._monitor_state) + if monitor.step_size != monitor_step_size: + print(f"Resuming at the checkpoint's step size " + f"{monitor.step_size:.3g}.", flush=True) + self._set_step_size(svi, monitor.step_size) + self._monitor = monitor + + # --- Window geometry --- + + ipe = self._iterations_per_epoch + window_steps = max(int(convergence_window_steps), + MIN_WINDOW_EPOCHS * ipe, 3 * PARAM_BLOCKS) + block_steps = int(np.ceil(window_steps / PARAM_BLOCKS)) + window_steps = block_steps * PARAM_BLOCKS + + # --- Parameters tracked for movement --- + + unconstrained = svi.optim.get_params(svi_state.optim_state) + specs = self._param_normalizer_specs(svi, svi_state, unconstrained) + zero_acc = {k: jnp.zeros_like(unconstrained[k]) for k in specs} + + # JAX-optimized update function for use with lax.scan. Each step also + # adds the tracked (unconstrained) parameters to an accumulator, so + # the host gets per-block parameter means without per-step transfers. + def scan_fn(data_on_gpu, carry, indices): + state, acc = carry + batch = self.model.get_batch(data_on_gpu, indices) + new_state, loss = svi.update(state, + priors=self.model.priors, + data=batch) + current = svi.optim.get_params(new_state.optim_state) + acc = {k: acc[k] + current[k] for k in acc} + return (new_state, acc), loss + + # Built as a fresh closure so a step-size cut (which swaps svi.optim) + # re-traces rather than hitting a cached compilation. The data are a + # formal argument to avoid capturing them as a constant (expensive + # constant folding for large datasets). + def build_scan(): + return jax.jit(lambda data, state, acc, indices: jax.lax.scan( + partial(scan_fn, data), (state, acc), indices)) + + fast_scan = build_scan() + + # Initialize loss and convergence files + self._write_losses(np.array([]), out_prefix) + self._write_convergence(None, out_prefix) + converged = False - - # Convert intervals from epochs to iterations - check_interval_steps = convergence_check_interval * self._iterations_per_epoch - checkpoint_interval_steps = checkpoint_interval * self._iterations_per_epoch - total_steps = max_num_epochs * self._iterations_per_epoch + total_steps = max_num_epochs * ipe + + checkpoint_interval_steps = checkpoint_interval * ipe # Track next checkpoint in steps # If resuming, we want to write checkpoint at the next multiple of @@ -426,7 +558,7 @@ def scan_fn(data_on_gpu, carry, indices): # Set up epoch checkpoint tracking if epoch_checkpoint_interval: - epoch_checkpoint_interval_steps = epoch_checkpoint_interval * self._iterations_per_epoch + epoch_checkpoint_interval_steps = epoch_checkpoint_interval * ipe self._next_epoch_checkpoint_step = ( (self._current_step // epoch_checkpoint_interval_steps) + 1 ) * epoch_checkpoint_interval_steps @@ -436,17 +568,24 @@ def scan_fn(data_on_gpu, carry, indices): else: epoch_checkpoint_interval_steps = None - # Reset convergence state - self._patience_counter = 0 - self._loss_start = None - self._loss_best = np.inf - - # Loop over steps in chunks of check_interval_steps + print(f"Convergence window: {window_steps} steps " + f"({window_steps / ipe:.4g} epochs); patience {patience} " + f"windows; step size {monitor.step_size:.3g}" + + (f" -> {monitor.final_step_size:.3g}" + if not monitor.at_floor else "") + + f"; tracking {len(specs)} parameter arrays.", flush=True) + + # Current window + window_losses = [] + block_means = [] + block_centers = [] + window_filled = 0 + current_optimization_step = 0 while current_optimization_step < total_steps: # Determine size of this block - block_size = min(check_interval_steps, total_steps - current_optimization_step) + block_size = min(block_steps, total_steps - current_optimization_step) # Generate a block of random indices (using NumPy/Python) block_idx = self.model.get_random_idx(num_batches=block_size) @@ -455,36 +594,60 @@ def scan_fn(data_on_gpu, carry, indices): gpu_block_idx = jax.device_put(block_idx) # Run the block of updates using lax.scan (entirely on GPU) - svi_state, block_losses = fast_scan(data_on_gpu, svi_state, gpu_block_idx) - + (svi_state, acc), block_losses = fast_scan(data_on_gpu, svi_state, + zero_acc, gpu_block_idx) + # Convert JAX array to NumPy for host-side metadata management - # Ensure it is at least 1D for deque/IO + # Ensure it is at least 1D for IO interval_losses = np.atleast_1d(np.array(block_losses)) - + # Update counters current_optimization_step += block_size self._current_step += block_size - # Update loss deque for convergence check - self._update_loss_deque(interval_losses) + # Accumulate the window + window_losses.append(interval_losses) + block_means.append({k: v / block_size for k, v in acc.items()}) + block_centers.append(window_filled + block_size / 2) + window_filled += block_size # stdout - # Print status using the last loss in the block - print(f"Step: {self._current_step:10d}, Loss: {interval_losses[-1]:10.5e}, Change: {self._relative_change:10.5e}, Patience: {self._patience_counter:3d}", flush=True) + print(f"Step: {self._current_step:10d}, " + f"Loss: {np.median(interval_losses):10.5e}, " + f"Step size: {monitor.step_size:9.3e}, " + f"Plateau: {monitor.plateau_count}/{patience}", flush=True) # Check for explosion in parameters params = svi.get_params(svi_state) for k in params: if np.any(np.isnan(params[k])): - + nan_params = [(k,params[k]) for k in params] raise RuntimeError( f"model exploded (observed at step {self._current_step}). " f"NaN params: {nan_params}." ) - + # Write outputs (checkpoints and losses) - self._write_losses(interval_losses, out_prefix) + self._write_losses(interval_losses, out_prefix) + + # End of a convergence window + decision = None + if window_filled >= window_steps: + decision = self._end_window(svi, svi_state, monitor, specs, + np.concatenate(window_losses), + block_means, block_centers, + window_filled) + self._write_convergence(monitor.last, out_prefix) + print("Convergence window, " + monitor.describe(), flush=True) + window_losses = [] + block_means = [] + block_centers = [] + window_filled = 0 + + if decision == conv.CUT: + self._set_step_size(svi, monitor.step_size) + fast_scan = build_scan() # Check if we should write a checkpoint if self._current_step >= self._next_checkpoint_step: @@ -494,34 +657,249 @@ def scan_fn(data_on_gpu, carry, indices): # Check if we should write a numbered epoch checkpoint if epoch_checkpoint_interval_steps is not None: if self._current_step >= self._next_epoch_checkpoint_step: - current_epoch = self._current_step // self._iterations_per_epoch + current_epoch = self._current_step // ipe self._write_epoch_checkpoint(svi_state, current_epoch) self._next_epoch_checkpoint_step += epoch_checkpoint_interval_steps - # Check for convergence - if convergence_tolerance is not None: - - if self._relative_change < convergence_tolerance: - self._patience_counter += 1 - else: - self._patience_counter = 0 - - if self._patience_counter >= patience: - converged = True - # Final checkpoint before exiting - self._write_checkpoint(svi_state, out_prefix) - break + if decision == conv.CONVERGED: + converged = True + # Final checkpoint before exiting + self._write_checkpoint(svi_state, out_prefix) + break # Write a final checkpoint when the loop exits by reaching max_num_epochs # (convergence already writes its own checkpoint via the break path above). if not converged and total_steps > 0: self._write_checkpoint(svi_state, out_prefix) + if total_steps > 0: + if converged: + print(f"Converged at step {self._current_step} (step size " + f"{monitor.step_size:.3g}, {monitor.num_cuts} cut(s)): " + f"no significant loss improvement or parameter movement " + f"for {patience} windows.", flush=True) + else: + print(f"Stopped at step {self._current_step} " + f"(max_num_epochs) without converging. Last window: " + f"{monitor.describe()}", flush=True) + # Get final parameters params = svi.get_params(svi_state) return svi_state, params, converged + def _set_step_size(self, svi, step_size): + """ + Give ``svi`` a ClippedAdam with a new constant step size. + + The optimizer state (step count, parameters, Adam moments) does not + depend on the step size, so the existing state carries over. + """ + + clip_norm = self._adam_clip_norm + if clip_norm is None: + clip_norm = getattr(svi.optim, "clip_norm", 10.0) + svi.optim = ClippedAdam(step_size=step_size, clip_norm=clip_norm) + self._step_size = step_size + + @staticmethod + def _param_transforms(svi): + """``{param name: transform}`` recorded by ``svi.init``, if exposed.""" + args = getattr(getattr(svi, "constrain_fn", None), "args", None) + if args and isinstance(args[0], dict): + return args[0] + return {} + + def _param_normalizer_specs(self, svi, svi_state, unconstrained): + """ + How to normalize each tracked parameter's movement. + + Returns ``{param name: spec}`` where spec is one of + + - ``("unit",)``: movement taken as is -- parameters on a positive or + bounded support (tracked in log/logit units, so relative), and real + parameters with no better reference; + - ``("scale", scale_name)``: a guide location divided by its paired + guide scale (posterior SD); + - ``("auto_continuous",)``: an AutoContinuous ``auto_loc`` divided by + the posterior SD derived from its scale parameters; + - ``("prior", sd)``: a MAP (AutoDelta) location divided by the prior + SD of its site. + """ + + transforms = self._param_transforms(svi) + shapes = {k: jnp.shape(v) for k, v in unconstrained.items()} + + prior_sds = {} + if self._guide_type == "delta": + prior_sds = self._delta_prior_sds(svi, svi_state) + + specs = {} + for name in unconstrained: + if any(tag in name for tag in _UNTRACKED_PARAM_TAGS): + continue + transform = transforms.get(name) + if transform is not None and not isinstance(transform, + IdentityTransform): + specs[name] = ("unit",) + continue + + if name == "auto_loc": + specs[name] = ("auto_continuous",) + continue + + partner = None + for loc_suffix, scale_suffix in _LOC_SCALE_SUFFIXES: + if name.endswith(loc_suffix): + candidate = name[:-len(loc_suffix)] + scale_suffix + if shapes.get(candidate) == shapes[name]: + partner = candidate + break + + site = (name[:-len(AUTO_LOC_SUFFIX)] + if name.endswith(AUTO_LOC_SUFFIX) else None) + if partner is not None: + specs[name] = ("scale", partner) + elif site is not None and site in prior_sds \ + and jnp.shape(prior_sds[site]) == shapes[name]: + specs[name] = ("prior", prior_sds[site]) + else: + specs[name] = ("unit",) + return specs + + def _delta_prior_sds(self, svi, svi_state): + """Prior SD of each site at the current MAP point ({} on failure).""" + try: + constrained = svi.get_params(svi_state) + substitutions = {k[:-len(AUTO_LOC_SUFFIX)]: v + for k, v in constrained.items() + if k.endswith(AUTO_LOC_SUFFIX)} + sites = trace_model_sites(self.model.jax_model, + self.model.priors, + self._trace_batch(), + substitutions=substitutions) + return site_prior_sds(sites) + except Exception as err: # pragma: no cover - defensive + print(f"Could not compute prior SDs for MAP parameter movement " + f"({err}); movement is measured in unconstrained units.", + flush=True) + return {} + + def _trace_batch(self): + """ + A deterministic batch for tracing: the first ``batch_size`` genotypes + of the full binding-first index (latent sites are library-sized + whatever the batch). + """ + data = jax.device_put(self.model.data) + idx = jnp.asarray(self.model.data.batch_idx)[:self._batch_size] + return self.model.get_batch(data, idx) + + def site_values(self, values): + """ + Constrained site values found in ``values`` (guesses, a MAP result or + both), keyed by model site name. See ``inference/initialization.py``. + """ + batch = self._trace_batch() + sites = trace_model_sites(self.model.jax_model, self.model.priors, + batch) + guide_map, _, _ = component_guide_map(self.model.jax_model_guide, + self.model.priors, batch) + return site_values(values, sites, guide_map) + + def component_guide_start(self, values, guesses=None, init_scale=None): + """ + Initial component-guide parameters starting at the given site values. + + Parameters + ---------- + values : dict + Constrained site values (``site_values``). + guesses : dict or None, optional + Configured guesses. Those keyed by component-guide param name are + kept (and overridden where ``values`` gives the same site). + init_scale : float or None, optional + Upper bound on every mapped guide scale at the start. + + Returns + ------- + dict + ``init_params`` for ``run_optimization`` with the component guide. + """ + + guesses = dict(guesses or {}) + guide_map, unmatched, defaults = component_guide_map( + self.model.jax_model_guide, self.model.priors, self._trace_batch()) + + init_params = {k: v for k, v in guesses.items() if k in defaults} + start_defaults = dict(defaults) + start_defaults.update(init_params) + + translated, skipped = component_guide_init(values, guide_map, + start_defaults, + init_scale=init_scale) + init_params.update(translated) + + n_loc = sum(1 for e in guide_map.values() if e["loc"] in translated) + print(f"Guide start: {n_loc} of {len(guide_map) + len(unmatched)} " + f"guide sites start at the given values" + + (f"; scales capped at {init_scale:g}" + if init_scale is not None else "") + + ".", flush=True) + if unmatched: + print(f" guide sites without a recognized location parameter " + f"(left at their defaults): {unmatched}", flush=True) + if skipped: + print(f" non-positive values for LogNormal-guided sites (left " + f"at their defaults): {skipped}", flush=True) + return init_params + + @staticmethod + def _normalizer(spec, constrained): + """Evaluate one normalizer spec at the current constrained params.""" + kind = spec[0] + if kind == "scale": + norm = constrained[spec[1]] + elif kind == "auto_continuous": + if "auto_scale_tril" in constrained: + tril = constrained["auto_scale_tril"] + norm = jnp.sqrt(jnp.sum(tril * tril, axis=-1)) + elif "auto_cov_factor" in constrained: + factor = constrained["auto_cov_factor"] + norm = jnp.sqrt(jnp.sum(factor * factor, axis=-1) + + constrained["auto_scale"] ** 2) + elif "auto_scale" in constrained: + norm = constrained["auto_scale"] + else: + norm = 1.0 + elif kind == "prior": + norm = spec[1] + else: + norm = 1.0 + return jnp.maximum(jnp.asarray(norm, dtype=float), 1e-12) + + def _end_window(self, svi, svi_state, monitor, specs, losses, + block_means, block_centers, window_steps): + """Run both convergence tests on a finished window; return the decision.""" + + loss_stats = conv.loss_trend(losses) + + constrained = svi.get_params(svi_state) + centers = np.asarray(block_centers, dtype=float) + floor = monitor.drift_floor(window_steps) + excess_summary = {} + drift_summary = {} + for name, spec in specs.items(): + stacked = jnp.stack([b[name] for b in block_means]) + drift, excess = conv.param_drift(stacked, centers, window_steps, + self._normalizer(spec, constrained), + monitor.z, floor=floor) + excess_summary[name] = conv.summarize_excess(excess) + drift_summary[name] = conv.summarize_excess(jnp.abs(drift)) + + return monitor.end_window(self._current_step, loss_stats, + excess_summary, drift_summary) + def _get_genotype_dim_map(self): """ Identify which sites are in the genotype plate and what that dimension is. @@ -961,8 +1339,8 @@ def _write_checkpoint(self,svi_state,out_prefix): out_dict = {"main_key":self._main_key, "svi_state":host_svi_state, "current_step":self._current_step, - "loss_start":self._loss_start, - "loss_best":self._loss_best, + "step_size": self._checkpoint_step_size(), + "convergence": self._convergence_state(), "guide_type":self._guide_type, "guide_kwargs":self._guide_kwargs} @@ -1006,8 +1384,8 @@ def _write_epoch_checkpoint(self, svi_state, epoch): out_dict = {"main_key": self._main_key, "svi_state": host_svi_state, "current_step": self._current_step, - "loss_start": self._loss_start, - "loss_best": self._loss_best, + "step_size": self._checkpoint_step_size(), + "convergence": self._convergence_state(), "guide_type": self._guide_type, "guide_kwargs": self._guide_kwargs} @@ -1091,10 +1469,10 @@ def _restore_checkpoint(self,checkpoint_file): self._main_key = checkpoint_data['main_key'] if 'current_step' in checkpoint_data: self._current_step = checkpoint_data['current_step'] - if 'loss_start' in checkpoint_data: - self._loss_start = checkpoint_data['loss_start'] - if 'loss_best' in checkpoint_data: - self._loss_best = checkpoint_data['loss_best'] + # Convergence stage (step size, plateau count); absent from + # checkpoints written before step-size cuts, which resume at the + # configured step size. + self._monitor_state = checkpoint_data.get('convergence') if not isinstance(svi_state,numpyro.infer.svi.SVIState): raise ValueError( @@ -1129,7 +1507,7 @@ def _write_losses(self,losses,out_prefix): os.remove(readable_losses_file) with open(readable_losses_file, "w") as f: - f.write("epoch,loss,relative_change\n") + f.write("epoch,loss,step,step_size\n") f.flush() os.fsync(f.fileno()) @@ -1145,55 +1523,61 @@ def _write_losses(self,losses,out_prefix): f.flush() os.fsync(f.fileno()) - # Write a human-readable losses file: epoch,loss,relative_change + # Write a human-readable losses file: epoch, median loss of the block, + # step, step size. + step_size = self._checkpoint_step_size() with open(readable_losses_file, "a") as f: - f.write(f"{epoch},{losses[-1]},{self._relative_change}\n") + f.write(f"{epoch},{np.median(losses)},{self._current_step}," + f"{step_size}\n") f.flush() os.fsync(f.fileno()) + _CONVERGENCE_COLUMNS = ("step", "epoch", "step_size", "loss", "loss_drop", + "loss_drop_se", "loss_t", "loss_improving", + "worst_param", "worst_param_excess", + "worst_param_drift", "params_moving", "plateau", + "plateau_count", "decision") - - - def _update_loss_deque(self, losses): + def _write_convergence(self, record, out_prefix): """ - Update the loss deque and calculate the convergence metric. - - The metric is the window-to-window change in smoothed loss, normalized - by the total improvement seen since the deque first filled (warm-up): - - |mean_old - mean_new| / max(|loss_start - loss_best|, 1e-6) + Append one convergence-window record to ``{out_prefix}_convergence.csv``. - loss_start is captured once, when the deque fills for the first time. - loss_best is the running minimum of mean_new across all checks. - - Parameters - ---------- - losses : list - List of new losses to add to the deque. + With ``record=None`` (start of a run) the file is created with its + header -- replacing any old file -- on a fresh run, and left alone on + a resume. """ - self._loss_deque.extend(list(losses)) - - # Deque must be full before any check (natural warm-up period) - if len(self._loss_deque) < self._loss_deque.maxlen: - self._relative_change = np.inf + path = f"{out_prefix}_convergence.csv" + if record is None: + if self._current_step == 0 or not os.path.exists(path): + with open(path, "w") as f: + f.write(",".join(self._CONVERGENCE_COLUMNS) + "\n") return - history = np.array(self._loss_deque) - half = len(history) // 2 - mean_old = np.mean(history[:half]) - mean_new = np.mean(history[half:]) + row = dict(record) + row["epoch"] = row["step"] // self._iterations_per_epoch + with open(path, "a") as f: + f.write(",".join(str(row.get(c, "")) for c in + self._CONVERGENCE_COLUMNS) + "\n") + f.flush() + os.fsync(f.fileno()) + + def _checkpoint_step_size(self): + """Current constant step size, or None for a schedule/unknown.""" + if self._monitor is not None and np.isfinite(self._monitor.step_size): + return self._monitor.step_size + if self._step_size is not None and not callable(self._step_size): + return float(self._step_size) + return None + + def _convergence_state(self): + """Monitor state for checkpoints (None before any optimization).""" + if self._monitor is None: + return self._monitor_state + return self._monitor.state_dict() - # Capture loss_start once, at the end of warm-up - if self._loss_start is None: - self._loss_start = mean_old - # Track the best (lowest) smoothed loss seen so far - self._loss_best = min(self._loss_best, mean_new) - # Denominator: total improvement since warm-up, with floor for robustness - denom = max(abs(self._loss_start - self._loss_best), 1e-6) - self._relative_change = abs(mean_old - mean_new) / denom def write_params(self,params,out_prefix): """ diff --git a/src/tfscreen/tfmodel/scripts/fit_model_cli.py b/src/tfscreen/tfmodel/scripts/fit_model_cli.py index 374ffa78..b85ab831 100644 --- a/src/tfscreen/tfmodel/scripts/fit_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/fit_model_cli.py @@ -1,8 +1,6 @@ import os import dill -import optax - from tfscreen.tfmodel.inference.run_inference import ( RunInference, check_guide_kwargs, @@ -13,68 +11,69 @@ from tfscreen.tfmodel.configuration_io import read_configuration +# Upper bound on the component guide's starting scales (the numpyro autoguides' +# own default init_scale). Starting at prior width makes early SVI escape the +# guide variance by inflating the noise terms. +DEFAULT_COMPONENT_INIT_SCALE = 0.1 + +def _optimization_kwargs(convergence_window_steps=2000, + patience=3, + convergence_z=3.0, + loss_rtol=1e-6, + param_tolerance=0.05, + adam_final_step_size=1e-6, + adam_step_size_cut=0.1, + checkpoint_interval=10, + max_num_epochs=100000, + init_param_jitter=0.0, + epoch_checkpoint_interval=1000): + """``RunInference.run_optimization`` keyword arguments from CLI names.""" + return dict(convergence_window_steps=convergence_window_steps, + patience=patience, + convergence_z=convergence_z, + loss_rtol=loss_rtol, + param_tolerance=param_tolerance, + final_step_size=adam_final_step_size, + step_size_cut=adam_step_size_cut, + checkpoint_interval=checkpoint_interval, + max_num_epochs=max_num_epochs, + init_param_jitter=init_param_jitter, + epoch_checkpoint_interval=epoch_checkpoint_interval) + def _run_map(ri, - init_params, + init_values=None, checkpoint_file=None, out_prefix="tfs", adam_step_size=1e-3, - adam_final_step_size=1e-6, adam_clip_norm=1.0, elbo_num_particles=2, - convergence_tolerance=1e-5, - convergence_window=10, - patience=10, - convergence_check_interval=2, - checkpoint_interval=10, - max_num_epochs=100000, - init_param_jitter=0.0, - epoch_checkpoint_interval=1000): + label="MAP", + **optimization_kwargs): """ - Run maximum a posteriori (MAP) optimization for hierarchical model inference. - - This function sets up and runs MAP optimization using the provided RunInference - object and initial parameters. It manages checkpointing, convergence checking, - and writes parameter values to disk. Returns the final optimizer state, parameters, - and convergence status. + Run maximum a posteriori (MAP) optimization (an AutoDelta guide). Parameters ---------- ri : RunInference RunInference object that manages model setup and optimization routines. - init_params : dict - Initial parameter values for MAP optimization. + init_values : dict or None, optional + Constrained site values the MAP starts from (``ri.site_values``). + Sites without a value start at the prior median. checkpoint_file : str or None, optional Path to a checkpoint file to resume optimization from, or None to start fresh. out_prefix : str, optional Output file root for checkpoints and results (default "tfs"). adam_step_size : float, optional Starting step size for the Adam optimizer (default 1e-3). - adam_final_step_size : float, optional - Final step size for the Adam optimizer (default 1e-6). adam_clip_norm : float, optional Gradient clipping norm for Adam optimizer (default 1.0). elbo_num_particles : int, optional Number of particles for ELBO estimation during MAP (default 2). - max_num_epochs : int, optional - Maximum number of MAP optimization epochs (default 100000). - convergence_tolerance : float, optional - Relative change in smoothed loss to declare MAP convergence (default 1e-5). - convergence_window : int, optional - Number of epochs to average for convergence check (default 10). - patience : int, optional - Number of consecutive checks meeting tolerance to declare convergence - (default 10). - convergence_check_interval : int, optional - Frequency (in epochs) to check for convergence (default 2). - checkpoint_interval : int, optional - Steps between checkpoints and convergence checks (default 10). - init_param_jitter : float, optional - Amount of jitter to add to init_params (default 0.0). - epoch_checkpoint_interval : int or None, optional - Frequency (in epochs) to write numbered epoch checkpoints to a - ``checkpoints/`` subdirectory (default 1000). Set to 0 or None to - disable. + label : str, optional + Name of the run in the closing message (default "MAP"). + **optimization_kwargs + Passed to ``ri.run_optimization`` (see ``_optimization_kwargs``). Notes ----- @@ -88,36 +87,22 @@ def _run_map(ri, params : dict Final optimized parameters from MAP. converged : bool - True if MAP converged according to the specified tolerance. + True if the run converged (see ``RunInference.run_optimization``). """ - # Create a learning rate schedule - schedule = optax.exponential_decay( - init_value=adam_step_size, - transition_steps=float(max_num_epochs * ri._iterations_per_epoch), - decay_rate=adam_final_step_size / adam_step_size - ) - - # Create a maximum a posteriori svi object - map_obj = ri.setup_svi(adam_step_size=schedule, + # Create a maximum a posteriori svi object + map_obj = ri.setup_svi(adam_step_size=adam_step_size, adam_clip_norm=adam_clip_norm, elbo_num_particles=elbo_num_particles, - guide_type="delta") + guide_type="delta", + init_values=init_values) # Run MAP svi_state, params, converged = ri.run_optimization( map_obj, - init_params=init_params, out_prefix=out_prefix, svi_state=checkpoint_file, - convergence_tolerance=convergence_tolerance, - convergence_window=convergence_window, - patience=patience, - convergence_check_interval=convergence_check_interval, - checkpoint_interval=checkpoint_interval, - max_num_epochs=max_num_epochs, - init_param_jitter=init_param_jitter, - epoch_checkpoint_interval=epoch_checkpoint_interval + **optimization_kwargs ) # Write the current parameter values @@ -125,9 +110,9 @@ def _run_map(ri, # Write convergence information to stdout if converged: - print("MAP run converged.",flush=True) + print(f"{label} run converged.",flush=True) else: - print("MAP run has not yet converged.",flush=True) + print(f"{label} run has not yet converged.",flush=True) return svi_state, params, converged @@ -136,73 +121,40 @@ def _run_svi(ri, checkpoint_file=None, out_prefix="tfs", adam_step_size=1e-3, - adam_final_step_size=1e-6, adam_clip_norm=1.0, elbo_num_particles=2, - convergence_tolerance=1e-5, - convergence_window=10, - patience=10, - convergence_check_interval=2, - checkpoint_interval=10, - max_num_epochs=100000, - init_param_jitter=0.1, - epoch_checkpoint_interval=1000, guide_type="component", guide_kwargs=None, - init_values=None): + init_values=None, + **optimization_kwargs): """ Run stochastic variational inference (SVI) for hierarchical model inference. - This function sets up and runs SVI optimization using the provided RunInference - object and initial parameters. It manages checkpointing, convergence checking, - and optionally draws posterior samples after convergence. - Parameters ---------- ri : RunInference RunInference object that manages model setup and optimization routines. init_params : dict or None - Initial parameter values for SVI optimization. If None, uses parameters - captured during SVI object initialization. + Initial component-guide parameters (``ri.component_guide_start``). + Not used by autoguides, whose parameter names differ. checkpoint_file : str or None, optional Path to a checkpoint file to resume optimization from, or None to start fresh. out_prefix : str, optional Output file root for checkpoints and results (default "tfs"). adam_step_size : float, optional Starting step size for the Adam optimizer (default 1e-3). - adam_final_step_size : float, optional - Final step size for the Adam optimizer (default 1e-6). adam_clip_norm : float, optional Gradient clipping norm for Adam optimizer (default 1.0). elbo_num_particles : int, optional Number of particles for ELBO estimation during SVI (default 2). - convergence_tolerance : float, optional - Relative change in loss to declare SVI convergence (default 1e-5). - convergence_window : int, optional - Number of epochs to average for convergence check (default 10). - patience : int, optional - Number of consecutive checks meeting tolerance to declare convergence - (default 10). - convergence_check_interval : int, optional - Frequency (in epochs) to check for convergence (default 2). - checkpoint_interval : int, optional - Frequency (in epochs) between checkpoints (default 10). - max_num_epochs : int, optional - Maximum number of SVI optimization epochs (default 100000). - init_param_jitter : float, optional - Amount of jitter to add to init_params (default 0.1). - epoch_checkpoint_interval : int or None, optional - Frequency (in epochs) to write numbered epoch checkpoints to a - ``checkpoints/`` subdirectory (default 1000). Set to 0 or None to - disable. guide_type : str, optional Variational family passed to ``ri.setup_svi`` (default 'component'). guide_kwargs : dict or None, optional Autoguide options (``rank``, ``init_scale``) passed to ``ri.setup_svi``. init_values : dict or None, optional - Constrained site values an autoguide's location starts from. For an - autoguide ``init_params`` is not used: it is substituted by parameter - name, and only the component guide's names match it. + Constrained site values an autoguide's location starts from. + **optimization_kwargs + Passed to ``ri.run_optimization`` (see ``_optimization_kwargs``). Notes ----- @@ -220,18 +172,11 @@ def _run_svi(ri, svi_params : dict Final optimized parameters from SVI. converged : bool - True if SVI converged according to the specified tolerance. + True if the run converged (see ``RunInference.run_optimization``). """ - # Create a learning rate schedule - schedule = optax.exponential_decay( - init_value=adam_step_size, - transition_steps=float(max_num_epochs * ri._iterations_per_epoch), - decay_rate=adam_final_step_size / adam_step_size - ) - # Create an svi object - svi_obj = ri.setup_svi(adam_step_size=schedule, + svi_obj = ri.setup_svi(adam_step_size=adam_step_size, adam_clip_norm=adam_clip_norm, elbo_num_particles=elbo_num_particles, guide_type=guide_type, @@ -248,19 +193,12 @@ def _run_svi(ri, init_params=init_params, out_prefix=f"{out_prefix}", svi_state=checkpoint_file, - convergence_tolerance=convergence_tolerance, - convergence_window=convergence_window, - patience=patience, - convergence_check_interval=convergence_check_interval, - checkpoint_interval=checkpoint_interval, - max_num_epochs=max_num_epochs, - init_param_jitter=init_param_jitter, - epoch_checkpoint_interval=epoch_checkpoint_interval + **optimization_kwargs ) # Write convergence information to stdout (skip when restoring from # checkpoint with no additional epochs — convergence is not meaningful). - if max_num_epochs > 0: + if optimization_kwargs.get("max_num_epochs", 1) > 0: if converged: print("SVI run converged.",flush=True) else: @@ -325,22 +263,6 @@ def _run_nuts(ri, return mcmc_samples -def _autoguide_init_values(init_params): - """ - Site values an autoguide's location starts from. - - After a pre-MAP run ``init_params`` holds the AutoDelta parameters -- the - MAP point, already in constrained space, keyed ``{site}_auto_loc``. - Otherwise it holds the configured guesses, already keyed by site. - """ - - suffix = "_auto_loc" - if any(k.endswith(suffix) for k in init_params): - return {k[:-len(suffix)]: v for k, v in init_params.items() - if k.endswith(suffix)} - return dict(init_params) - - def _check_checkpoint_guide(checkpoint_file, guide_type): """Refuse to resume an SVI checkpoint with a different guide.""" @@ -368,16 +290,18 @@ def fit_model(config_file, out_prefix="tfs_fit_model", adam_step_size=1e-3, adam_final_step_size=1e-6, + adam_step_size_cut=0.1, adam_clip_norm=1.0, elbo_num_particles=2, - convergence_tolerance=1e-5, - convergence_window=10, - patience=10, - convergence_check_interval=2, + convergence_window_steps=2000, + patience=3, + convergence_z=3.0, + loss_rtol=1e-6, + param_tolerance=0.05, checkpoint_interval=10, max_num_epochs=100000, forward_batch_size=512, - pre_map_num_epoch=1000, + pre_map_num_epoch=10000, init_param_jitter=0.1, nuts_num_warmup=500, nuts_num_samples=500, @@ -391,6 +315,15 @@ def fit_model(config_file, and other latent parameters using Stochastic Variational Inference (SVI) or maximum a posteriori (MAP) approaches based on the config. + Optimization (SVI, MAP and the pre-MAP warm-up) runs in windows of + ``convergence_window_steps`` optimizer steps. After ``patience`` + consecutive windows without a significant improvement in the loss + (against its own noise), the step size is cut by ``adam_step_size_cut``. + Once it has reached ``adam_final_step_size``, the run stops after + ``patience`` consecutive windows in which the loss has not improved and no + parameter has moved (against its posterior or prior width). Each window + is recorded in ``{out_prefix}_convergence.csv``. + Parameters ---------- config_file : str @@ -399,6 +332,8 @@ def fit_model(config_file, Random seed for reproducibility. Must be provided if not loading from a checkpoint. checkpoint_file : str or None, optional Path to a checkpoint file to resume SVI from, or None to start fresh. + A resumed run continues at the checkpoint's step size and convergence + stage. analysis_method : str, optional Method for inference. Allowed values are 'svi' (default), 'map', or 'nuts'. Case-insensitive. Posterior sampling is not performed; call @@ -408,16 +343,18 @@ def fit_model(config_file, the guide assembled from the model components). Also accepts the numpyro autoguides 'auto_normal', 'auto_diagonal_normal', 'auto_multivariate_normal', 'auto_low_rank_multivariate_normal' and - 'delta'; numpyro class names such as 'AutoNormal' work too. An - autoguide's location starts at the pre-MAP solution when + 'delta'; numpyro class names such as 'AutoNormal' work too. Every + guide's location starts at the pre-MAP solution when ``pre_map_num_epoch > 0``, otherwise at the configured guesses. A resumed checkpoint must use the guide it was written with. guide_rank : int, optional Covariance rank for 'auto_low_rank_multivariate_normal' (numpyro's default when omitted). guide_init_scale : float, optional - Initial scale of an autoguide's variational distribution (numpyro's - default when omitted). Not accepted by 'component' or 'delta'. + Initial scale of the variational distribution. For 'component' it + caps every guide scale at the start (default 0.1); for an autoguide + it is numpyro's ``init_scale`` (numpyro's default when omitted). Not + accepted by 'delta'. out_prefix : str, optional Prefix for all output files: checkpoints, parameter files, and the posterior HDF5 (default 'tfs_fit_model'). Files are named @@ -425,33 +362,45 @@ def fit_model(config_file, adam_step_size : float, optional Starting step size for the Adam optimizer (default 1e-3). adam_final_step_size : float, optional - Final step size for the Adam optimizer (default 1e-6). + Smallest step size (default 1e-6). Set equal to ``adam_step_size`` + for a constant step size. + adam_step_size_cut : float, optional + Factor applied to the step size at each cut (default 0.1). adam_clip_norm : float, optional Gradient clipping norm for Adam optimizer (default 1.0). elbo_num_particles : int, optional Number of particles for ELBO estimation (default 2). - convergence_tolerance : float, optional - Relative change in loss to declare SVI convergence (default 1e-5). - convergence_window : int, optional - Number of epochs to average for convergence check (default 10). + convergence_window_steps : int, optional + Optimizer steps per convergence window (default 2000; at least 10 + epochs, so with mini-batching every genotype is visited several times + per window). patience : int, optional - Number of consecutive checks meeting tolerance to declare convergence - (default 10). - convergence_check_interval : int, optional - Frequency (in epochs) to check for convergence (default 2). + Consecutive windows without loss improvement required for a step-size + cut, and (at the final step size) without loss improvement or + parameter movement required for stopping (default 3). + convergence_z : float, optional + Standard errors of change attributed to noise (default 3). + loss_rtol : float, optional + Loss changes per window below this fraction of the loss count as no + change (default 1e-6); matters only for (near-)deterministic losses. + param_tolerance : float, optional + Parameter movement per window, beyond noise, still counted as no + change (default 0.05), in posterior SDs (SVI), prior SDs (MAP), or + log/logit units (positive or bounded parameters). checkpoint_interval : int, optional Frequency (in epochs) between checkpoints (default 10). max_num_epochs : int, optional - Maximum number of SVI optimization epochs (default 100000). + Maximum number of SVI or MAP epochs (default 100000); a cap only. forward_batch_size : int, optional When getting NUTS posteriors, calculate forward predictions in batches of this size (default 512). pre_map_num_epoch : int, optional - Number of MAP iterations to run prior to SVI (default 1000). Only used - if analysis_method is 'svi'. + Maximum number of epochs of the MAP warm-up run before SVI (default + 10000; 0 skips it). The warm-up stops earlier when it converges. + Only used if analysis_method is 'svi'. init_param_jitter : float, optional - Amount of jitter to add after the (optional) MAP run to break symmetry - (default 0.1). + Multiplicative jitter on the component guide's starting parameters, + to break symmetry (default 0.1). Not used by autoguides or MAP. nuts_num_warmup : int, optional Number of NUTS warmup steps (default 500). Only used if analysis_method is 'nuts'. @@ -490,15 +439,20 @@ def fit_model(config_file, guide_kwargs = {} if guide_rank is not None: guide_kwargs["rank"] = guide_rank - if guide_init_scale is not None: + if guide_init_scale is not None and guide_type != "component": guide_kwargs["init_scale"] = guide_init_scale - if analysis_method != "svi" and (guide_type != "component" or guide_kwargs): + if analysis_method != "svi" and (guide_type != "component" or guide_kwargs + or guide_init_scale is not None): raise ValueError( "guide_type, guide_rank and guide_init_scale apply only to " "analysis_method='svi' ('map' always uses 'delta'; 'nuts' uses no " "guide)." ) check_guide_kwargs(guide_type, guide_kwargs) + if guide_init_scale is not None and not guide_init_scale > 0: + raise ValueError( + f"guide_init_scale must be positive (got {guide_init_scale})." + ) if analysis_method == "svi" and checkpoint_file is not None: _check_checkpoint_guide(checkpoint_file, guide_type) @@ -520,7 +474,7 @@ def fit_model(config_file, "overwrite, delete the file or change out_prefix." ) - orchestrator, init_params = read_configuration(config_file) + orchestrator, guesses = read_configuration(config_file) # For posterior mode the seed is optional: the checkpoint restores the PRNG # key for SVI checkpoints, and any valid key works for MAP/Laplace sampling. @@ -529,27 +483,55 @@ def fit_model(config_file, # Run SVI / MAP ri = RunInference(orchestrator, effective_seed) + optimizer_kwargs = dict(adam_step_size=adam_step_size, + adam_clip_norm=adam_clip_norm, + elbo_num_particles=elbo_num_particles) + convergence_kwargs = dict(convergence_window_steps=convergence_window_steps, + patience=patience, + convergence_z=convergence_z, + loss_rtol=loss_rtol, + param_tolerance=param_tolerance, + adam_final_step_size=adam_final_step_size, + adam_step_size_cut=adam_step_size_cut) + if analysis_method == "svi": - if pre_map_num_epoch > 0 and checkpoint_file is None: - _, init_params, _ = _run_map(ri, - init_params=init_params, - checkpoint_file=None, - out_prefix=f"{out_prefix}_premap", - adam_step_size=adam_step_size, - adam_final_step_size=adam_final_step_size, - adam_clip_norm=adam_clip_norm, - elbo_num_particles=elbo_num_particles, - convergence_tolerance=convergence_tolerance, - convergence_window=convergence_window, - patience=patience, - checkpoint_interval=pre_map_num_epoch, - max_num_epochs=pre_map_num_epoch, - init_param_jitter=0.0, - epoch_checkpoint_interval=None) - init_values = None - if guide_type != "component": - init_values = _autoguide_init_values(init_params) + # Resuming: the checkpoint overwrites the starting point. + if checkpoint_file is not None: + init_params = guesses + init_values = None + + else: + # Configured guesses, as site values (they are keyed by site or by + # component-guide parameter name). + start_values = ri.site_values(guesses) + + if pre_map_num_epoch > 0: + _, map_params, _ = _run_map( + ri, + init_values=start_values, + out_prefix=f"{out_prefix}_premap", + label="Pre-MAP", + **optimizer_kwargs, + **_optimization_kwargs( + **convergence_kwargs, + checkpoint_interval=pre_map_num_epoch, + max_num_epochs=pre_map_num_epoch, + epoch_checkpoint_interval=None)) + # The MAP point replaces the guesses where it has a value. + start_values = {**start_values, **ri.site_values(map_params)} + + if guide_type == "component": + init_scale = (DEFAULT_COMPONENT_INIT_SCALE + if guide_init_scale is None + else guide_init_scale) + init_params = ri.component_guide_start(start_values, + guesses=guesses, + init_scale=init_scale) + init_values = None + else: + init_params = None + init_values = start_values return _run_svi(ri, init_params=init_params, @@ -558,36 +540,28 @@ def fit_model(config_file, guide_kwargs=guide_kwargs, init_values=init_values, out_prefix=out_prefix, - adam_step_size=adam_step_size, - adam_final_step_size=adam_final_step_size, - adam_clip_norm=adam_clip_norm, - elbo_num_particles=elbo_num_particles, - convergence_tolerance=convergence_tolerance, - convergence_window=convergence_window, - patience=patience, - convergence_check_interval=convergence_check_interval, - checkpoint_interval=checkpoint_interval, - max_num_epochs=max_num_epochs, - init_param_jitter=init_param_jitter, - epoch_checkpoint_interval=epoch_checkpoint_interval) + **optimizer_kwargs, + **_optimization_kwargs( + **convergence_kwargs, + checkpoint_interval=checkpoint_interval, + max_num_epochs=max_num_epochs, + init_param_jitter=init_param_jitter, + epoch_checkpoint_interval=epoch_checkpoint_interval)) elif analysis_method == "map": + init_values = None + if checkpoint_file is None: + init_values = ri.site_values(guesses) return _run_map(ri, - init_params=init_params, + init_values=init_values, checkpoint_file=checkpoint_file, out_prefix=out_prefix, - adam_step_size=adam_step_size, - adam_final_step_size=adam_final_step_size, - adam_clip_norm=adam_clip_norm, - elbo_num_particles=elbo_num_particles, - convergence_tolerance=convergence_tolerance, - convergence_window=convergence_window, - patience=patience, - convergence_check_interval=convergence_check_interval, - checkpoint_interval=checkpoint_interval, - max_num_epochs=max_num_epochs, - init_param_jitter=init_param_jitter, - epoch_checkpoint_interval=epoch_checkpoint_interval) + **optimizer_kwargs, + **_optimization_kwargs( + **convergence_kwargs, + checkpoint_interval=checkpoint_interval, + max_num_epochs=max_num_epochs, + epoch_checkpoint_interval=epoch_checkpoint_interval)) elif analysis_method == "nuts": mcmc_samples = _run_nuts(ri, diff --git a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py index 9d065f85..61375915 100644 --- a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py +++ b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py @@ -63,7 +63,6 @@ import numpy as np import pandas as pd import jax.numpy as jnp -import optax import yaml @@ -1094,47 +1093,45 @@ def _resolve_csv_paths(config_file): # --------------------------------------------------------------------------- def _run_calibration_map(ri, - init_params, + init_values, out_prefix, checkpoint_file, adam_step_size, adam_final_step_size, + adam_step_size_cut, adam_clip_norm, elbo_num_particles, - convergence_tolerance, - convergence_window, + convergence_window_steps, patience, - convergence_check_interval, + convergence_z, + loss_rtol, + param_tolerance, checkpoint_interval, max_num_epochs, - init_param_jitter, epoch_checkpoint_interval): """Set up a MAP SVI optimizer and run it; return ``(svi_state, params, converged)``. Behaviour mirrors ``fit_model._run_map`` but the ``always_get_posterior`` plumbing is dropped (the pre-fit only consumes MAP point estimates and Hessian-derived sigmas).""" - schedule = optax.exponential_decay( - init_value=adam_step_size, - transition_steps=float(max_num_epochs * ri._iterations_per_epoch), - decay_rate=adam_final_step_size / adam_step_size, - ) - map_obj = ri.setup_svi(adam_step_size=schedule, + map_obj = ri.setup_svi(adam_step_size=adam_step_size, adam_clip_norm=adam_clip_norm, elbo_num_particles=elbo_num_particles, - guide_type="delta") + guide_type="delta", + init_values=init_values) svi_state, params, converged = ri.run_optimization( map_obj, - init_params=init_params, out_prefix=out_prefix, svi_state=checkpoint_file, - convergence_tolerance=convergence_tolerance, - convergence_window=convergence_window, + convergence_window_steps=convergence_window_steps, patience=patience, - convergence_check_interval=convergence_check_interval, + convergence_z=convergence_z, + loss_rtol=loss_rtol, + param_tolerance=param_tolerance, + final_step_size=adam_final_step_size, + step_size_cut=adam_step_size_cut, checkpoint_interval=checkpoint_interval, max_num_epochs=max_num_epochs, - init_param_jitter=init_param_jitter, epoch_checkpoint_interval=epoch_checkpoint_interval ) @@ -1159,15 +1156,16 @@ def run_prefit_calibration(config_file, out_prefix="tfs_prefit", adam_step_size=1e-3, adam_final_step_size=1e-6, + adam_step_size_cut=0.1, adam_clip_norm=1.0, elbo_num_particles=2, - convergence_tolerance=1e-5, - convergence_window=10, - patience=10, - convergence_check_interval=2, + convergence_window_steps=2000, + patience=3, + convergence_z=3.0, + loss_rtol=1e-6, + param_tolerance=0.05, checkpoint_interval=10, max_num_epochs=100000, - init_param_jitter=0.0, epoch_checkpoint_interval=0, k_scale_floor=_DEFAULT_K_SCALE_FLOOR, m_scale_floor=_DEFAULT_M_SCALE_FLOOR, @@ -1215,28 +1213,35 @@ def run_prefit_calibration(config_file, adam_step_size : float, optional Starting step size for the Adam optimizer (default 1e-3). adam_final_step_size : float, optional - Final step size for the Adam optimizer (default 1e-6). + Smallest step size for the Adam optimizer (default 1e-6). The step + size is cut by ``adam_step_size_cut`` each time the fit plateaus, and + the run converges at the first plateau at this size. + adam_step_size_cut : float, optional + Factor applied to the step size at each cut (default 0.1). adam_clip_norm : float, optional Gradient clipping norm for the Adam optimizer (default 1.0). elbo_num_particles : int, optional Number of particles for ELBO estimation (default 2). - convergence_tolerance : float, optional - Relative change in loss to declare MAP convergence (default 1e-5). - convergence_window : int, optional - Number of epochs to average when checking convergence (default 10). + convergence_window_steps : int, optional + Optimizer steps per convergence window (default 2000; at least 10 + epochs). patience : int, optional - Number of consecutive convergence checks that must pass before - declaring convergence (default 10). - convergence_check_interval : int, optional - Frequency (in epochs) at which convergence is checked (default 2). + Consecutive windows without loss improvement required for a step-size + cut, and (at the final step size) without loss improvement or + parameter movement required for convergence (default 3). + convergence_z : float, optional + Standard errors of change attributed to noise (default 3). + loss_rtol : float, optional + Loss changes per window below this fraction of the loss count as no + change (default 1e-6). + param_tolerance : float, optional + Parameter movement per window, beyond noise, still counted as no + change (default 0.05), in prior SDs (or log/logit units for positive + or bounded parameters). checkpoint_interval : int, optional Frequency (in epochs) between checkpoint writes (default 10). max_num_epochs : int, optional - Maximum number of MAP optimization epochs (default 100000). - init_param_jitter : float, optional - Jitter added to initial parameters to break symmetry (default 0.0). - The pre-fit benefits from determinism given a seed, so this is 0 - by default (unlike tfs-fit-model which defaults to 0.1). + Maximum number of MAP optimization epochs (default 100000); a cap only. epoch_checkpoint_interval : int or None, optional Frequency (in epochs) to write numbered epoch checkpoints to a ``checkpoints/`` subdirectory (default 0). Set to 0 or None to @@ -1308,22 +1313,28 @@ def run_prefit_calibration(config_file, effective_seed = seed if seed is not None else 0 ri = RunInference(orchestrator_cal, effective_seed) + # Start from the configured guesses (resuming: from the checkpoint). + init_values = None + if checkpoint_file is None: + init_values = ri.site_values(orchestrator_cal.init_params) + svi_state, params, converged = _run_calibration_map( ri, - init_params=orchestrator_cal.init_params, + init_values=init_values, out_prefix=out_prefix, checkpoint_file=checkpoint_file, adam_step_size=adam_step_size, adam_final_step_size=adam_final_step_size, + adam_step_size_cut=adam_step_size_cut, adam_clip_norm=adam_clip_norm, elbo_num_particles=elbo_num_particles, - convergence_tolerance=convergence_tolerance, - convergence_window=convergence_window, + convergence_window_steps=convergence_window_steps, patience=patience, - convergence_check_interval=convergence_check_interval, + convergence_z=convergence_z, + loss_rtol=loss_rtol, + param_tolerance=param_tolerance, checkpoint_interval=checkpoint_interval, max_num_epochs=max_num_epochs, - init_param_jitter=init_param_jitter, epoch_checkpoint_interval=epoch_checkpoint_interval ) @@ -1395,7 +1406,6 @@ def main(): manual_arg_types={"config_file": str, "seed": int, "checkpoint_file": str, - "init_param_jitter": float, "k_scale_floor": float, "m_scale_floor": float, "k_scale_ceiling": float, diff --git a/tests/fixtures/generate_reference_posteriors.py b/tests/fixtures/generate_reference_posteriors.py index f474d1d2..3b8fb674 100644 --- a/tests/fixtures/generate_reference_posteriors.py +++ b/tests/fixtures/generate_reference_posteriors.py @@ -72,7 +72,6 @@ def run(): svi=svi, max_num_epochs=NUM_STEPS, out_prefix=out_prefix, - convergence_check_interval=100, checkpoint_interval=500, ) print(f" converged={converged}") diff --git a/tests/smoke-tests/test_convergence_smoke.py b/tests/smoke-tests/test_convergence_smoke.py new file mode 100644 index 00000000..456fd669 --- /dev/null +++ b/tests/smoke-tests/test_convergence_smoke.py @@ -0,0 +1,112 @@ +""" +Convergence on a small real fit: configure -> prefit -> fit (pre-MAP + SVI, +and MAP) on the smoke data, run until the monitor stops them. +""" + +import os + +import dill +import pandas as pd +import pytest + +from tfscreen.tfmodel.scripts.configure_model_cli import configure_model +from tfscreen.tfmodel.scripts.fit_model_cli import fit_model +from tfscreen.tfmodel.scripts.prefit_calibration_cli import ( + run_prefit_calibration, +) + +# Small windows keep the smoke fits to about a minute. +_FAST = dict(convergence_window_steps=1000, patience=2, + epoch_checkpoint_interval=None) + + +@pytest.fixture +def configured(tmpdir, growth_smoke_csv, binding_smoke_csv, + library_smoke_yaml): + out_prefix = os.path.join(tmpdir, "conv") + configure_model(binding_smoke_csv, + growth_df=growth_smoke_csv, + library_config=library_smoke_yaml, + out_prefix=out_prefix, + skip_model_stats=True) + return f"{out_prefix}_config.yaml", str(tmpdir) + + +def _windows(prefix): + return pd.read_csv(f"{prefix}_convergence.csv") + + +@pytest.mark.slow +def test_prefit_then_svi_converges(configured): + config_file, tmpdir = configured + + prefit = os.path.join(tmpdir, "conv_prefit") + _, _, prefit_converged = run_prefit_calibration( + config_file=config_file, seed=1, out_prefix=prefit, + max_num_epochs=60000, hessian_chunk_size=8, **_FAST) + prefit_windows = _windows(prefit) + assert len(prefit_windows) >= 2 + if prefit_converged: + assert prefit_windows["decision"].iloc[-1] == "converged" + + fit = os.path.join(tmpdir, "conv_fit") + *_, converged = fit_model(config_file=config_file, seed=42, + out_prefix=fit, max_num_epochs=100000, + pre_map_num_epoch=5000, **_FAST) + assert converged + + windows = _windows(fit) + assert windows["decision"].iloc[-1] == "converged" + assert (windows["decision"] == "cut").sum() == 3 # 1e-3 -> 1e-6 + last = windows.iloc[-1] + assert last["step_size"] == pytest.approx(1e-6) + assert not last["loss_improving"] + assert not last["params_moving"] + + # the pre-MAP ran under the same monitor, in its own files + assert os.path.exists(f"{fit}_premap_convergence.csv") + + with open(f"{fit}_checkpoint.pkl", "rb") as f: + ckpt = dill.load(f) + assert ckpt["convergence"]["converged"] + assert ckpt["step_size"] == pytest.approx(1e-6) + + +@pytest.mark.slow +def test_svi_resume_after_convergence_stays_converged(configured): + """Resuming a converged fit continues at the final step size and + converges again within patience windows, rather than restarting the + schedule or never stopping.""" + config_file, tmpdir = configured + fit = os.path.join(tmpdir, "conv_fit") + fit_model(config_file=config_file, seed=42, out_prefix=fit, + max_num_epochs=100000, pre_map_num_epoch=0, **_FAST) + n_before = len(_windows(fit)) + + *_, converged = fit_model(config_file=config_file, + checkpoint_file=f"{fit}_checkpoint.pkl", + out_prefix=fit, max_num_epochs=20000, + **_FAST) + windows = _windows(fit) + assert converged + resumed = windows.iloc[n_before:] + assert list(resumed["step_size"]) == pytest.approx([1e-6] * len(resumed)) + assert len(resumed) <= 6 + + +@pytest.mark.slow +def test_map_reports_honestly(configured): + """MAP of the default hierarchical model has unbounded directions (the + hyper-scale funnel); whatever it does, a stop must be backed by the last + window and a cap must be reported as not converged.""" + config_file, tmpdir = configured + fit = os.path.join(tmpdir, "conv_map") + *_, converged = fit_model(config_file=config_file, seed=42, + analysis_method="map", out_prefix=fit, + max_num_epochs=20000, **_FAST) + last = _windows(fit).iloc[-1] + if converged: + assert last["decision"] == "converged" + assert not last["params_moving"] + else: + assert last["decision"] != "converged" diff --git a/tests/smoke-tests/test_prefit_calibration_smoke.py b/tests/smoke-tests/test_prefit_calibration_smoke.py index 3d1ed8e1..5b52409a 100644 --- a/tests/smoke-tests/test_prefit_calibration_smoke.py +++ b/tests/smoke-tests/test_prefit_calibration_smoke.py @@ -96,7 +96,6 @@ def test_prefit_writes_per_condition_baseline_prior(tmpdir, library_smoke_yaml, seed=1, out_prefix=f"{out_prefix}_prefit", max_num_epochs=3, - convergence_check_interval=1, patience=1, hessian_chunk_size=8) @@ -136,7 +135,7 @@ def test_configure_prefit_fit_full_loop_with_per_condition_priors(tmpdir, run_prefit_calibration(config_file=config_file, seed=1, out_prefix=f"{out_prefix}_prefit", - max_num_epochs=3, convergence_check_interval=1, + max_num_epochs=3, patience=1, hessian_chunk_size=8) # Sanity: the priors CSV now carries per-condition k_loc rows. diff --git a/tests/tfscreen/tfmodel/inference/loss_traces/real_svi_200k_genotypes.npy b/tests/tfscreen/tfmodel/inference/loss_traces/real_svi_200k_genotypes.npy new file mode 100644 index 0000000000000000000000000000000000000000..83df743bee090956a4046f75957f670a859ea824 GIT binary patch literal 119232 zcmbSR`9D_e*A)_yglLo`Ns>w>sU)eyS|?4?B$XtoBuSEl$`q2BN*WDGLXxRcNt7uX zq)Fo=X`b|+@4xW+#m9Z)zRuozt-bcz*I_KO5teq7@RZm!V(q$ZYurbeXpS&-G8&<; zIl^hPyNCN~w^f_n*RK2D>z1osx2+Rj-{!n}%R2FA-EosAO`51bQeSho=Ku3c-ltGQ z@JXK`I1lJ1__(hW9@vi&dN1%029j?ktlB}`KsDYRdmER2erESM^V z3stt01Q)Gf!D;S1!D~<#!-owJ%;pUczO0!fWVcNeRM(6aMs(Q-5`o|7ZD1s%gz5_) z!>omggXM*QMnO<8Qx)EQmJ#l~Un2BNdB(2QKRN2;cjlNsV|A9XPn0r5eak;nhY4QRio%(8E#X4>Q!c;wnv0jUGU9He zkS2SN2l@{Z+OodV@#!BPJKamjIiw?O=%ipYQc*~~{hf2?mI+(T6@=lk69kj~wgL|Q z;q#GC>6+YEDDV54!npy05VAlx>wj1{7&}+^d2x`C@LN~#e>zy0EjdXrw13R})NVqj z&rG4&UrBg+f4J~^RX1Vb3^DfoA*{VypNz1*UIbXlm&U)6~d$~lLQP~DlBYN7skc(6#kS-36;5?g3zy#1xuBMAQu(E zc89KTHMEZ)<+xq2zVL+F?U9N$xEfju(t@VODxvU|s^HPlz=u(?g5w@Z!LjW# zCl-I?-=p@zo^Un6?(a)R#j6Tw3*z}BI!Gwo(7`FU7YfqlD}?K%gM~$tTi9>tBlhT{ zBJ}o@6Gj-#7Jf{cAZR=)hZsyHx!m@4-&lQFBg{I>n(KGGZsFy3=&Eo>=$IGXbF15CkuH?dkY!5 zR>Hrj?!uS;Pq}~WXhG$cj8M^;BIHIs<(ifMQKHdE_@OdXSo`)D2bfz4N`E@pQ5Psg z?|IEHx9h3A1wx&yjNojpDGc49A@uE5PLHd1Sf1G`KI?CK1xgA;JLxg8#-{>|&R(Q10Trhh5feV~w2$icPh3%org3@18A%32e(4wdyY|S(j zR`+~Kg`*E?W;aE!HIonw-OYp+4+Y_n`)A4osS1Bj$O!zUF4%5*!S?eXxa-7VLBDRK zuyAiL!S=A65LeN_gD+li-2n~3!?%iyH3kbs`pp!MN(p9yo{*l}U3l#Bf)QW)2qy2_ z*~?!;*iqb0r_Jr$b8xQkrRE9!Ck+<e9}E@>9S;e{-UfnD(L-?Qr7DE&R~Ke3 zf5L~`76<_!4FnyvZi4yskwU850KutuA7Ngvr(8Lpi%EZ;ac$xQns1U5KKh7%b6}b9 zrJJ2_Df2D=De4Go=XUa&WCyEk)r9^3-J@o19lxIc$m^$HuwubADs@*A3O>pUQPvNb zx1pPmvSX64(x{H+CAYY&N>SLdqLcLv1^n5~SkT-3op(~+vwK__r8BGfZ|Y?hoqx_P zQr~#-;xneKkQ92`s|s;ZpLy1MjxeaEj-Ks9g+W$}h1{p(g?=#~skrqSOWV@tVS}BLjr5=cWpC{@&r0J54NaspHk#Ej(pEP$>V=OnVO* z!A-A#sjn4<)^t6=L$aO)4-^HHu6jnfstCuUhY7F69F*qWWlGm~2FpF*#Q49In_N%s zkP<3Vzp&MAy6~gAo`nach053m{Pm=P(hV}gr-Wv%mr@t}Z_g6ij@TEPSJJPtp7PI2SiAZa)2`m5+l>}h9PMQIX&GS)UNg@6Gn-b4zo&kOmwH@fKHhTi z=NrrmKhHk5M+v8W#tOm5+gUN8jsp^2@XU;BJkKirh#w>r*4Faal@F}n{f1Y4uJZ_9 zFkbpDb;sY~q+L&VJfoXXdhI`+l&xXW^ekpwtY)ay#UzC5}Q+T7A%G|`hf<)^#-tQbC{Abfs=)5f@+#6oOubNdfTl<2~ zcNft`x0nqj?ivxf^FZf}{FoX4n=&m8glKTh3q zkAr@;QReO?dSA}xv8`$B3eOe$ZeLVvK>r;w$O$|!mJ z9!ux6@<(W2Axk}%C&%Y=OXM}y_P)os%LR=2d6Uw!MErWaX7QFhy7~7Kw2j~KL66_e z^K0Uj+m|`f;|{YSDb&s=pr=6w7b~VS!T&rnu2-@6%>$ZD(-%6z^Ef=IhF0z6w7XS8 zg-i8($U>^+i)VCu&(H%ke5dk}$M&}~ZD}RvjLhQ@eMw=<*GyVWs^|4jkEm^bnr6&q z)1j-(%P(Ue*HT7#-(q214flMwK--f!tbO_)@hOqI^B=O-;U1Tp-Dc^_1nNIZqT0z~ zmi~8`5|!}AJ%JGAlMy??wp z|0R{|FHvJ=2_MRLvhiINrKSuP;tg}f&&m>UcY!h)+QR46Dg0yhgp1eYaiFYt*6YuC z+qIQ4S8{0b{yfX23%Fvvh_T~Ubd$Zp7LRLGw9Ta1&@#TwPo&%4a~$*~pJpZb)Cnr( z;0sx7T^~jj<6G=i^NLAdS{bZ=owWwnXutG1{pQzG=D`zwp7D^XMHhK^W+AJ8-Jx{O zbAFS`WW?}OtX4S3p5rd^m0JQ6rWCOJ(|5MkCsJoe1@9T3V{DGBVDu!LyCRxdyfKdz z>yC5Kl#{g9d(MYH-m^ze6YtoT@tNLf9?{RB^5jJNjJe6R_w$%7^2(n}*}Rb5$S*^W zv5hCG))CIi=a(50lFOJK`CR(_2bErRaKnjfoSyfJ3W=xrs4bHLGcGfDMkc3R$z*$A zF`eS_*;^`~p6>$azU4Gc>=UWcmQL+^uc*EG0vG=drvA`uHu}Ud)#ehrQjakvxrpT% z$=rP|nu|AIW12}RpQk*emueBU+KzC-wieoTzsQ>CJG4BJ!H9=VwDnA);o473ZN0(P zZVi-L7{Y$ax47wM2IXSHIL4xbg+=nh$osjBJbaqNdYq@$>NAXWyv&(Bk5c|jD2MHc zU?tP?l6@WVl_vPt1W!y0~`-$p^(pGNW7bnTnQB^zp)V|A8pQW5;s zyO67IRk7#nT&CSjWmdl!MtnNX7ZFEz-TV|44zuu4CRgg@(zbgJ^M~X!t>0lj(8^{<^EoQaxkAb%(EENC z>x&yWU}!L3CY)f-pvTnHX{GFvPU_sw=gYaiOce4NmXXG_NvZT&aga}!ouH*_D7Wmm zz&7bxE;)LdKW09sbdTF~wD#nXfF#yl-%EwBxty1GiqqP2sFr<(lk3j%v2cUvlf~lA zQIu|NV!)o0Y?O*)`?Yj#d7Z(6kjwlrE1c)bav1gWJTI1CWcaFDu6z^4T**+5`xeE` z!zyVJ9!XQZebh}q%J4@QxbMduo|1dZ0b~HQBysI z&opAi_(jt9%5m-*AIYC31>9JxiVw%=mV8;;=+mR*Y@hf!rdX4*hPq5+FPI}`U&wNf}(%7RE zc9pW|aWXTaQ>i!QEaSqya<9<7(30<=`l4zS&RvZ;33`Ol5N9A?Cz}h`m0McXTW1 z9Cn8f6%JA3YAnB2M2K<7W_wXK8*)z5UMGl-4KYkeKgeeD7HYpb%S4Yj-g@9k+Y2$A za59kCe~bepa(J$Xi0{zjj7*4U@0k&lc1z)q)>KYRJIJD&(X4%NmhFWpjOd)tralSu z+Iol*ns+#-6zhZv^g!D%yZQ+fAAwyp4>jz=v^qR%tm z_5ion#Pa%~I9`|#%Z5MUl&sv#@aQ;JKXGKPM>#jV$zBU!T^iIbU&C%m$&=4x*?M9JrnuR;tTt8FD{d z#ks(bVPSE!`kqQ>d4Kv#p5XKk(e!v0%mdFnIsIKY4OPI77b&!FcjJ#s@myBAm)8RV zIO}OGPhQ={iiJV^=CGHl0j|6#J(xK!PBVKOcF^Oi zK;xIe{33aglQ$pW<(u1BDiuPt=?fVY8^xDSi+DymjjGe5X@1q54-&U{-T5ugE^aUY5U(;$@paYBqZ@ zs+%2C`tMAt>%(7+i7IE zhCw3(`F(Mic-B;QdU|uql|Y(o3#G1E5bYy((`TbQZ}-_p$-YjkIcvuYa;|g}^L_5B zG0*++XGh>}x(xMY$*q%I`CuJQH$>8?N$fv26X-W@FN5az^TV|m7FsP~w!}p`z1qU$ zkXYL8ImBO=)>7iYZpvOg!7pzUcxfd445 zPL>7-v1^$X*Us9{xl3L6`p+(|f4M-^i5C2?rwNVLMTs8DL9YES;$WR2z0CKrIzEse z9$Pc*pB=A?IN3MGk@0Ib@%#IOT>dkFeeY~wc%%!PWrO&`(3#DXthjLHI))~Nu-4p) zkVt2Z!fNi?7{T-IOSvu3p7+MC;-u;w)CgbCtS6qdo3w$d(t(WGd4&7#$51H-31LPabKq&_x_o}xD$c2d*j61iuo+Acj2?KBDUQ; z`SROB8dy%J#%@QRNu0$~jdQrZeLqY4?xo^%SE^q0=W=;hj?>-6{pWg7;`~uY9AD4J zzKi+#$8>7vE@i%V98Z2pV~qZOetk8cwMOfBbw+)qbUJ7%6)%maPA zXez&sU6ISF@^T%QyzrsMHB0_T@!{MCf3~$)bGVc>XBCB~U>A!_8O9Kd1OV*g~=ha?|d3}}{%Y6K3 zybN4lvxv#}0=f5}Gbx6b60 zQJYve!i>*Xgz}hGFxUDorGu0X6{N<{_qGeM&V#ROJ!#M{l1sLU2%k}4zpPQaWnOG9a+4|gWkm}Y3lC752isJW@${v&q2(n52A&GJr!;W zJk_~`7V2v#@oqWu99Q$$rcqR~@TQi?bzLduy!F|Lzm+Z7vP^?t1s%Q~IGuZ{$1rL2 z8s<(5<3zFc??+nF!pV}yw4!)hZ#JvM_dd8=^1anKYI-iBM8QZdJGqpFSEq5``O|c5 zO60=8a9Z`6N!tQzHWmye?=Pg%BO7|Cj$-u0RXlofJ$p)+@pF+c&%bx%`I$R7ZS!>Q z_`8=MbBNfu^ zIC2iDF~gdcCHjnTm7#7AD>mlG(dDBH3n!CVx>{5?x1Q5)PUf?OwM=}!iq%KvbIyc` zG%hz~X!bbTf0!jcrU(0b+Hq9PT51h6=L8yZmccZ7+w5bpF}6CJiqtxJ}{WYI7=P8dBS0J6nFa(dg88PClT|mQ7}~Z8qb% z2O=i~*z@0=S$wx-I^*t4=Ru{7yghR}I}~@ZK2VbyXI1z{!h+J)+H~(2%4H)X*|=^g zjoP%RW-^aIzOAO_=4t$HZ%EBba_cJ%R!%gb{wgi%j@`uYBkFWgoJcLH7&;xFK;I8b z>34Y|m2WL!@$$+1wPqT<;umq#%n>Ycuw=)DsdRa5&!92$xk=KEb&-aAcFC9{7Y=6K z!l~3xcVtV01|9W-*jQmo|+sg$qi%?pDy7`bB#qj!ww zDzQfhehWEwxfK7L0jD{SrK!Ro9*f@0n2VM)`)#n&(O z`Q@Jj7caJ=$D-MsZ8eEHGHP5}I)!eDrp)MR%q%$zdhegc+Lx2qWHOFgl7{^IO_x8i z1~O}?HDf-EW1fx^rMKHKL(haqrwQz3J%;|&5xt;+ocBjx^dknbZMqQ)bCg66X&nFj z1(o)yQ3ws-($nCw^V4bOyox5bhx1aS5nqLmVnF42I{Hm!LVh29+_i?kt{L&3q8)=y zjilN*1OABY$0r}hvs7Q3O5Vfi=s$rK!{w>`ZaRA>b))k(4eH6Ma8&*Po)LT9T0d<* z?@4Yc&|#+QB-)0WP^X_J!_|6mXytHjS!&Ah(K0+8YedQQ~s~YfF4+94658=T3=2V+&Db~kGrv02v#r1<|;I6_X6FuH{)}j8?kz#$$;K#GG zsnkn{D{>|>wB3+8Qo2-bJQ!#b{Lp79{bYT$f2hHb5cMFbEnaqq=(M;VkoOYw+*lp1mdaDfKiXKMP zeW}CZP&=+Op2URxfixT zIhN~;XSwS_=Dr`nlPME;EA1WB7HY7rY7HOe#8U0ACfhH2vU`CPHKY4-WV;gEx{Vio zAQjdr8`3|_l<(7(SSs?C&xs!VqA-RtbB5FTiY9k0*vay86Kb#SMbBtmmXr>r)Kal7 z*G%A;ZYq@09?Z!Svw8086dtb>v8gLb`@v)QO<9u@hN@HbnjSrU$c2qlcwVPJmy7xB z=r&dK3Pv->dms;98N$_mgBks+KlR6S!T!ofCg?swzV!?`1k3Qk_|bHF_77?8I&_{n zmsTf7ie9xT*LPRvm(yB&w0(g1{01zHG2mcx84l_C{sopo=(T!a(u919OET*X*hlW zSB4B_@!*+!b$2WWJR8L^7rJxWNChqqo5cB>hf-~nK3k8Qa?a*CG}<+eb7Zx6s&EJ= z-Wo>V?`j+u`2yBc%-Nvam(E6Q=ycn|$*x1Gcyt3x%mz}`bRZM-rm-?ij~;u>I9$ZN za}P46rUQpwe@Dejb#bpEPiy%vFb*5XgMDRaCqDNTtwpr<{0iMnbtX29rr)vQRGQeE z6UACPQZ|aG7b&xrBRT1{Di0OPv&|q472zUY#905(ljZCUlex)x2w#r+2lx*R zgKdA&8&u)*O>c0z{xjz5YI7JAXnV95y{^g&8cOqcN>_$@zACJlaU7q;91L(!6g{)c z7(cgx9e2NBk3~Omekg|9j^D^Ix)1w~Y;;)4h+HR6y=XC4b{`>Muf~s8d$B!Ij;)4+ z*s;Qp^NnUR`P46jY*6Br)ZSbeJDlHwq?j~NiBqUe-SA#?iSAG5WJUJ-r%R(Ny;v|! zi@A5^^2gOdbdns*{3jaJ{oI!-UXs)}*p~_ORQTb0F+!yiD7R3KU%P+D+ezKncxg0u z-)X^%sE=@|RA#lP$qt+`=I-e4_&2)-j)lY6cK8jF+Pm;@pB2CD{(|uK?tE9G#6R-~ z^3)$A`u#JZu)R0CE{go7`~fnD_307TkL$jTVutZsINyJdoFjuN`+himK8Lv^)3w{DYB718H$nm;Z|1plR?uBzzh~ ziDOUUl3as#x}!Po>J6+vXhdmSb?)gaLES5|^eq`i)f@6WHA|X(4EnLXr!xNibB7lv+e~fT3({oSc+P) z<^1ra1TBku(l7rH49Cl|=z=C4(`zwn$x{TcpTapQefZq81Hrz{u+-Gy(3s@&o`hUmlqT8^2QIBb>dU5W9-ZWh;o~yiv z*fU?l{lGngA(+c2?U2(_2LgQa;-x^I#Z?_Ef7YF{-j za=6QTXL@jy)F2VR!>GBn5vOeKLVe*ms$}Ufc-1qEP;bYhFZb|$tw7h?tMFPDY3L0FFsZ06?-{aJHA1X`aeAM z&?Vb+X*TLNp3eP@t`|3`x!?oJ7Ixk(E7>sR!ws?k? z?*rLSr#qD^zvI`)o_sU<8A_f!#hHQ~%w6*kYtQ(L^S>%j=iEip;}7`K`4{#@BJM*w zp^#kyOT0qysSym<(_!G3Hr&14lh@YG-;xY}St{3qB#TVm3{8K0$b- z60>7fXqu9TLHkZ(jour~x%mk*qSIkNbvS<|NigVoI^2%_!95FEw*FTJ&ANYRwAB#j ztUk1^TSBKiSq4Q&vTIcjRw#5~(pep5O>yN9QM1%9%E8*VZ!jWHnWp}4(cz)W$O+&= z! ztospBFI8E*qZN{!zP$hQ5TpB+!Pztx{Yv{&-trHs=Rbf&@>8g}DY3Fw8=R6Jpv7E* z4N{`EHkD)QqDHjpx$%C1GzaxpB{VDHHDoq*d|F`>oQf1baeM4Kgw?uFF~_+PV;6md zj<-C08s0-AREv4Kkr-&-iBs-V*|a1 zgkNwOeT2)KbuXMOc`$PMnm%gD*%94pBMwi1-w@EgmUTj7`U72hOe zcxYS+tdkz0$0{S5i9NoqDGQtQuH)CsPY8eX4pDcXVn%2VG)f-BGouc_&b&jAUU%_- zUxH4bYZzAb9C$X#XELfBGFTRg&$!)F^%b3JwqWfx{B-5fgL)xhZNKaOeeGYU&|7 zSB93l{TY9|0lOwj@ofA+=4L)cTx%On54i=SxMIWx{K2$-a(rzQLznLYt21uE>TV;< zH7-Hj_5&=Z4Ca4F&N2MgEcShO8~=6}<5u@bXmnM=d|4GdcD=(e6YZY-0Wu88dI}4f%ShUN6EYFasGs}`ACh0-$_*XbW#2+USUVmEHe<-=ZfwpM z&pYoct{LA)_|*&qJ3fMh+E?7TdlO&hNb|t1E_6OI=d*jEP@H!Qm0xb4;mIY)%(w}~ zlrNYzV(%=8XyGNfeHTEH%D|8_FQ5SSN^B|dX58oDrV*2$4 zY{@%|=NJ2O%+LxbiT8@O8;Kl|@DsOo*Fw`E1}=wMF#Pgg3=-ZW_d*dyZ>mJ2-vr)w z87s~nPv9}344ykbAxE_r9mn2)-r76Rm$-;(ji1mccn1A2c^)auN8_=FD4ndsY=sz< zyC^YjR0;I2UPa*#B_?DSvTo!FM9jJh(_w${eUvIaoBOdbHw8(}m(YHEKXUFhi3@lzOm@5hbLq-k`m3^U9hVoRo!=#}Nd`0*g|UPJ@j8+viH zkpZweY|MC z3Ul>Ve2Y!N)g4Wc&3X*^C$j8typ5twCn5BFgt($Ma)H4l_ufK=8T^HP< zn}NO^(3@pM=cQ#h@Zt;RhM&SRqv!BDT8*?DS7CDOK1Mp+#REBY!Sr+yG-|%%fmsWJ z+a$SVd=tJ@7vf>{8ECrR!KXeJTyUfu&*$af*k@^;+-E}7@vR7-A!4BW8C1`0K#zwd zaJkZilr7@!Z?FVamt?`a`Z)TTNbxr$#9W?-^O6UMmb?k)X(Wv2DSf@M83eO2gCE>*#!{Mz<*; z_|!cWr;-jq?erzMu6+g9f6wsnMRz*X#X$GwePkTk1^FYL*s&@X+w00H+Ag8sR~W5D-QxW1DN910?K;m@{XJg z{kEsTYWoKm{1rW=Ng=RQD8y;|W}FMY3CUGSB3_g5w0AzL>hiJh=uVy*)QK$;Z_zLN zK6Zaq;$qb+sC#({(>6w9n#dJ?11nG?sIlTzJ_7Pjp~dGOrd%pO_`qwJ)-x294N_D* za|8!w+<@7l3Us`U#qFzdbWgbs^E`iUL=2{dF~=z$qXH9n=1d}-+^dl| z`x*A!&&LY2DvaG41Z~ZO_~rWz0akg~H?R!K2F=*AZ~%)-F5|}hNPO)chq_1!h7Sor zP-_RQKgK{OwHr?bj9^N+s98EoaH#PNx3h2l9y zb{x$@+xDaAJ|-Rsd!yj&A!@Ok7w~dS17!0X@I|8rqsCmM1w$b@=0EJuIt{bn5Pp+8 zhq!KQ@cDKiMl5)Mc#kN!B*ehrg)9?%3lKNz6y!I(h5YrS829WJ-fqvt)=O0=8qURjZH%x#huXY)Xtr;|oAvuKK+N?V*Ov%AUjY3nmyvd}4Ca#`BeTpO z)8B=ncv~Gp7hFNqs-G~Kt|)5U5QIKYNAc-;^z*oak+UT@vUdRHm>z)M$PJig`U@St z$*46;!BjUzx;tFQOUVetw^v|Fdnx31Tt|vj7aqqYqE-Gryj`0y{&ERib+TxxbrMTV zuA#@<8?cSdz{7+~u>IbX#RFncnsO0kVjubw5|1a20q|^XL9gF_4Cy0Bb*rZ+TT+U= zwg>S4k&E0%_aLtj53T+gJhmhUW1YX@-Gg8(>Q#*8PZF@tNuSLtyRr082TU$K!0xc4 zQ0#vclc&}~@Ae(s&4|IL@i{QCtwhi1Vs7%T;9K|Oh!}Mid#u8-c+W+&Dh}nbhnYD2 zJQ?3y-eN?$AO3`A;nd+1s7S2F5YH;43`oF4!`FBo(tv8`;grbB#E+VEY`6nDdkJJ|MU#D<-}m+uR^$nzCz26cWC&p5WA%c z;QFf)F5QA~V^{-1PKdKXzijAy?MeMUcQ7wL6?(%e(Y*Wu6eBXQLG==Zc~8-1e;1Bp zAHx4d7-)GOX6M%z(i(mkYaXhj8fWHR#*iN7ls4up1%jikL*a(and0 z(1jVZE3tN9HhfN7p~5l~+P)VsY+gQQoOOc}+Hh?^Fh;$62G6Ct@gpM~2^L52XX$+; zok@p!`3saS`hvo`FnHe1h2aEOp1QXkW^zaHYJMT~a^j(Q#hN#F@5jF7PvFWASah!j zZ`5iKP?rWj)jD{&CBW41EV{(__S4l6iwJ8J_5|3b2dNDG7pU0Dq>!{Gaif`gvV-;D1)X`*z7^G}?k&abtrF zzbXeJ(BcvndeuVuzoj^78;QrYacB#@1ZB%Y^fXc-1~=m5k&6(zuH%b`AG{NPL-kEK zvab%~fXe}}{VVE|Ihp9uoQaImK!u6n>f4)k*Ds)Ra6G)O z?8fYFc^J0!3_isDMCF4+a2S$~uE&*_INcYjL5XmA6T^oyHbP6~EMm?dMpt+=!mfuR ztIP&7wa(yrZ)rwl9fXqS2|OHb!&KumXpVaW?Z*NtUY$gyy%>9yBam8f0K3MW#%5Na z@j@+(rnMqvo(mGO3)Qd7VKAc*U)rCd#V!~_0uMoA_Z1`!NP(2aMNCx<#OV_r7{9Lp z#+Ig#wNJ;u4H;N%eGKwzX2YiS9L&CNXOdDDE@>x1C*~AJybv+FcriB11!CnNXY}Y} z2S0H?T0i=sKKb}$9*-Y&uE=#tfn-)P_TAnHsdcBZr$;5uUkXJ1 zT36&eY(Q_J9p^{n!HCK5nza!hN2Ozj=pFdHbAne;0;E?8c)sgC)MG<1ZfhVu8Fk}{ zAT1_39L3G5Hh5X4p=e(K9?$baSHnsCoD>biFRMf@&VyA{7~GsMV?fDg==6?+v}yo8 zUk}0MeGzyzYBB5_%3zEzBzIeY?l&GI^|d()hL?%?G^S|7;7oo37Dmp)SmlGbr*{;C zv}$27=>TR8I0;YfFg!O;hSSmWm@wD@+L;kZdwc-X_3dyg*$P1(Nl=yDjB#&A(^&M= z%)RzvqY!{w9-9!g#~X(RM#HsbHZ&8{@NHfy-h^gCON>uMQJ2WUCYap+KWJ%gLfE2C zR3>l6Fi~T;oC`zrQEzBhnWJ+{F>HGtL*uoPNc4}w!l8>`Vk^lXMiCfyJPPL{!*Rgt z7;dLeiIo(-EfK&N*=-nzovO)!{20nxKY)O_qX@Z@ZKZF+t zF`(cq9>?ZE*$;@_wi~N9o@1KKcx>6b3%#rRaN4{m~sRqn0Cm`x;2^ zY{#7Hm1sO02_LafpVHch$?JDv+0K)AeB~Nqd#!@c;W$jRjD&acHthNr1^ELJ$Wq;f z{x!k}apsNwaRv8`Q!!`H3o*6}5Skv1DgE|A+in=!pVY$Y(`Fdg zFX6Q5b@=f*8KJXY!AyDsLXuV3+A9*vZe~MY)I!>``oiq#JEAPAaisrzHeQ^>SGp=(3HlXFnxS6nTm7vqv>7s5=%;ap#5$btmLj>-{V<0 z(C-i=51hcDN0Sir`lU@sZ7KF`+W;>M3v52OAEP&l+&AeEJd}FUbFP^GGnY{M^M#GQ zmLU#wnIbP}86G)~L!+pf3l19Nyi+ucC;vp0rzK7%*x_+kZUVfHXmL)O$Im4?aq)!-%&6s$cCu^|vSp z|5js2fEn&Ju0V?MG-!W1ib9!{FgW9h0Gk*n+|ENvPAk@KafX5z10TCwQGa9u zp4|mSUFC3o5L|~(M8GUxc$FSPLXi#*uiFbdIUnqv{sgnto$w)NF_cEiQ|+5K%I1jr z+PDonHPrB@Z6m^up22@o8!@!@6xQZgLSy`KWXCxoB5wn_8RkRt?P#1+OF&3jl*m60 z&{B**km*58ZA=t>scXm|76@F4Letz>)XxltpZZ~5N*Ir|_qNj_#|yUDCqDZ^D1_Sq zvK!In^$ipBqw!$(H28g5jMn#+==^Gj6-&mU@6M@^aIHaP_6(#MFGB7;O*G%Sj)KT) zq`y73Cg5|@!u=;it-pB@^e@g&fOrHUDg9?n@ zI}{s4-_1aJ6|T%%h4QW(s0JECdY(57PmadcUN5n2+680;DzN!m5IRNNnk^X%clq7O zSUCmZK@hp|P_R3EKaPdZuc5Gx$;8BwURX3H8Syz&;Sp4eV%HxwUknXlI@%fq z9qDkG?SRPSgP2(n0txvAxL!PfJ}$>lm9PlSVd9+uuZf5`xdAU+SD+@@57FXhnC>${ z{OZZ{&D#!pYgY_zpM$Z+eXvrPidEK{IG1z<#nJY#G6{iq9}^fAZ$jT~BJYn=8 zpa0>9@<5cjO-E;G9J)ffac1KvNZ+1-D#zI<&Nju%w#lNlO%eT8e|&MU!neM9c%!!* zlJVxamU9k|r|v*kuM${^d!+g4o3Z#?9dgpm;a0s4yJg1mv*uDXbFA~cp*pj9Op z@`q=lC=2lZegz$~R^r`EODMS~V2DelP4tn8IGp>}=G2D;7%XQCUjrrVd7F-g1)4aY zJBw=<^~b{0e0bT$q0Tx0eO7nFmFwMcGRX&7MpLnD*GNnd zbxr!LZScF|kJDqMS(UU4U-hkUztb7}PpwAWyS{8PH$a}$d6;lB3`cum+|A1v)ZhXy zH3QWD7m4cUeXU9iIRf%}Ed%zS|u7u?AiapWyU68k=Gc zU|f+s9&4olmqRiBwF?@>o}uXfRRsJ zVYEme$q$wBy~qeB?MEX;_P)(livXld9D%XR%+WS@9m<+UpeF1Pn)-}|<;~@=an6Ep z+YAT1rFdYxF{}?QL%BE`Ez)+y()UB~F?J_3)pRg)y9c`MZnIGxr;q*pMvMF5XdKWO zgFD4i@Z2&G5_bl|eNPEed?vsmDhg}H9Y(g!EL?ZiMU{BgT~ouwy-+ybsP2K*ywxzd zZic#*ISA7>#KkrH@jZPxPRZBX==~UlV-wqLw$4eyf&PC*CA*` zAN(x{fSK<~WJj$=gShK)UDq3#k9y(Pd?jeL)Y{Zs^hZYML3nj{Mg46TxSyGUuhnu~ z__{yt{9THG2ig$i$K$&1Jd9gvgrOh0VQcJKNbH}A$-Xyi-lqn@{nk*NS(bpb_3bum zp2T6!$tajseYQDyYCN_UN5bsLFPmal0bkO?a4T~*hF<$+ z9xCwL+y|OdC&KH~Z=2Q2Wib59XPe^|z46XzIySwI!KF85FzllZMe~)IxPB<+ZP0>z zoIK*z_d#%rEKCOWf%f}!Xcf1 zuD!64I4cwgx5UW_+Up13SNhmPnw3^GuMd6@*RSva8~tl7rNARV_l;%(ZJB~h!o z8^(KGAYVfy&-^ChOu$^VBltgtt~{=$?~76)AxQ|K5+#HrnKC7L_v|BtWS$a2rX(bl zB+W>(Ce5YNEF_KZF3qNdkoabfpILtIzxUq#eD3F-bJkvK?Y+-CSFgu(z6rAU@tDG= z27B=PYt{Mr=X!jd^^m3J$~xSBM>$D~qxi%Rs{C$}1Me~$#dE(9?`I#&>DMPx*}sGj z-u;0xU>gNH-ME>54<6yPm_PMe&-Vu1BDE7M zxWTgJ{J8FR{_^$^9%*}s&ztMae<-T)XXA$P;+J~7?_D*XvsR{=G>?z`=+BE%x+rt_ zMLyqNflD^ej%(PxTiS6z3W)9X8}`ZbbI>p7a|H4WrpPnPi! zOV;px?%jEdb2uOOQjTA{P(fNY-FWjYM;=|^DDyv!l=^-muem*%-}@<&so#A5A$k^f zvXk%$jRSa(@S%M0VR>%6sfz|#59jvd{*d7cZEj}vfE+$*@hP*N`D43p^kZ)~o|h}7 zcg6$xS@pjB;I?ZtH0cYC4m`_U-HrIjhRH@#c`1 zF@&s8jHDNCZl|1D3V56X&seS8wFcqYq_y0w$`r#6zy?8CQLZRCmP3Td?JAg+ci zdfR^#U(rvFw+!3Bzgf6&J-gHV)6A`0aaId`AJss6m2c41vz!XgIFM7!E&BFw6aTq} z^I#9~v#-{3PmKV+xFLYAJU@c>TBFEwJ7@E`vo!gKu}w66!cx9#UlMh>+@!@%?D&?R zu6)#ITDoQ7Ep9uFarNnneB8J3JVTyjm>J0Rj)d|)wmW$3s6c-I;~na|UXlN=P=}We zZl{ewefb5=FZ8u)9ygV7SCz>JI$rRA(k71O0Y5`YB`}rl|4Sgno-4TN^+3`HlknY> z3Q2iMJef*n^3mD~yhTG^R@=En`8xCYlD`{yA8UVp&Df1+!Ge!H_?VJD?vkyG5np}M zWNC3&290S{({+RyUyY4U9R-YuB2?zKl-R`_8=`q>bnDEZF>3qM+ z7wYry8!g{Bfyc@Jrcv4Q9PzQ_)h&x!v(o9$p=gR3*Fu9ke^cGFle{b?p0Zyq=G@GN zKY83pe&aN_ot7Fm+PRocU+Be$+*jjyF`0CtU7nl!$!Y+*D`?%MWZHGYiG1IjrfqT6 zv_gL`cNy@OYKDi>S$9=FY~y;~{&|dypQE|kIB$NfE{YO9+w(1JzL3V?GBT0>Oipqg zbf09ejC-NUMI2<_|Wy@)5m2?|)kGbr*8z z`l4WJdE~|K{&_^@M!$)j{*Sx|Ra5;g75+~7A=RH{ygg$fANuYV1%%wCuI;aAUE*l2 z*rm&rXUaHo#t2y-TS}$>lx4jrk-F{G0SN9~Gm>qaH6NL)*8cU_FKV6piHL z)-U8&lvMeD!CE}vB4~2;52_hq#ar~paL3$a$_<{yyO*CJC#^SBwI+}lz|>`{`pe@qIQ0WO&d#%ay$7%{|ID@uyw0yJ&>@UT*2uM91g8C6$j4D56oqx1S!! zBLmL!1Cx)@I+<2lScOw?&zoeqqk;UpF`m{oiB?pFQqK4+>f7fD>36E~P?KxqG3Nmp z;y#W1zKOJ5)OpL~A{tZuk<^z?;CYRa+`2~r=`G()#*)WmpzFYk_f(Kd-_d+WaSm0j zy+Q}3I#Bk=S{i)*B!Bpzn&@>OzOnu?rFq?@@GsBkMqVwQ(D3IYHP6!cIoGHvY&^fS z^#mO@SVNZ!{i)lM_1ro0J{6xE$*bNksmvev_6hL7*>%=^E2vrcabL6h?M5~ zn>tGxX#cA(bZm9lV7Eb_RpieG4a z&5h%Fa?L|O=s-~c4OWuXFqZ0ai#-P9I5UXis_ppmp$h!r=^A?J{fk0d)|2rlGwye~ zlGZj$xJRI+3|CXh)At-V2{}s-y;P{_vjVructUGl4&tk>JSH{wRH{20L)wS0lSK6! z$;sD{ZH*~kxyp!7%6LJ}zuQUmjU(;Wil@NNfAm)O27P=QOv;ZQ(eX$HetbeRnX5$7 zxq;WoDyy9kc!ow}EdL}|MXPSjBAp5yz9)Vx`8ao9I=4-mUf()HZU;kXg4$WywYz|x zFH4}guO6Gv87vviLlGELuV%d?XZBF`kxX_oMq~{phm1 zDxdcB4gc+wLD8e{k!r6pYEGNPx0O_omHc1&@pULwa(@cBTS9H$wPZcJVhVfxiaFcf zrZjIYGTF0>tA6hy)5Icjw!cFS%}Xij;5N>t{Eu9pzh_q3OKI@rv()X;AF7U@&tHsr zNptq4kcS`V!yHS<7MDn?{uQ%oJVFUhWfcECh2$=*CP(82`WaVA&P9o2c6mF!a1d;8^ChF=LMXQU#NN2AGot@@Qa%(nHU~&*?$nLq&QJyz%yF+UHJhgY7 zl&!^mT0ib8Hxe6Y-?00%eclj0xYU4hSKOtF<^(D_a+8>>XB4rfj#`tWC~9~$edxcN zZ`M`j1;-5eN$=xib^IT_%b(2S#^`WAk4o~`v4|p;U#ALTDvdRCrBaVx+;ma|wVp7c z$dX3-?_x8}S23i91L{0r)@06G57UAb)5&0vE?;tP2A59SPV3f)WG?=XDo%Kk`G88& zo*zyQ8xNDy76mTOP9$5U1UfuJc8%>O_4~)jG3XpUo|Z~oEtYhlWih`lZK2V-jQGP( z$!zqBfm9MYokHIDQAo>cHet;ot{GxViI*ZMB_)w=oVZ9jC1!MZp_Kmp8_Lft@~5;c z0}5VPKoP&<=;%+Gh8_*1g&Tj;r+?LC7`dBjHqPKxx&d@k{xm7=OrXB4Ui5x?1QkT8 zP?u=}AGy?le*IPFkL~MebRTz08X8WO{e$SmUwQiW_$j^Z=0;J{-kd(E2U$4Bv0ZXHeP zvp=w3^`|K~&w_T0E2New#-yD0i0!&fBCQ75O?G#0Twg-A=D^u}nC-SaclWOIZ4ExJTMx|+z^ z`8GXN*Q9taq8Rr>^u%!;>1_d7CcL7W5*soqI7?OI4EfDnQ)t^Q#&13u#zWRVqCnLY zDjV3Hj*gm6>5m4JS-Lq5c5t9mYCSl=5kh;HrLy2@iZuI43mdcbBkPlz##CxrSzH^@ zs1uwF-2PF=1kOj@?>2HE6<)AQK=+$y4xl&Fn<=~^=-^-4B(ls@U0 z{bq8>`)PV*0#pB+!LnsFvDjw^$>;Gz8nAXb{}~oWe<}u(iEJ*zJkQbfC9V{A!IM&0 z8(Xtoo-a)9K|WebNVVTW(%axkZ$<=?%Ux4i^IBIH-&6Tpo84rl_L!Azd&yRmQ^^{h#zGo^0SdUQMO|9+2L4#<=D{6c2YU8HEu>7*jJ zfEnGMNAV#=6t88-wats!<%9^<(QuV3`D)R>A|q=4vy0?EUZkYdAX;9W%M72KBD=i@ zXr1R{idODo4pYKt#gkB`KV&Wa8FEqfTu12FlAgSqabL1s9LHX*_n^rxtN5SKM`)(J zKDjNfAWd@*S}&i^&K|u(%R~CnkS23lG+-bl$9c2Cy6V(0C64L?L)rCxgK47b8LFQ< zi;tSDNR9VqlE$&4Wb&BH`kLG5>+NhxIDe2rpBYozi%C@W$A|WuC}FiNI!Z$A(7BrShguPVY8%}Dne4`~IkaP?hSb+RU z+WU1T4fgrOw%jfx$GEYahSjn!n+8ya_ZHedMv+=h^roL@Wi_qHyUeS0n@n3m1jUbE zSmTdi>Xzb9a`$^u=jbN#J{3tO*^}tDtVSh0(2r8?FCg98Se83|Dn&m$LvmFnWZrUy zy&1QPA}7kz>ao=tCYYe==JmFcARr#@qSS#e!44O}eGzsh9_8s3F8f`gUKmwCFj6I8Z6iye2F zO1~{kNdLYW-yoSp!vt#@o0`oAkGag02gS%@U?n^CJeXM*d9jS!wajGoZ05UuF?)Dv zEk#fKO~E@un3kIk-9OTUOQRiV&#QPcmu#f5QeU<*CZ950d{}7rQ?zS&A4*Xur_2v} z?D83VV_y7aT;QOKBILlnvN^CTzve&V3F=Sf|?7ww*s$`Z$GlC*0p z+r0NHGxn)xd-5i-qM9ju%ju1>T1XSKo50y=BS-ohmdmzp-b-akt&}t2BlR2ANDjLk zX!XBv7HaoSaBu9*IwH>tYi~ueHyzbf5dMo5MA%dQcXM_zqMZ~UO`)P-bC$D=(Z2l; zm}lyEGW3$tfqOnOjGUvVMc&Nl!+a`M{>OHod_rR~mQ&`vC}#QElbGd9N;%)o#-@K| zzsL8YU)2(BU^a>NDh9CVDQfKNgCN29Q3Sj9M3Dw~_9CO$C)9pUfuv6g*=DDcH0I9* z>UP|pJ$3h^O&;^86UblbK3zDQ zBFtN##kOSMpjCwieBo;kGS@r8GzQ&dkH-1YqM`Sg>(@ZSJbC`4hdfhwZ9$zG!>Ls- zjl_*g%sfGbYsU1Zh-w`&NEH~lI1qGgX!jlky0YsT1qDqZi#8+rrZj`r#JG^FZ3K%- zPGSi?2hg~I-N^EF6ipwZN(Wq5(mBmRRCD?R`x_%+$_0w_!hJkNDRrmTvD?|Oec8u8~`5$SeIXWw6IQIT#tb6eX&##eNyrAKf6H_DTwRgG-& zlWNkV=j?~lH`adgI`wy2&OQx`rcyDHy6x4J{LPP|%iX-#@xS#{-{S^55bwgY`$jP{ z(?K*W{UkenWCbZ#%;0Q&Z}!J0oRxJ1Q-#fF;ftCgy^8gvvH#rZ*V-Y>(p*Z;$C}uQ z-2x@?5##{{ep_NeF*%P|p?)jdcjUUD_q2~NK>HL88Z(QvEpjFMwx29ByPVnBong)W zo-@n%FwwfQJ6&oVPUh`q>uk(x)?9 zS&Qcw!B1-bmJ{S?nS<#r74MUGru~zaN$5A_Ci2na6ByInqAEL`vK6fo&38 zC2|JCXzI)}OcWBRu}@!KEA#uK7Iz5dL#vtci_L7LnK6Zpx+3`zXiM$AHVcF1+-K}R z74o+FAlMpNko*1~%*`xJ2>56wMF0E5*w$gxJ8CYinWRMLI#uX`uQ~n88b%73FZEMy zW$m)u{QIo$Z2g*^Y(e?|1f@5+Y=2rO`>Xg?7~W?-E2-NgnUq(|LUs?N9=cAX+WQrC zd-7Hozx^+ZN%9~I9!}Q{UQ;t^iYGQCNpxmCrbQZ)Xx)bdW|g5$v$U$1)BZ;G?t~Y$ z?i(vL4vb)|hVlBH8=!DJ*SJU(&fF(~8gf>}q78a4|w)B@tF4O$i~l ziguQ}c^D13R>qVAFOzB%#F_iL(VWUf^kRD+z2CH$B(mc)dM-$n#N2kJU^z|tU%U;C zUf9a^H1-!P&bhK(e}1zEwXyU!P?Nrn3}9o%xG}x@;Vitqi9&WRVx4x^rKPWrk+4*g zX)1R}cg(1zr?2h`|CB+levY2aJhef=c+lKhC(Em_ZOt(UOpZws08?j3aEjt^z;nn+chJE^H_ zAZe-^R_`z$N3(MqnQFiNG}FX}o{o?TA=bN@UO%7e*K76Je;Jjm?^-qb<=-xx+4PQi zd)5elPq>kRr9b;(TFd(8RtOc{b*V@HA8cidk4O0z^&L*Heokacb9$3@$a%s*IjTPJipjZbWlsnEWSTD7O!?ClF=EMZap9sc zmXLHrI95~2f_t4|&+o?wmT&fnMN1mkyLC-s#?gyxoV$_Wyk!Q9`K-#0k9jW6a}8p_ zX4yieks~v?@|1Z5PiMz7T%~<_Insffu4J@#89C`jv4P`~B^L_ENI$rBGRIwagwal> z>`UZqcJFeuu<~pxll|9Lns)Z9a5y%DuGM#w>RU&%^dKEvk8@-PExg!hul=MLeTu!j z*NxEYt}Z0eU?tPaMY;a$TGmu%qS1|3^{;2{ zW2#w}{1no!T*frg9x&DFSV1%5?-Kp_U<00wq&ITrwBW@unwxFUDkm*v>za(oWz8O@ zG{c^DC%Ow??lcKe#zySV-DMK16>cnkt0L^4pA%xb0$FU2ckHX_6lw@76Gk_W6`UPz zvD4W$ERunFzxHK*1H;(CXH%H)dI3vb*PUNos87Wc$_3MvfvoO*Jv%FEQ^4s6G4!_* z3$Rpxit%;!6$fbG!qe>N;l5Niuu$kX-(8GyTgbYOy9MOV4ZbSe9rf z%>46{9s2JiQ$2f|>R*jwqS9w3Cvg)RY;{D-xp&#zjY~0jP82)op+P?^22s$yGUl>a znOUW#3SOo$%&~M0`~0+=eNiY84>q|8VG6qRI#-jm-+IODuIkY#Js0tl%{EdAB~tsm zUbKB6WxCtu(T$Drl&$iG{Vmrdhj!~~vrGqeC~-X7F?5sgt4AL5tJ}>k%JQd&Gye!J zNr~datU*HODkZjHj51mm4-h2FjaY7Ywa|J(5Y{|M5h~VS6yC`Ev)qwa;+L<=6dXQ~ zZkWCkRmOY}6u0Fw*Wdwet?-Z_#QD*Ix zib8dKe|D*8I=lSv0xdW_jpa#Y-+P3yj5#C7?PxN4mwHtQ+Sw%xD~%E~|Lv(ZEdIsD z-`Fp{``nj(xV(Za7r9r@E00*>B8_3DR)NxP9lIrtDs9pwvCFAt=W&C}Z1L33X z2**qoi8Jm6p!r#ZV9+a0z^*3dkT6dS?^nuJJqTkJ-sVEdjEhxyldrOxuli*CWfq-n zHiTP`M0W3!3RBuzO>0yG=zxuf=vdjrmj8-kx%Vzgl~u}Fv`LL5(WO6A%jiQ>yx$8^ zzvm(T-48+hpB`IKswMrp<$JDCHHK)c+WBZziVWm&nqdN|=8BAK|-G9b46NIDKqa zWyZf=iCz2JB`(KE$ym-M)vO6Y@ua8k@XKR)ZGkZD&r5Z zy9LA9pDUA@>kMBJ1v=!LJfF?`{FJp{GnAHT-4z}71TanEltk~}k0k?Iud=+N6=H5h z1Uao)hu)**=)2o#wq?ao(X+j~@YPNe8UGne~+wI%Tu20)Z}Mtz}1_wFot4 z{aF3&uj2hjnWB$=x-_8sL|k#cA*7x(Vm=#7BoSi{3FptKV)?8dWc1t^f72IWn(07v z9l9r(Trmf;`afhFwr{5f^_6Tw4P!y6OK^L(KaCvPELJS8VOoA~#E7SF#C!kJnS)h7 z+CDmxO&I?~xbBcBYAqbXhN*v*q$Fu0@0b<-?RqLE+h&L%&$|nMlIMueZmq|_(W}w8 zGgFuwqDF`NU19#yJB6w^j*^c9P=7p1oJ+|<&2WJQS0^yDcax=k-)XSs3}Y+)VGCXmaK9A+kU668Cl;%E9;^4m9= z&A+^aeq}ha5l>$W^SVw{C)gbqFCX3^rX77J&JXty_H_1#oz6+t|DBsKCe%jwuyqJ? z37RWDbgL5#m%b1;PR*4r`!*7fzq_&&_hrl>?z*79zl zKH28o5}!BpWdRd($zjbciQJ{b?D|%BRyH|9RCm=A{AOHZ3A)zUknY1grhO4FZc-wh z(fi1%TR3|)zD)R_bA^rV%4hT1)zCKXyu@hb6NZUitfA?On7-kN*gNBepcZ;n8WFpl zcKMx^W`5o*I8QPIG)@Zctx@dhn;wGPqy0Gjq+T5NayWY*Q7*dPPOU23KZ%9RR2Pf_ z1I4J8Ffq(}BAkZ!!*zOGb*q2hB|}{Hiq8UVW&Xns6?HpV);uMA=vm7&_x8u9V}8bCcHR=^U9w%`FC8J?4bKw}-cV$Nm)8j{SI@z=WCF@h#k0;`=ULM0r$R|bGR^B9 zCFyFOD$c%pNC=BpVB3rrVQ|}OmLmGH4pk4)yYUs{Q%)mZ^D-N=s7RF7n;`638}sfv z5uY}{7xjC2GZjZ?Vc4Jp;u_UA>~Kl}Yt^|gDD-V$;lKBz`u8HlKikB-?hQso)$gje z8v@vH`y*_Vj-JJd$l)@cnGH)lu;{;QvGP&@b00K87^L4Rc5PJ?YWj|V>x?-|tmn^y zZ-t$>_sC8*X<9cb+p0sq9&Ck*hpzaw#xvLgw240YEs>NB(qgzg0;(BW>s(yuG^EBSc|75L1io1HlHoHxaFTjU1<&$_V8rxv3mISucu(P z@IJF&r2|dPEOzu_ytwL&1umrxpp`xQVaJSMvEOw?yqMO??BquaZ8}E;755M^-k7N2Fsqw14GSu{hrY!zSAyEo3cRZ@m@W zji+H=({f0k)r;nT##6+kzDtr8Y!+qv&hbsRpV(lc4LL(D6tFs$`=?WUbtP1+@ji~@ zl5NbzP+z#cB$K&+P8YV=cnf>(>|pQ1hBF`aIf9ykmazZ8NZI-=VA%^o#Et#8ux}d2 zkSQ7=T>6`xZT~GQ#qJkwej0#oxgFxRu2+(+r7kr4e!6(8Z5`GP^<WepF0HwVF$X6R~PMmUJwmz>V@{YnebTtgvoj8;>99EObTvf`tNpO%dkZdIu}Dj z<-Sz$+h&PEjt)KqNQH|f{}W4&n6jtJKiS;xQ*eA?FX%Xa5}gN!i!1*|h-26JqGPiU zK4rT~q`5!E&395n_e~RVLi3||(9j2#d6Pt!Rc6BX9pU1ScuRKI(~qrN))#v2W>Tf! zKG^Ye1WJ?+RmbokmUv<#tDEc&%LjVWyv%1zBX=VU>K_fg-&T@@FA5m-cNO#cu@w$; zzl*AywZ*5E|FO#%v7%$#M5wrb6N7SA!{yv+X0phSmG)bK_pgVrLlrIB-)C?=cNUbU z_anDf1FCvpfDx6mq1Rvpy+gC%_TO9aU9Tc(#?Cl=N-`4O_3DqJ|LJ11!ZegbZb3*w zjdX){zMw|#;t4MsHY#~Flze8Ov*V69`I!MbW*;GzDtY4g^rvEHS3ffC>;w0%LeWws zuX^dxqiCAB4jU~DaBJ#l^sKmq-m$$|X#G3!{mB3v2=-E z*di`anU4qCX27d-AzV*6i)F(cpnfq}2>9%Z3y-~7=d^3m(n$+Z-FOB8y<4O%TbE-- z)*kricq5~=2lG1;iY=`}h3NWitj1jt6D5n$JE4?K-mnQCFU@gfrjamimuwE>LH8R83*6H73CR4+&dokiX42;tjFedx_u zf~64v;*3xI9Ws4PNsvd#b?m|h3ES?naEJkYP5FAyW&K%Zz;ZyBd99kQQ zL9rp2YWGSwlo%nE9g~QcfeWyA@=fV3!xiZ0zZij9{-Uny3TQukB?eF2AzFNCTGF8F z4V$Z4xb@8ouH|!JwJuOvCJcY^fn~%j z7DJW=&rs-*5!cl*5QkxY5+$Y0wdtdCiH$+^2EJkcq^T5Ki zf5HY|FD%$J0uN^uF_ZdTk{v5=vq+U`qTJxS;^9myHtS!KXwbJo#v6onq?Ev?N03;k&Vb2mh z@S|?M7^~1J*vL&6Yc?-p6Mo3}UYvrbB@%InyB#)6{UN68h!?HS{}KOPa|51V62ktu zqvnehhP$fb*mZrep-(sb_!=a&P=6p*_bIJjvNl!xP#l58n7881ehFCc=nQt*tU*@T zY^dBhDarY^43DM;GdMnwq#u4iloW%Y}516hzi1kb!4T|Tb7JKAjvbIpnkkwRPybp)tXji;-QHRRp zZp`BAMU?h9jMA_GoO(1B&RS_=+g+)+V6y_+Lq}uvt$a~V%?vjuXW?wU1aUX=#p}nM z@ki4PrU~vsad9A?d~(C#m?2QUN*E+gga3{xxG)joAn)OL?SBet<#A}1cgMlbIp`|c zgQk7im|edg+dAX1H~BPt&Sr@w*n)-;J(2EejXmd`P!_HSkIlQ#Gk*;N#I+J_6I1LP zcM78eJ#hS8hdA4$TAbANQEGF?8zT+|V{&jfY##*R!uvSyE99TeSvBX%A-iH4{1aCPowj4fM_dsEe!XWwI3H!cFZ=4?RIg!7nDaz}ioxfc9z zhWO)eA9NdFfHjUQ1f91w*m>RqkL%Z?=s}a%IpZ|C#C5Q%4ZyfAS25&*83J0Jaa=83 zYBKV(==drdf4vt#y`iRhnS(!UbqV(`We5j7wXsV66b7#A5bL&@3n{H3;#j%4m^f`M z+vzkN=G)ca*Rd71OU~k}(NVCrCGZ#=hP=>A$kg3}gQrGAni`6}R!1;d^`+F(GX?d3 z_MowN88XiY;idEnR&07Hs=gWmQT-Bvx*f$Ho2@7alShencTw}WiWqe?7NdjCQ)>Uu6z>LnLe?SF)NR z-^9;%TE+i@{l!g>^(FTIJBecHG}!%3M$c~-;P5s|OqIoy-J&SOR`o>a@m-kx;~JEA zx{6D7$-K=8Funf@Bni$@s1J97;rKI9bCl&wCZW}a-iP3(>x{3h2^cla5>BZJD5yV* z3m?|PUxq!EcYX*GnZiXupz>twBe%p)-+glPs4uG4Dn_188kkSU7zZTl#Uqe z(MpolFb^OgaT(SfNW?$obubPehQ~S1mG(7f-?Vu^Xm}Y8X(m32%6VSZI=o&Fh>+zd$pwE-PN9 zTW6s)Yb-iKXQ6GO5Atd+L1RN2pmYJB_9kPqzZ@>C>V;@Uf4s?vhR=LUSkLN%`t0L) zaOo_TT|19Aom%)?=!=#tR}A`Gj=ZF&qGDOA^xf4XXbr!N{|!9{hY#UmYD+$*PQM7Z zhX=7x={T&b+|hC468!5ZgUQ?>VS09fbvXSCA?7gU{4JL<~HIQco|~9P@xq{1r6+3`6ST zi>ND(#NiqbxZghu?GioIzVU=j;7Yu0u!n6_7?Pud&@wXv6Sp#qbuL2Z{L6UrED0Uy z$&<#Us~lvj!00qAP1j?;{AGM9@Wi3WQ|Kkbk<#-bIE+YxXRBNeYLZ;OXK zBT(}-5y0ZxssC=$a^zAO#8 zp-FJe^MwCT2mF)e2$}{GNuSPqq#cuS$;69rRJnq4&H<>bzl_h;NpNrfC9WOkiia1{ zkdwUzY5B(3wP_$~j*bz>vdbu$R0XB58JH*Ii_M3#kTbD6p8O8L&Zr0k|CRajxbo_+ z-_K)M=SI|R_JF#aJ@f~~qd@5rZ2T^v;eTn+2|bSs!xHdmSS74?pGI(0Ebi}}2W_ty zIO)ke;+=G?(|3ZOR}z*adBI}R9k>qMj%}-RG56~g_y@@Jd2~FY{EMKuClpV6CBpco zKQ1{HVsMl_l>VmTLw{c!*XRR$kHGv8SM1K*iI7}VbdAi#|E{JZ#bzNkU7H7+E3$c? zR)XMj(eSKKfhi9I`;T4&?&t$s$B?L5CP|D*RZaCD)I`JW8*$&nJ10Mhc|`runNW98U8q-lz^tp zSh%Ss;>BZgQE}vX^gsms>Re^|l!C!iZ_7BK93xU<@F~I?4=iPQ<5&R;m#v5Phj1Jj zm4j1qGOlTJ$FJit_zynV(0K+r8u?J@3^RRm8JeVtDZbBxTho`QX32zJ}2qsrzA{%p93 z?Z0IFq3?mA(M1S2k&W7UafsfPj4^M1icQlCvFEWb=4>j$*X@A_eSIFraY1m<&cau% zJp9nRjjQ^1Ff_^xmXmT3bTtOvO((Fmy%0+lB%)X6Td`$bIo{-Qn3siMFPnj0CBCqJ z?1F3O3Q;&j7MDdOcvpA@1_7q9*dBt6j~NJEorl_!=`a=&(EQ>CmedE}j%zu_98ZDb z-X!RWQAk^N6)OTV!T-B~$;J7on3oUxWtZU;bP)wrX)rd*#r~cVunJE>P;oeR9G;I$ zj`65WxrT$K#jrgmg;IS!qGw;nxarprG~o)?-Kl`9)oxe@=3(xN9Q=I~0YT;+O$Qdh zVChzw_b$N5l?8Zrx)io=QlVFO1Dhr{;HLLkRCE^LphG39iYgItG6NM6g{YPJ*?>a@ zQ1dOt*U~6NW!%EGaamwy4Y0m+8`k?}+;u4#o&PI@zEe34r$-=XdJdw};;?-6F*tuK zhUe@`Y((gyU`J1*rw1XrBp0)4;t{(&9fSOCA>d{?9=k|3$bg}u!8R*k!eu#Vf9l9P?G zo3pXicPjKwiU@X3$NyesVxxEmcae%-5z;jGEs_d@gp8p+e8=Qc(Q$4Y`><)C;H5~672fH3X zl6C>K49ehM-5*y%?jvD@40q2$(7NUZMtaL~y2|Sq=^ls)ekEAl9FGto72CVtfQPf} zAXy#Ry`}}i=4>fc9~EHHk^PvYQ6!tD1nga0ghxsu9#-Z<8lH$dO2z0=7>K;D=ka59 z7Lo>M!dSf&f28FoK2?L^*KVTkxlF{Wr((sQbl97vL*4ccer+s+%3yo!+L?@oj|`gU z6QMTn5=s_I(H>ZiPv5FxH8BT~o075Wv=n2V%1|-=7VIUZ2$EzWsOTzum5LA+R|sKU zChlZqLT*?F;`dgfk6|vZjVi^l5rHu3k%ixS<&Ya*44pqRtaxRj=wB`_{EdTLUAy?S zUn&;tyNs|ocaSoq28w$caddn!u8K)8Ow7d-$9*t8kqL{78EBsnkJ&piVQx?h$-a2R zKgmIvc>>;;--5yCc$mnSoE*G|wGLSJV4~x#9hJ70l z9C962b}>kEDMLT?GHjIbu*dN_RQ%Wn%kPz#cjPKmJ#z74e>L*%T!&|2AqG^{qpda_ zPH(CaG@}rk|91(ImZeDVbsvLfSHLYDh&^2d>!Z<_qjU!))|K$Qb`1*0%n{UBjvcdi z;qjDsjFw8_r*#V}UY20hjuJ$TDM4~b4IsIW$l;~vEDJ@>u?$G+yfM9Y50rjqA%V-D zo*RkQejU1c{e93*47(DdMg|+`4oQ%7H!xlAA ziAlj<_ZygNnhNUyH5mK(8g3d&v1&#I?p(T#m!s~Wmwgq!rArZ%a|z!9uH*BtyWo>^ zakVNFeKgMEr9m}JWcqqlNQ9@1&-U5Ka5J_J9X7f6`uz-IM>WD?XdzCRW@GS`B4qdi z)1N+sU1BUeMmD4GjGL%gDAS0N2F(1^fM)-D2p=4Py?IsWZx@H2nWZp}u0tC#;nFV| zhfkFwDD$zbuTli1;B1)|-NE$tGVal>#HyMyjPIEXIU`_llI*i*H0Rt&qnf5psc%W@_G=eAGgyYeBvbt9#G;2!`^tu4s-sfT1Qz_JBe4F#9 z5>J|LqX5vG!{~1EU5Qj=7G#DTng5zFenkPA>ZGU|d>=Nt^>`r#v~Of#6cvFDx{G56@?rd6F$$}ia3xZP zb2AZ2p^5nLs{l>|iXc%ag?nQa62^;YRk)4RZz6jBpQQ7Slkt4NKZ1xLdW&cgM2{eX zXh9GWLG%_aqDAzGPPFK~6TSB!%3`tBdfVQ2c6WAmc6y&#M3CS4e1CuJ%Nozz&wXFl zIp;dp{S+s|@yLr8^Ij%#;bj)?jiGbr?P7aOd)%ZACq(-t~dopjP2_x11 zVruwJCQLUlZS`I4A*E2Z!vlWb@_;of6X+6qg6pG?uwY;e|GbE#Me;qO0%>ehjp$$a zB-?#=Sp8Q#snwz}6uiT{oe8WOev1)lkICPuK5g+eE^La&JM$i~HD?k3nQ(UQ5%J$V zVbQK_j9&N`dF{g~oN$sG^KQ|!E1WSuW?|hF#&u_egHI$fW&2~+ zcD+f_@55-e@+!N%kGXU{nweXY_$M=otHlzzWR7I=-Z*;sljv1GfoZd1XtnS@UDLB@ zzAJ{D_wO^m!wJ&G&#tW>&}UT`y$7eVesLrrxAt@j9;Cs)aqK=H#Y5eE8>@c(ALak! zFP|{8X*@OmR{npJ&s!3Pt9}eAyHmORXBabGrx>&a;-z~teov<1KYy`m#0`>?;+VWF zj^;C?SnPhxyi*TwReM19Nmu@lTY*N8dEh(Fgx%?!=<$@wHDW0pbBo5=Npx>upjwY) zj%-(LZIeLno$-vWok4*Ye-P$Q;`+K+Qh&P2Kh9WAexJbCl_N;pc!h`~$C-O29%H7k z^V?k#?mnV_kDH92`;>HNDzpE6%AV>^S<-DU*E^?RN=~K8rA$&EK4kZ-vuqd~#?R&_ zti33#mWd~-N*e9dv+cWbk(bwFF^zo4@L5l&{Ox0obxkKe?GfeIrtmN)k}!FeGhMXD zu_cvu%_1p$Et;A?-{oGRb8PIH#i;OTO7wg}pT8rRaPui$28T0j|3i*7P9}a?3X`uU zvbjeh+dE`axQaBi=@p8VyG+*Wr<80OP0LRc8U1-OgF3}h{B9B#6H{0`IGy%=#L0-K z+=z(aS9z3)gW`C#A%$kC_n5aqwKMq|rVX*Azm&$*NT*lNblOEoXBTF${i5_@YBa^= zTXzI*5G;LzRRhBLI{gmM{z~G5T@Q(E7|pR8QJTvm+C9I-rtsUmv+xqvxBpFebP}hE zq%v&EL&D0(F@KtoCoK|aekzeizs9g=MgnhgvNItsofWYci&&4?ko;X_() z3*+FY5wusHr&hU7v*8aJJ0Xj{)+daPj-%m*1noT}@>+UTK02G#@lfHvZ0daW5U*Zm7_UnDO!|0&O;-%B=~q4j_#w6C5@Mx{sGEcrLJ_oY#P>V5hkJsEl*%ac^bK72}> z53k_5n?~Sv0(;9m#TQ7yH9L*vgVWGOB@W)ci(PfF#HA<(ze?uAg6hM*i6LOz&6xiT z+*%(`;F}a$-HfM0(Z}3*p!#(*hq&%>%=2WxXYt5woLl z?arXcrgXNRGw|d_BCGnTu3vh}g`Z+6yC9393lph%%)q(t?$KrRBgU0TVfakptfG42 zxF<|_d6UxT(%F&_t9`Rw3^|ods7S0l=N(Ek3CFnK$ogTos3!l}GdGRFW#bvxQop~B zVRElz>Ti|4*^}vgBAi-9VwkD=AAcj2x|3r#u{wndwhWe6O=sAf^SHh@F!tGfmZv_V z;&)M0yKA6ihZuH_i=(=r5F&IQg;I4OyFU;V}P<0fYBh-CbcD7utNVP}sd2K9W( z;D;#;c$`ElOA0-|Fw$uD9fmDT;~%3u{m&1$vmhD6y=cl7SCeYkVoP~7SHNtF!`lw z^OHFIR}A<%#PLAAe%WT)^Q)do?`hJMocnBCr`!&Y=W1F8kN*fKc~}bT2R-4z?ntT? zFmQ0J^lo!9bxaSL{~!n7E(1UQ_C&QPhbG4p=o@^hb&7jjj$W^M%OJHs9Ov1`NX8t!xn7_@W z_{1kPo_UR)ndz*0c#i|IF+BP{g}r_Q%|}FVcS#xruB6bUcnV!cMKQZ^B!ik5Fewky zb{d)fdj=IdNE^#$5kEhY0;S};7N+8v8q2fi>C)pktV_~Kc^=1yKgCh}zcgO_qWPBy z$9y`0TT_yFQ%q|elfi(GW9k1Yk-KfOS^w$|vs=c{F*ltn%M&r4iQ-DtOdbax(dkYG z>x)IQwqO>y15>#ElaX`1Qu#skBIn->-6Qgpw_{@1aW9=Osu@UJA>5C7L?LPI?#D*X z4l$B7BZZH`qM2JLfg_eA;&Y6Y{vn>RxewT7iX@_199OavxH>hSKU+pnrhW>e#~As* z7{_<7qz5;nXs|hkf2-YRM7-9hUUT%ZNDgJoS5J?{S|ouNzs50WLMSll)+KyL;IEnQg39^J~o0@ zGoXudG5N+Lnp`zePdc}`Tn2M1XL0?XXnsGQMAZW+oV)js^7*lZ-b!FtP9n9ZWMQ<0 z>$5DH6-Z*l`ec&U=5T3cI2|rz(dbq@kBfy9bp*yujUl#T8gKO3?#|MZ;_dwM z#I3|+I&_ccOp1YLt`zD7gv}av=-51yNu# z*3^pO>iir!N5+%&G==$VvMD_ylf%ClD0d@+E53LZ|6wF@RU+MsWm8$XDYZcUZJ&|e zu2fzX&SL$wBx-LmZ8 zcFCr}lxSAXNTTs4xlFAT!|Hq4T2nr7%;NoVq209MzNyP0}ddIf`Sy z3nRW*I(E+H@U{$H8%ttZbQ*QG%OBlOq{7K0h7FG5!0l`%G*fS7&Zhb^0}|%9HM5V-Hyk=y|l?+C0cq$Cs$2LfL zr~)fGC-Hn!CPj~=(rn*TuE<+uHGF{YQ6eYaH*)>GRFpF=8Ny86{FGlX*7^0y8dGZ9|fcr;?~^uDfGIWMYI=;>kVu!lg5!Z(VRaTPjn?| zk>Z_kFh~1vX*~Wsp7ME#Y&wxdc()kZwli_AL^fBtByjmaE=}rWVrZO(?M4!t`#faL zTS-*xpF-)gY227*;BldJ3iU~6P-+&X%Eq!eE0e3I63~{Et`{dV;%yU^55)28Z6gt{ zGD$9y#+m~Um>{n-@iP+-s%P-PbzoEW%ACObX?tY3GZqowa{ITC8m+`oxD=5r<^Ki z`eG=al+C18%1gX~_Wd7ou)X-#I-BJk4fL6nO{4yi#QhdS=AS0QR_8F`LJ|{uMlS_POMmxe@>F}D%Ni%?da%6k z1z7tN+Fv#B=fhMYdS#NHA}t=7&h}^7TpuC+bThJhK{k4Z5`h&*M&_&Ag6 z%3a-?MrubH2w4p75jV^0o=&2so!dF@}<$kt3F6G8^%Cz)>=WXtcHXgoiQChB$e_Df)W zNfX5~({N76WZF{chCGD99YrhE;w#hR87~b$eZXY#CCr&XR?|$DtT9q3GL>o*jI`Nf zptd)UHyyK?_}s`ZInw+HGgl_&viPEzxr;K`+$NJjdo#IPGnHwk9Q>=2S?Et>=Po0A zn`dxRSZnihCXV=I3cXQXos+=NClhJB$IOY}v#^PGqmC!?^^8Pf&LpsATRJ-zrD2|t z#?^s26ds&M>vcxPMOpamY>aw>3_Kew^xT@vra4I*{MpR0%NgwNno8*jse~8K(>1Rf z6q{(E>c||5{%4}w_i6Oro=#L5llYKIsF#`g+l^SZrqd{xP2c&6?D;i^LUaDNmSpBv z&!P7q?J=m=C|t!r{-{jOWT5*cj9AaaQ!Q5Yf1rsTx;z@6l}GyD*~|_|hm%q{TSW2G z{>HSNOdc$Wp^7lOep)6~EvYO{&f;qKD85jx`edauO7}NxZJEvX@C+eFdi+Bcw^yZe z@rN|hPZ{XjK9}!{X5#OdLNTY2nj7WU^2{W?uyAR+`qpiE43v&kJuaSJj=`sT7%s08 zSudA&*QV1pJdQOc%)9zt1Yr}FGwK1LG>{QAYGO?nb znF$9nc)22z`&TpQ);E=!MKbWKXSk>H1jU__E2KT^QwTr*lmbh$=sZ20m-ZAQq~Yy$ zn+X3Uiv_~zgJw@?^j;2K-ZL>bI)_`ga_Dm+n^lujd0sb(sCTnzemI*S9zA8wPsx1N zReL5+)K@naw>ldbB3!i_CqKI}o)_Z6g|Ruz^JTI3-&CgFF!4u*kpV+<>HSd_zYj9d z`biSbI3wZZRIkoxFR7AzUddcu%+Y#ACDY|w>0g;t)(8g^uI1uvV^SW>>};OSkE3## z*1$}~AJfU&6vs(#j`)(xA1)Jh?eaG(Qt%wkqr2I}>Bo7zzbg~B_HmAzjm%JASFBwu zbImz){L94nS$Pb(mc!uJX>{wEM5k6pik{6Ox@kJC7pYEN6km7cu`e}^clu?s(2&WC z{aI`kubPz1V6eQ&^oR0d!iMEi2J>&381-2OGgp~08k4c4m>646e#VnQ$3f}%#+&$5 z$KR8GvTVtw+a)8n$EC7;qm5fP<*OIvuuC=MR-KyUhbFNwXYGjLrtlQPT1)(ygZ zClhZL8Y#QTK%>nDl4oQyUF#@tCzlJ_H2k8TGOcx5%~dUHCFp$MMdko=rYVe7Co zT8Us23gj?*wuuo(ReR$yu(!4IC^3oYs+ZhJcg+J zvfxX}VdE@U`iZ;w*GC53Fy|4b<%=UydW){iBw*!^LRQZkJ0_I81iKnuIeU+2rE-9W?f58V}*3PMa@L*@tcTt z>XQ97Q^4efavo13_zp5&PL|4O~y;(Ef& z6ay8TTPQIujiLJ^7+Ta!?eTdyb|KAoDGt>bv%npsv-5x<#NIH$MQ+_wBOdPQ3f-zvKe$dg+phJjFLvw@0!iBU#%oRv*>=B zY`Wwd7?!Pg57PXm<>-FUI9;!?6V=|xua`}_-eKnE0%7;VEQ)orP^XfOj|*pVV^|yu zTUhC@yqR)x*(Ju+VvP9v`of=6s&bBF!PSjGYtj z*{N|qkGU7Em^IF|jy5Ld=h4<>p-mSH?;J4F^Hv^Ju9=Ac#Ex;Mft~WGJ*6A3v=3GI zKo)P!&nEG=T;0E_UQ>Ihx4#vi-SW+4bFn|N^5S?l6&L35L82MQYYS=r2%GbCy>VqO z&EGatzJi%*Tg@0s+884rdPp90SQ+`S(*~}HGjsow$4@b{M|&(IFXl4HYoVQ4W0$Zn zImW`}*=8CQw6SJWE?ex`sYA0RQnb;)gNjOb1r5OH877^O-(G*{zlVZGuc!yi3`0=4E{ck zKX#hgFK;l@XQjYa3m^Vq<Yvs5#>Y}hdqk(C@#%Xk6q#!xan@7HAGFYEk@omL z%w%a=F71^=TVE57U&Zw!nXK7kq|*=^HeqAH(qufv%&eJWVaelc++}h&bHT#E_3Gu+ z%de=ANAGdM`h7FSD&$galQ5I7y^Kc|c7K$q{daMEy|gpiM9-eNd|JoG-bz-&N#e7g z?Ub)>=GhS|#@F)y@;oKNY*b6l;Y3{vH>HQ&3fn1EU*1f$<-TI}zxsYrzN>GWT&~o$ zGI@_(UQzR`Zlir+8=F7PW5;h+=3dC9qI!}xD{Z>xF^`Flayii5#>!!N^qOtt`Ft~@ zim2Bj+MqsQ_-YAbT8#B3ZK7$qIv-!KBi609~GgjMZ zkYZzNEi+w4T9|gl%8avlwCiSLzI3j|!ECC|&Ef2ORy|`NZZ)#e)2n*+shv_iO*9%V zPZo@!^UFML{+vhdK`W()TPYr6<)r*`AJxdZjkAe;rkuAF@4wCF%>t|Lp)pZ&la<}7 zV^t>D=yElWgTr#^6S8S<&O-B1(zY*E3z}IeTQrZI!qV1AGt~_iU6a=Qq?v{CS&ka*Zgdqnds?0ZN1 zC+}xacZ`h{RfUNw4wfh6G3XNumiKcR@@@{BH%cp{SN}az-V`%S-&_j*r1>7wp2w_Q zemI>%R@N=Earavz zwy9P^-R(?%BCS$wt!}i@w~CGOE3CBHr#dJPR#)FU)H|0MDcPJEn8o=^CW?M!;odeQ zeJhz+av~AeSTmJJSt)l#{_M6q;Zb?1W)==EFjGK04M>;gx(t+VV&%b91N8=)*}T%k zH#IEmE$g6)JbUOrJ5#NBl>N@a56VmWxNL67zg8F`oc6aEnsc4tnM&wk7Pe+329#8+p*{d0byD|B_*4 zMKL>#%2+wJNgm)=`G!??s$UkCvn+b%%}QKm9@XyKwXbI*ev6gn@8sfmW7R!^R^mGv z`B-(-r8-dih@Bzw4hyE6iMpa#Y5%3{hgN1zanS6wJm=53Jd+Qvx?VWhEN?Z#$<@Yr zbnK-)h^MJE6emXL?lg^d7W|>W0q%0r{ud1ZuhX#ez}R4s-e$>k8V+U zEZ?p^v7Lo8qjTAK&djPj#kszXRXGlBb;;2)jJfRSYvF7SD?7E9bFQ?LY7^~zZ^)&8 zYhkl|4z60c6u4`rUzp~;&&^fyy28 zu#I;Rw_jeUoV2Eiu&~NX#p&`nb`z=7t9LArY5F0btjD68>=)6oV8 zp32(u`Pe~k)y=8@=Ca^s9?$K$T(aBvxwvAcTG;lG`j^9ImSyCiXR&F$MSicV)^p#= zjlH?LN5V$o7MUExN%#^g^E}cNY5LvYEEHYuP~T=ESvXwWTAFf0JQt?6{*%X|qgKYg zcJS(ndIj~T^>#Ukvgfh>oSpN{ojf?2t7m>3thX!o(ykp1?drj77*(eWAF$BjGaD9t zR{Vha~wbE{xnIl)F)06G=JSVSL&GCQr`mW-$ z?{_=p-jb(lsM>QhhmXX8V;3z%ZM3jlJzvE{8>Qx`E{os8{?fXeDAyabS2f;B*r#Sn zjCD}x69?5U+9^8E!Has*DPg3x{CU_Y8*AUrq4|PbI$XEW@r0El^7$^+`qXc9yz2i} zpM~%X4mQ2AlT}Uoyu$Ol#qEr>Xx+1%)Lv}m1LSlOIb@v|xJW zV!&Q$S2YX$F3Sh>x8e9UPtO!ss3vWntDLX+*3LQgJvZL5(OAB|V@(@3+RAslFTS?R z(LG%b?nla3)U|VYrir(@JBiz5VXF3IcD5AW3OSh5(M)D;9uYw^Z>uL8qtC{^l(Xx`?8aApUK}Yw6k4%M5FF&jor+&Jte%0uiK>;Gg{lpsiSM8t!$>q!@NCu)Cin3F_}U4E;TRiD}zcFM+pnGW?44*HjK zP)c54dnE_gx7xV;!p=ay9m`wd;$;_YR;bs1ro9m5e!S{XlOqmVZgVp5Plw*|Vb&g- zm8zdRxpvu3*kL=l%N<-OYNhuuD?bU_6EX2`IVT;ycMztvXLYo2bcK_mnqTvSCc3tA zFhbh;C2<>#cudna4S&(!%+?etL%i4acu?zgk} zTpkOrYd=6bNQ8xw;_v6*IGOUmNpavh)3s3fOX@P4ZfCb^_wf(G^yFZW~S3*{D=kp0-pLCaZ9r=O7}}!o*Y) zlMgy@`JKG8Ky@$7p=SlP2O%v=FXo{B9F29+M)NvWmM#{Tr3E8;2_tJA98R)PNHyS4 zlAUR9xoJ4x%8pbQ5##O5E}*Z6{yjoiedQ$Sn)YL* z<&)(<7v8b+UYeCsE1l%saB@nTS+Bn4mSLyYIAKD$H$8Ij!+bk?r9)SJMkdM^mA&ZV z=Z!9kn4}+y`?;MC22Ru7!#XE*FS&FL(#Zw&VsX-XI$9Za)uDH6==|+AWG|4ZF4$k9*_IYFEsrG*1q|I**o(*wusah5-8VW;BE2pkY>tY@3bh^k4+GtkK z&a05T!9P|u$mgwBjwU?QdKJ$;ldJ?*IcfK$ypA|JrlNyG;^05y>=fwfYHx8+ zRrR*n=Pun7qrKL~PCOAdriw4ScGy`m-b!pAd4YbpEbXaYYp&*B!O6G1Q69TT+n zK~944^3HvPd*$!S8R`CJCy$@nxTd;YI?bVX7dUvW7=5msZaVM8lx-*DGY6+HORv{U zONQ!qjdLj4B~F^jt>eTTaB{wzgT9v>)Vb@_b02mdbgdm)N`F-icr!MV>*l9k+PG4cI#VvU-_51}c*_pf3jVsYkmx(ThlyY!h_4~~s;iaND z{?LIX*Ts>bovl+fj`St;iJfELIrZKOan|Kzf42DdrJE!2DVO?L7^J#(Li+#P+FX2{ zoqT0*VvtUcJmS>erHfUX`^J11Z@=YYx_U&zS(o-ZEd*@x;D6ZQFXdDG=o9N^*lTH^ zdXMJK+|*GFn~K+CTZuzYowz#L`9(GG;R`2gesNKMw4GVP_Ke$h_Q_AqFXzIRD?QhK zXtA-XWj$PUa?4BI(|m<3+YlG;m64vlYa>G#G*-9h`B!mG`RrEL!Kj-KIu>yAR}(km zyC^mt)H8l7f8cSccX9DdwQT9v7J3MmGuFD;SXsH*toYru5xYQMPidd>B4d~H-lQc znE92Px_`R(c7U7GCM(nAweSDu;%c6r~X<4ZeO`mcl8!d6in zeDH&fGQTNyK^LP2+Zk?mQlhzPkJlM(PR5zciXZy60aFJuDWR!y^Ma8uf!slPo z#E%?QlJz}C>0dj! zjCk~ki@&dHJe!LSCFPrED))-VlQwR)Hgr(^zDxHy%5x|tDJf1?Ez2Bt# z&h?$>rfeAxCvK>>-tVM!KlPnM#et%3c6M=hon$PB~E^5{mp4T`T+th_s*cm!gm=}MR&vmfskW0@p zx^O+#PhE|>-NjA$lf^}}U)EgT$&()vF8@&8$J^ACeBz{Rf;4HAgGki}&rh0HjFZzR zU3~Pdn~thK4^$I(r#py#W265N)qml0M2zCB`Vjk@o9EJ?+>WYKzq|Pk;9LFbtjl(@^qPm*>8?@_rboEJPJ#@V9;O%i92FOzlR-Ij{JQlp{q1b47 zoFBEHG)Q(HHN#`FYobJO^qS$ zZBB5KB0Zef+{1%DZhk!MVt!{2$%Qm_oQvh{9CRM1-bsEa|A>R<55Mq8rZY;fOq3|RRXOy=NkseM-3)bHA5IEI@+mxr1< zfA?=Z6xW)INki_4AM@I~2(|YTeMg$Ad4$_Mj1fL2O8dUnUW~!6SdNl5YK(l3 zs&(;DQ0u?3-l=Pf4zfoHccnd475>M*cHvp%=E61)?@LRLMYzaO?&?+ZFh!btY_*5G zy) zjwHplmG&t{dKk6I%@f5wN?3VTL48|m54TlAA|APPpO%;HJKS6?AYJU?#(coRUTIZ} z+HSUw_fkxK-hJUAuCkl(_ig-I&P%M$7g0;=kTzs#j^zd_C+|3^E_{8m!Of$6;)l=6 zTGgDuT`%olh`T*JG~Vl?Www`}!d?H@^9`FJ-Rke=ifZ4!N;>9=G|MQySMstTQ=Y4x zmu79fbo=f=#X)Qgy6rJRxOhFH`4|IEdoetg=F6w9c6kW(_h6OIt`M%mx_Vi6(aWI8E*kZ4GF<)mspxd{pTt1WuN?(u-MbYt9v9|}_)mD4(d>jB5o92=fL{4Q}?8J z`Qx;Dxcc%?(yD_NC%Yzjsr```*U#z!RQL9@@-lXf^e08N@V{ zH`iZjZ8yBSerBWdMmN{e+$3dq<@<&0&OV-f=%t7-HC1}jqMVyPhlS;(9$p4KteEI! zQWX!QKl0FRwmyI9VNp>Z7bdu9&{nY>=;7jB2eCTF77`x)TDM0yR=wCGY_Iy!L*b?_ z5>|M4JwexyUU_+T(!=8M9wOx1v*e8;R0rmb^wDarVkrz3E9hlu120=Ic=;;XOYehD z7B=wkkuWt@b8U27SW(>wiIe00_VBQj7uzl`^@N*4CB3X@=*9FE&8o zFD)8rzq;)Iw8P7gGCnNDeY|^Kx}q_YmCsX6grP=m<|#+Z^M!-Q9-7I6?auXbQP;e_ zluk`~$H$1mUS?JEGGdOKsfzRTryi=!ck5jv@;u_~<0oEz`A2IQ3b`l zJ5_&M`G~LY<4Re@M*aEzMqb|Oo%SULFip|F#K(p+s%6W>nQJcE{p+T<{N2nV;{1L2uQnde9(7|C zCgavhznDm)Ciyyi$0d?IXC!$L&Tw7H;)Y z{)$Hw@KU&s;-UO6Q=Th4@p0;nM{nf!>3vK- zHfBi|^Szu>{h0ri=JlD6WQ`Xo3>Ow}XZG>%t8lPEI+{3K+OX2a)7M_k2~!K*4mPIw z_%Fq)-avI;{`5+BAN|kCyX^GP^n2+_E9GdFk3rkLOxxwbq2oqxmR8Ktzlpz=T3)LD zWaIb)al)j!GFZo4^I}xpxSk{I&v3JCmX|UgxoPeZ9>aYU*rNFhuj_k>AJe_u)$boj zBYUMNH)EvLZG3pkyZPXNkGYqGam}~vR3A3^t!nQpFIq!YY3LmtyCz@rXrkIt%g3}z zezuPkW_128U42Z7^U+B2YqZ*@Yl0eMi*l?u-xod(Wy>eL?_*{GKZ{krt1lKOq-V`F zkLq(gdd9#_tgzQA(noKLmxiOI$>Q!d#mDrPJjV|{0`lvpCVAOBN1rdyo}K3WuKeFk z@yJokgQt_1o2}GuYK&7li_$ktW#i|qk`RJ@Z_oiEQx}qP;I`QQPHwKfBw_8iA zX8Ezz@iX*eAC>DnDG_q=?6r>upSVd|CEpp+?*T8?@qWz0=xpWZEphkT5pHJ4x0Ke; zO205EpAzTv@LgT?7#Th)3ioBJ_;tPC&oTMSNvd7Lla#|Ue!WLY8d}!J&HtnaT4$Ff zKKv#9jF{kO!cx_e)6)J`KF)Z3EIBM6E3BT_>ZfR3jhF4?TvZ=0uKTIl!cJwadARn2 zivI4?{aHS)$#WR)DrUm=n^HQywU^=teRO~1=YZ-_XX);SYd&57_OVs@f6?E|E$Qo~ zojwLPQ_VOaE^5ukwBFiUSNq96=ARZ7Wf!A+RyHFo|G)Tcl|EhZ&_}uG(@y*mj}qp|i>S6P|I)AbZfO0|x)v569hJ8l%Y-}C zRHLv_da+OYCc=bro%^+)s5yR06<1%Frg|a%HJ;!m%cWx~`}G{4pA2c<%MSvq)R^6c ztGN@k?&likN9EuH{XNG+?N2?Jm4m8fwNH1(N1Qm@s*cX_)W^84im^2GyBqqB=JumS zdt>5nyyjcUORR}M7RLHQ`NG^ba4KV6jH>x=zV6nBq>`*l4-HSC_B?kD_oQjGdU_(|XFti zYm0pR)-a&=wMj3gi@Oa1wE5dd$$mQKrk~E2{dCnlE{JbUG`BYLrMpUdDe=OuYjZxm zM<_t&t^p2S63;Y`55M*jsrtHdk?_1u`%{YLZRy*_&H;+A_RHs~R?PErdZv$`m#cQ{ z@>99AkE>mziHUyVhD+-vNKZTaFv?GHR%=W5>D^mCKFjn`MmR3L)Xy{Vro=N3z1I0z zKUrf4A6?e_IrTr?4Htgi2~cmkpIvT_W}$n9bitDG(kK`dhVg2^x=Q! z3)l6CjmqzGn{u#H`PwGm_d@{3AAZ^@Ms|~jdg9OS&xN;zeq0HD+G$R|Kd!B0w*Bn>U*Kgcx!0b7`OaLW})cb44GQq-RT%yIsV3->h&T&XW9#UW*yf`lZU(At~%x%o&nO&qEz&Fe33;o2sC`8;(0+)sxueUyk-KP8X0u%Vx_>ggTwL}OmL zs3ibmEneLp_rwfAI`R=)94Nto&Ic|d;2r+1Gk7f$8(r0P(PpQnZWEL4m=shY3m*!fO?O9zGh zPyK{%Q#^(LSJeZ|ReX*;@$puMu&uaU$oKPYC(UU?fcY^OS1nfO7$+zEmFdd9(5X`i~7zTJ?CvSE^k)=F)wAe~2*CUc8GB@Sggz z(R(zm*1l2P+}cPU;13^ngq1Zt0^It>OSrVE>p(x*Uj%sAF~AzTAG@yCugOx4l$Le= zF~A_1586MzSs*b7c=V#%xwdVQd zx&RAy`f1uPz~&CBWvXolPx*OI+-&NSj=mM3z+pd=l=nWLNuPv;uQcX6-vlW7b%0mB z#ihUg|Cr=Tlm1W~mIqiQJngO!VD+4U-c=M}r?_)O^Sz<-6;uuu>pK^=2B@YO-Ix~8 z{hrPD%JE!j*=xnSkmfqd&uHOn{ptWmq#cvr z4-k;wnXcZhW3K=epZj&+m2ju{IHZ4OX=3yeY54a6+~VZ=;lirw-9pVRFg3u_Ny=Ms zjW5rf{E7UC)*3c3z~X{IZteH+s9t~*@;GP9207DKTHy;&yL*5qzXf=+Pw`Z4a^&wX z32#Tf^Ar0dK=p?5C`N>;-f{eWvV1PdNhWu1tqIFyg;ED~fcbl;Fagg^%OS7eQ zeg9JJ&J~Y;SH0^Tq}0a&PWMw^`g?$}E!}*k_5UUug^3@9l#A?}iep}Y_oWxB?g}?= z0(!PUxfHj07YZ^#KTD?sSQsO|NZ0eFt^L~sXeO=iw?i@19L^{X!vcQlM7micO$i;7 z25J4z&vEJ}e&@TEjm_G`H^*PjP3(Qt3ej;VL}9S=IES zn%jza<=nV?)NemmXL++mvQngE}r`KkLXK-s?1M$L8W z^8m-k1ZmV%b!knI`OAZ3J@C=>sN&H-$gz&nG>_KNJiw{Lisg4fR_VBkLxb$rI_+Nv z>C#PJO}{sv5!AI4>8yCUKz@9=d|sWq0j8V^U{-ET+x>i@8Zl~8Q13+!^73|obeHBN z+;x2~NMq^YE~k!_mNye0Gkyqib-bUMRW)ufK=Kzs8WayQZHv}&BPh-*UpK_7iUIBj zXNIT%t&0Z9X&2=BH$i4i3(!}1bKMtaMh4}B#Vf60g!C#$YdR#|wCdc|-VN&AXF;Z_ z_gT?PYnvrLhiSf__y{RZ&ju>)I-jj@kcHyL&;`ov^B^7X1ob}4AYW`$tvDFqigHp- zSTCp?ohlGynd;p5+Cf%3r1#Q^&vouDFMZrAARPQEd<)Oh!-KlVO59Z49QwWd)2JY? zgK|g16 z0>qI>RCpr{-`$ezN5GeR*rhw`@_02~`X3YIfp8FZI7sYgK`y=s(p`H?w>ApvwgByG_-L|FYgKPkxI&Oh zR`KJi`16lyuR&gWQIPUlOYK=f+N>7GTZQ;^M3BjGK_U(Y@oP@KG}nTi0*wAANJzOW zKRU?zV?lm77a&u4d8IWk6i&}2s^*B_Z%t9Gh5NRV@|xm?tB1Z*B}8@Ma_BFrFP8!Y z8-_^E4NzIRtEqDoe-Nbaq_2nMvFe6sB|mcPrLhoucG|YC*tmxA=YgV;u@wopOGJ_ z7$P!0$h_hqdMb|b%2)YGAx7xO@VhWyRz9t?=5r#*KmGu(XN9;>E<|%_ZZVzfMm_zm zKVLQp(NTOVb6)zQweS5S#Q0|7y#C&2YlygcA-&%yNKg67Gj&3GPnFhPR >VtBg{ z@0X~4e|6pznCv{w9j{}SSQW$nZL5oFI>>VZr_W;PBm zMDv|DUTYRcTkZ(zS@;0kzY1~taY)ZLsn)$4;@K8`zio*33xqf$TwQu6L^E+Lwz}rk zG^BT3%j5c#lX1%DGV%I!kQd(wuhQf~!qHyE{h;D;Uf=CfNO2afYR?VwnRSizN7`&@P3G~JEa4?L-?e>SDGo_lLEXg zjQ-k1@iqq7mK0P!9iXK&Y=X{PM_ROcbcp|c2r)+gKKrcd|Joo!wASeM;)ddLMm$~d zr94YNacpmpNMZAZ_+R3GIqNAN*n_O}$zzHmC;k;jZ)%-Chor4R{*~Un5|(;yme=eo z&D;@UkZQq^8v4HC-%Hsx*5W#7&tZrXnR_m zxf5dJ&q4l+3gM2_d^hQ{0@5I1w|^+eyN`6dxc+9MwCcAIy(WdU=b_kFR%{oA{?E%r z?hJ`+}H?gqs*5F%e#8E%vo{4Bj% z5M+e-wns7X{U}Zr$fs#b>HAaFG0mx$;yXr|d%P#epB+NFPN~{7C&b)VA+FR6@KJYp zt5V|T7_Cujt<*BaPx6wU`#}br3{hS`&ou7hs2~@Vuh&}ZE%}L2$3skA7UF};8hg3c zv?<8RBwe!_8=}7WJVPAsmK0$3ZDC#WyWo(Ym?J&@FrNl7A-dcZ*F3_S@?`usL`GTR zAUwqW^bkXwn!Cm+t^Ciu6=IWFIl3NH%~PJli`q9sbXP0~iobu(%E#S1pEa7xs|xuP zTPw_bldo9G!@LqN#kE&jTZIquS$fpZmmdkkjfI{00hS1lb%NqRw#METqN+SXa`PZR z>r6GgGksd3h|I*6%#qy-mnx4OhsMI{4Wa0F-SDK`n zXZa>XOVx?FTH8T=zmG6iA|P&uLO5zFUPnS~TQ9tF*G;rMHb&hG?v{ z-7FZQ>l$gR{Qk8wAv){3dv)A2o!eh9pJAWm(`>4==4<7ozO?hBe9mqS(LnQRq})E$ zdQ+{^M{)3~FgR3eXf9nY@P0mj-W9gg^OO^pUKJNFXDipGLky^#PoMk{iNbV)k@8Vx z6enp(!V=JLF?iyuwEc%Q{aTjqTQYTKyGb%BRAQ#(S|V#F0_@{;welDQ*eko}ACk;NRTDe-^6SiXS3x7+cQCIT$Tk%-*O!dkjoOcKkc1Tzje%_HTUfnB9>i0Nl zTh`!wA`0j8hsJ)H85w#Ep-o>$xHF9tLzhOmX{B7|jSVvr|3?RUfM*C})ayiKhWBY7N7rITv0i z-X>vdOg?u|WCShq{zTUg5xmC<(_cYC^V?KSw zllHCi>0CTt_j?JOYx9Ye&zv_hpLTolSv6DK&|JD`EoS-GzPs~@{wbe%^EIC0)BU36 zSXJj2e@Ez;Nb#?ha*Q%vD>Iks>$9$$0)%>UAbM%60M&o>T zZqMhOVqZdQ{(mIhdz_8s*9LHDLP(N?B&Q@vPEA6Z5b{HeaY&M!(&UtogoGqXk|arz zkfceHG$tXTJ55LkNs=T@GW#^r``vGU?9bl&+0VV!wXW-0>%RA3Y@**_wO(>repuIz zKd$#|&dlf09e4a43OC6QJ!j>In?E-zCOeDx?sD`mz4E}>@U%P!aj~T|Ju~yevs+*` zHx_Kt*N?hR%lq|djAyR9H{b7@uup$$PPVca-)$~c&G$PU^TWSpcx&gQ7FV4OU4Ar6 zdZ@wNo4OB%_W9w!M6YRgllr>Yf0n&R)BSqvsr=AxX1;%yPpdDJ{gfX*>TKWB1D({{ z4!tTE5p_lVRH$8pKK5_158k&RW#>4)#z3_xO&8>C|@)9_yUA3f56S9jv`V)urt|9`C%qZ3u^N9Z~0-ES(a7I+>rY^b=18m5(fVLw}0~*@iTR~X!Bcz z{BYq`v*wet;f8O`hquj`m-EA8xNKbcY{h2D8xKiNS@Yh^ zKF4!yTjAB*ndRQGxGuHKXN4o77QZCU=7%4%@_o;8h7h;jX+GC0$JghF_1p5p_iyEg zHg`nA)p9Q>5eaF$HVbc?8l4SQ#^#5I_S0{#@9}^5&f?xm&h<0Dx4++!A1YUjgcfCS ztM<1Z%@6+^$`3EOf0#Y4@>u7JMrOg=_BVU$8(-&#q7BR!GjN}oa|v8yYFjW~U-4a`hWg#SSs29+9TxCZAG75E&uzp_nt9vkw)}AVq~2a_UVNyhLw?wW z`^rTlekWLdnDK9Z$d#)$zBg6o$697~y1nAC_aEhlR%Xe;>G`3zIZ`{<9ym*koc!=g zHT=Gw@Au#4hw|>9x=5ckh=jarBcbpSdr-MZ$e>-Odt)o~Q;SHbq_&1WFJwMP9my;!nEcR0zKnlhZEycg zjf6|;MnXCdCa#NwQ3K#xm>(*74E$X!zwjyjKhZ~HGn||7vEycQ<2=7skA&7a&R%U@ zAK`q$J3Gv&;^OeBb+eE@_?=PDc2}ALgZSMDmZ{CDR z_yfNg{E&NZBs~9kB-EZ92^Y7Fgxxe=tmn$}V_h*%t%!tIGvuQGqNS0rR1akimM7-y zO5@4j@xul^uV>cEIsTPMD0?f;QX*lRGsha3{^8q^;$}3b$^1yDpl9|xtasG@hBdc- zpPccL5Hk~x&^F~Adok{M>b2hbxzQ7m(6N>4gY&}!t@-_K{Swm`b-X?xmw8Yo9ky#D z;fYK+c$wWS5*95{e@XkrB6E=5X{*%# zKqO38yiw!{p?QRYvP@Gq@ji06kh z?crL^r}9mpaf8~CFs2GWi?Jt-k6*NhTx~Y`8Cd#_dQP0WbSOicA{Xgly>ZREV&M9) zy=v&VNI1IsY^bisdwz2^ynZ|qe*ICOfAe=3|EQlI{w}t4h2P|J^Ec_8zrT)zZkO}o zZuqhy;X7P)c%5HXn@5Yqo)ihw$43199GZQMyBZPyuY^72F>C1AzH=lzS2z;J!T;VL z_M;CYp~gp%@O{6CzYl;PewjWb;{T=m@BZ~LR{l0Wl;Df`YTq(mu9xWXh(50>o>_UE z2J`u}f9Xj0p`4iRxjpKvG?EY9J1##zd?9zKNA$N`BXQajm#67){5Si*ID7eIS@CGN z?`7O>aPLd`{w{GO>{r{&anAqC_~y!p--*pHiAczqNuzaP`9QHP3SF-m8!5>uLD5`kvRVi##yRm>vl`)HoWq#pzmvuk*};nX4n=ZP-tl zBP**$!^7?5E*lNi%E);(60+PoW=$lV#Che2v&t+z_?DhKWrliw9G7#7MZ@Z+?IEyt zoz1WC{)nTgximBP3y+S3X7t{t=JpdKp`?0uuj1vta+<4^7evAXE%XwnP zjF%Sg7VqJ+{@%Mi@F!=_zxe1W-oGds-s^AHR*HmbYa`)*Ig#+epXO2r9HvFXLfp+< zcqX)V?^wLXE{%q>jm1yptNS9M-DPI2nr|p_Hgv8N37yn+L$yfg67XOqOu0N7DmRRT z>&=srI9;-t4@N}7FnlHFcFm}>AWq(VlIQrVn!Xs#^Tm0v#y63$eWo+Vn|w*Dh~C*{ z-MOy#D&{OxL4VR~)%|?=TO^c+yBHt-OW)gHH5nf8;1MyvEP)P5Dkgf8zZ@v#3!tJl5Sz z{=hs^&rQ73zbw6u^DizI^X|2Ik?`jey!{-kc>I~>>)ydtXLGP}#P8RRgpV`LUf54x z77dyFkmUQL!qG5E&dH7RIqff>Am+_cKdYv#^>t?Chy54mzXzQS{*8ou`n7^T|GfS< zLdzfYnV<7qddNADA7(!2UfjKX8kgmxA=S)XN9)Zi^;nr`n0|3I%)2$}XP;&muCKO- zjX9Sea^}!|E1Y|Am9EEAqhTu#rr|TCDxRv~+|L{e;Jjs?9?Xe^c*$rO{xuEyM`;iZ zk!z#jb{w^QHxkxcyN*8XU7vDC)bD(ZhQ7W7>?{-wm11J4yXK&1_~VdVbjaH7duTx< zte6DDG<`P$&SO0EqS@Ch8dlsC4V~hAXiv)75D7Qax|CjO`lxza_&&SCefH9&7s}<# z@>@nU^t?A3YT+PKIvVy>jE13VtJW(TuAqIV`o8}iknbnG?%G}dI6J_2i|2(W=+?>E zuSzsj!0FxT(eNXm3|a0o{q<*^=>PZdF8nX$i#O@Ag=gB{5)IF6jD(lXh`P^2!^w8h zP(|%8bdUPp6%Dsp{~1r6#mS46>5lK!e?-DFV)inJ-snX0&a@u|%Z<@+;X~0deo!P- zweI8+^LU~fc%#(gYAz8C=UPR>k;kK9??`^fS7y&>_U&TsJSS8v)>Uhm8w_26{|ySZO93~VB{zL`EI8j9oms-8TH$0B&VYj-64 zBHuZlT53&gT6W~Ei?@rfhtKe43pMwj6$#x>;07n3s(1d$NEp!o_O{W`z`S_iF|T2M zUhM<=<%fG7RSTXT-f4#5pjQXDW;(aw{~Ox(?H>&fo#xF4qM`6mGkqxj+n7ikKWPHXEm=6)8Bnv-(~+7IS&toiDmNO;T~%+YUq zhnQn9JbN`9Y7Bbi9o%OH-_dS}hWpQ&_xPO;??+!dtLgjZ_0>E*8angdwZ)@haJ6Vy zo^VbPXIR5%$a{--&WYVS5)M{yo}$y7``o)N;`boxubpO`b@5;Da#z&vB8rAqFjiLc zobl1H#=dgusC%!8hHLcPOj!3luU`4ev~Vw7oBhvs5MG#wi(9@mJ9%wU(9!<&3?sprFG{anPHt1I?bRp@@HUi*}f<@{}p zGmaVlirKjF0v?1f%F}-g&Tor5J{l46yWGV(Xg{R+g7?k1 z5BPO)G;EuPk8j{O9Sz^hcj;)jyYSaCob*94xRMX(TSf0~*cc6uHgF!8tw-hl z_gUwDy|%nrG@So2>U$}_&Nd&!=-M(GvSFyfM=!k>^}7o2%mXRr$9!=!TyJm2ee+T@ z^u}$GTG7yNku%9EbI$zQMgIvkqv7(2ymvb+@0&wadDiv0I7%~P>*YnmnYZlA>KndX z9RB%Mp5eSv>u--q(J+?28|TV(K;HdoE))%WmgoT(jz1X0Oj~^al!%7s z)Kmw?Tc?<@)$p@epW&fwirKT*y)WTlg7cL)6V=-NOTF+tkAA^Rv&1$>PHl*W9`>i) zRpw$A{JY#&G!}OCq(AKarba`{T(x~||K*{Ld-&u&_wsG|U+H>bG^E3NF$_og+4GjD z>c%?JqLe3m3I5{_j=o#*V;c%#eGNe z+*%zUIzP-;M=Gtyy4IG*58&e%%@(Qms998H6c72?#lKIO8#o(uHxF)sIgaPQqT#7K z_+Xl|F%AY!;&(Xi`U#%>`qIoB5R3Z%R%2oOE@$|9e40;dJobFWoc>sh=gc4VUWv&+1Tbq1Fie6f^gPT^|_&rI|F zz%uXQSV)T@Yw`9yU7PB+YvrCLmReWfV-ZZ#^?6j!9{mUhxLEod9LM0eF&avb^&QJR zsa7Z!S`4=CJT8hk4`w^J;Px^-l`goP|)bEAoDKl-TpTE7TmdbP}|Bbk=eNo%{ z>DF9>(-AP?xzpEXK8)*~^YVT%_vPr&I2H=m@!fv4?_IasZ{JhX9kEan->;40;qg2~ z(}7~t!BL?bV!jWWABW-YYmdQkaa^SMynS*$+!PDBhj1~CuLhVmJ)Eg7kA=I>>8YEX zgYkXEyV397YkXqJ##1$HoaqhT6PqfoRNCTKa;QA*KKAjwEx3dV>Q0$-oIfi%;)F( zmzZsGPUESAFU7*=xNChIz4r6A^ToEuV*br?ETjyJg>~w?>F38U;OEwmz&F(?P6gG z?cc79Gngvthugn&7WUb=Zn1D-|CoP6WY(A))75m*6C?J3nEiPE zMqC$9-MPN6+T5Fpmf3 z;dRefFw?1+9$27{Qh$hsj@C_pKeI1S$yM?p`+sfuXxr>^8l>r0z1UcugLQ{YS^bwfb!J-@d2u z!`JEH|FUx|l-=emybK3=Z;d!9`|NptncD+mA^ql9sB&k_|05am?-cargRyY* zVY-frg*V~rG$R&<4so{g+~9HV|2AjO*~9pDx!jlWd_|MoCu4r+bSx}8 zZgzIDFY33c&zqgW5Y>PYI{>`{3?h=u3eH}^jGi`oAL9#Y58uf@W{v#l%5 zf4MYy#q7dSUip~6S7N{C&!h718p{9l?=*+bm*7cX&4RhMcxiNLkYhj63)j?(`T36r zo*u3o3pd@SNA=?8(_?-YSS)<3FFMw8O+9P-#KMPoYpl-a__0(m^Wo!IsE3<&_v#(@ z=Dwx2O|kF>ZPIX;gO_S>r&Z;T4}CT(7J4<}w^zk`+1|B;UtZMjnbvmojH5aFHpP5u zSKhgS&!(uczt48zsQ*Pg=(9i7Q|xKIXpefbPAtr%f3{rPR;ZhfO{c}ePjl6|ipQ6l zDLDF0&-PwJ&s2Sv1wSqi!2PqhZ!|QI`LJbgu{!Y(PImD}M>XW`Fqd)pshYOYb3uk$ zZ!m}9PkX_cte+kmB=*~}@S<4j<(u1`2Nv*3b!UV3VgATo22<=%EL>ntY!PG1&(_+9 z$Ks$5KIS*V*Ix7XYyH#5Sz)~E@>d@f3wyf7!k8%@W5hOxTH~_sm-d@?V_`6@kG~!Z zkJI5L`~A8cy>X9O-h;Px^Tchj@PeE@%EkQLQ;%g^$9FH@84D+2YN*%S;c7-(9M1F^ zpX?PU0}p$Be)=G;-T%rFd-2_B@L9+0F~4t_*X1}mj+S5Z865so+K@_zCL>|k5DUNG zFAn{xceLN8@s->Y$HYS0#k~7HfAUQKtDHH$;Jrs;p(RdVgr(wg`L^=L7W;tskHPWi zEZ=vI$HL+I=Cip{*QEiWtPpL z=}LK~^2ua-;V%0^tunE2M&55b>oxQH4D3hXoC$lD-aD@Db9y83bSyly%RXRz)kS=> z(HwS9rg~=3WVGweR-5BLK;7GehNcRSpK@%{bt1+{`hWpEZj<`9v{$gzI~gY zJ}z$t?u>;=JH#@FH|vERX3T!veB7P~^ymovHr=6Cb@g~CwTqscW8s^J@aoKy z`ZBzSd`CE~j~nZ6^(1SWAVy8Rwk~Hr;~~4FT)57|=Pa?#clCZ=% zwujN6{m14c{+^@P6EI$IoTqqn=$oFc z+#kZd&t9sw-_%~{2j0u#8NOHpS51E2F+i>2{zk7q;N7N<+59`Ms+z8fhiN!T-6Izd zPO+wp8uRE|V=WKQaNb?1kNEVwdot-*;TtK4(_B1?RJAqEF4PWRilJGnNub0Qe z2;QosrqroCpw_C>)QcNj2bTdJaG1rT@43Q7!9f_z%w0Zj6U821gsbpQIjI zWSB8mJ*%chd~hrl-VysfoJ>;VUUjXZUs<}((07I48~L3*E04d`Gf!RXV9hy?xAio+ zBpz~){1-32EEY!Tp%we>K?iy26&m!UuUy5{llz{THwa(J*Z6qI{k0F9aeMWdyvy-D z%ldiZ4>Pxp(Y+xIm1sDTwx#478-Z&wpIsRDXT7md{%!lm0zGbBz02aE@X=Tp0%y^D z{?@}|eRi-&JY4p>{jmf;`n*l4c<2(hZ&<(T4;s;MIe(nEPuz@2HB0E7sB!?mTs$%~8WOaX&ZU2|YTZa6B}a zt(QG_>!?Qcw8v?!3Hk<>b5-J@`uF(Yv1XsEO^r1!iiiHV9R77I+(GL_SH?p%I7_DJ zRk23!`!74ih~XKg`!jKDU4PfF{73JOQ`_IZ2k};8_k32!&nx=yUP?TCD*v{7=q=Y3 zG+%Aa10{S0e}^}Hr?F-ro?5HDv{>hGw6@?+W|GWHjO4bpLce_LrRl)$dr3it$5g*8w=aj@xQU=D^3TCdr}V#)+6oo z_~3^6P~N(@sfeeFr}V|8@lXM;oo?3OG&lfnuVeNhy;B&bk=`FY$18t3o9e%RYR1FW zf8rc(JqeUk(WNAq{@#?O_vGA36 z*W+o+M0$*JuDI9FZ`9rF7uxY{H#~g(j`Ped_^uESRnFj-U#sCDvr{}QldG7zN{xtz zPB3(}rhmP7__cOCyhEFG9-GSNGw+Ir%6nt}zP_01>_Nj%_4%je<6)8BTuzT%*t6ZY zwSGLT_B}Et_rCXGUS{uT#^aOBOPZyt=j;>qtntjHvFtK>(q3;o}ALo^{Bc1U_5lc!#eo0+Q&m< zd^Vy%Uvq1awNvmuIt>Q7U${6PhNa@=BX#7Naju`>(L$YgSRE78J*GrF%%oGU_cN~N z4YhQ9%`AZJr28W{zr0o4|1HZy?kU<3XL{{v*BX5K-&tUR-WbPwQ+Tz7S#!lnGhbb4 zydI(58aig_@fx_TDE}M!cG89V);+n+amSl`@fT=a{6Tw-Iv?cuBA4NwR`=pyt833( z6!&kr@Xn{Z;i^Hu-gJoZ^4bT?T6&)zsqY@PKfrX=5}&(Xvjgw6jEBj5uuQxTcggoV|U% zQ2xSm;^8{?)F^58^o#qQO!4q6o|EsZ&^d{93~hG$>}8zw!TCo0kVez2N;JUly*HUX zVz!sBH@~(q2gl;Fj~utra}_QR_Jiq={CFrz^P#+b#V}_X^M2_)<|8a`Pj$VI9-qY@ zjp@Q4EsF6z%s04iJq-`Lwy=6UlvdB*xP0RZ*gTiV;T*i3^QfZEoJ;6UySt{FMLa%> zZYl6z(HU;MW{bD$6}|eS*@Cz0mz&2a@o+mGd%!l5Zln3T8Q&)TeNY`Wcow`a|PZ`^HXy;yZ6!~4>@nOh=+1C>4wLpxXY|aM_zr4c9)xr z>3H5I&vM!?_MEy|Z(M0^;Aw<M3};;kp&A z7r^q;JhO$q#qQ%tT-DQCwI9<5p6i)4)709$zT7lfgSUxr)lx_7d9#Nu`*|T-{YQJy z!MetLo_swLre-xfm*VH{I2jTT?^*w<{OjoY+LPvjS`M~!ZEhrdIDu|*yovKp3*zB% z{2t)#4mf?72X5>U^Ka7lji#%+no*15;S!$Q!H2~L#{G_c+Tg7PKTW;F{yv4aK3g>0 zz3R_a)1-%9cD)s6aIj#D|lr}Veai8}=6GkNo>LHx)ExufxVi?d>h zco_b^@0#u{{joj5+U@imxex}irilNl{pt3qdRxwY_RhMsl79z-HrDpkZ>wNl|Fn5W zi&A=|l^#8FkI!(kXR*DX|F3yb&gJ-pJ=Hy_IO;P1Z+zHdKF@iKcv)Y`k>Imdt?X&| zN~84-b)RwnK%A6y_M24B{OG8!>CxUjqbr*gK5K=my&LFToQC#>WE`IO|JY>v1aF<|tVehFj-kH6gK1m{-_!I1ZHKFIrdThC zaRjG%&RSD>wzPF$sw3H#P3bfC1AZGXesiCt;bbwt^o;xW3Gq;|6VJS^7WIDqEYHi^ z+#WlXT5ph)=cb9Lala z#e}gv?&s5f2OC{R>w$H4b{h{Fl40xUH>yf)1C7*9q2b zKe(^IS^5F~I+;KGGQb>|U(-B?uM{m(@h}h%f6#p#&4y1lLt1-o&a3v(MQ`&KuMBN( z7Im?wb<=+|t+^EEeDc8sJk}Iv?>bZN_1PQzyDT2=8XXT`OoQTLB6o*uyKhj^XI?>H||??L%q33Sl=gJ_mv?>=ZxJNcUZW31VY<9#^D!TBG!U;MQ5 z_!6_@3mm%VXYtZJavpZxUMI&udy6=A>HD78o#mL1yL5i9X6+MdJAm77_1#}j!B2;u zVA(fEt$K1#7d}?gQXFr&%YHMM|8Tv+^V#e9DmxxZsOf`J|IL6&S$vDbS+r<@hk9zc zuDw1rPkYHK7MfxFMa%DM`rO=lQ_bzv_Aqeea=V zKefDuhjRyUF;DKb{LU-My}!R2cH(}hynDp1A=fdn2I92Tr|RH=t|bLo(MgIp0mb?i>%lXX=Ad=3pN)*}ZS=lJBtn zk%y0pk;#WMU>@Lg+hU3EkQ^C4Pv@zccuLlAd?|m4zg+ICUF+LO3>s|I=dXy}Vh1g1 z>&sgD%=^M(X2DQVeFuA5$G4m1DG)wJAP+Iz>Rjx{*{ahBKri-$k6 z^_ny0$i43W);YzxBlg$BW2}8%&A6-mE*)t;8{V4U7lHZuvi5*2Vt#3syn!Rn4QTz{ zYFg@(HReT*{6mW;!hQWsJStNAPI^wdCnp4x2QF6Z|`_9Z%BxRU=y^Uwxoxs&FuHB%;dzs|n!0S_*+ z9`EIUH`if3(8|2A_m%Q}DT}{{ZgmZ&MtC|QPZRHdxAyGk_C`29-$`5kSx=Kzn`pUF zFMlRKFZAhzt5h}6|E;^6(bUt}*<;EVG@Qpn*Yi@AbNDCv8U9H)`W%*#@UNMxr}=yH zKJ^~6|I#Xnxy<+0tuRwh@hrWnE!K}k6X8&jyB*HpXYf4*SMt}b=DQ=F_uyr|TH1<} z7T4>v%=yPWpkEEoo6ead$9Wh>ebjZ}H+-mNn$I47Pv8FR`AzF+Jm@DJ>~b!r;Sk)N z(kH)mgaM91yX96#O2qWE(c$}8U*YesJuSKg6T6QP6qw&C;arHOF*h2_l_bp$m zJ!Y=mXTUI>$%e#yCd1kSTDUt}kd0%M@>~JhEod_AUe2+iI!SNPM zyJ=MZ@mF8WMZ)v0U32N+paU#rBZyjD4gO?{Wd{2bqRD{9Xno9${aQk_bIvE=HpYWfNg=9o$@y z2vu;i4&R$k<3$~@s(f-$BFu8ngZib48V=#R>?brTlL&Xind#bXVyCO87fg%wXC_=Z zg~XMoEN&k-#KZ6KXTn(pXD8^Df`?4?Ebw}-y0i7ki#|U;As#NhDG}0t#OFL()9NRf zQ|H)c@ZZ@i$du<5c~0@bo<~p zeW$*3>qpAl^*irzbd*18c{H-NM2kdNhudR3e}P&zUY7`)@R#TQ`uG`&lciTA{NA@j z_=mR>4HN(0!_D>LS8Ds6=eFZ%2CQ%M@iTZTT00S*re$FmM#Gq%<(x_P`LsH6bt1IG zM-HDJ6#s~xDI?Z+aVGHj1Nf*W&k3>nZ=fB_OX+>BTE1S7cfObo=U$kS{Z(4rZ?Ck6 z@^dlq2710zo|07(Va+z&(P*8=3Y=cT2g5(2^-$kY)AhzqdxZOMqQ?k)%=pUL?IeD2 zuulDVR!D@_@?^;Q!cX?zU-=H!)%*3D*c$@xsk8iAGhm&04dYE}D5mFsS-|tIH5R|P znAx~)59=h_4TfW`>t*HXLyrUUm+(BFw!6%kv+#D}jbn7{gu}JC*rV46;_bNDQ)qfn zeS3U%7{002AJuCU#Ga*}df>KD`Gmidl?W^7vF8A-#9oe{8~EmgxQnk(gkW7K{V-7- z+tgRy=b8B5Bu6FhEV^_w&${5Pwmzzl*W*_ud@q8(MTxB9<*=MS2manHYFUB}BMYAAmh z9n6}J^i9shg~zP(oZTQ1zQ)H$ejQ7@L$n&CpE?|J-ffZySB7Rx+Z5zj`=-Bjz;26q}NH$#ms^NSWD2g zIKHdmZD>tZ;f>5f+P`x>bLRU+-}`>7%o_KDX0% zMzy>@%nZCM5qiICZg!NvX(FuR#Z+3pHP38N&(7O%_oBJ4KMvP%4&<%7c;bxO&Z(t1 zeAVf?(wc}KE8_iv8fF;mtL#fXc;$2NE8y}q_5M$fjCb#z>(%t7d4TT@)}_H3(-*Jv zW-+fS!_d|K3_1s>Y*=!sT|&=7aU#5<4Yi|BB>9;ke4B0OQg z8HA6l>IwfRDW1fdOs{ovX8kV_MtL99k(*9CIxXg>#nrs0&A)QgP}dka#@xvBu0_<8 znr+Yf#-7FN9dOgG1yAr-GaAk1hZCg|;S1PWh+CPDX48C>=d~~fulJk*Av7&r+aN9)49-x2JSB{5@;cIEHM401x=L60OX3=Q+ z52DpYbPHmnn6t~xlMys-{v9ufS04Uu>U#*6%R9j)Ua!yH-vAHQ-(+C!FC)kv#KS+|L{2ip7gu)iO>5canii9yzh4~6RL=D8*SlhUn>y`U@1w* zgU#g`hcg^Kk^%>fWA~fma4cx)Y^1+;SeJ$Sig-@J(HZlzDc;t=cz`w=2U=s!6=dlj zo_s~FJ}})aepxk5pv6)(rCd%!p4jC2UVBU}aaLTJ2*aBtLL2qtlN@?$UU4Bv3vk5St$ze+_JF+`wi0rs@zY$jXTcSt(fO`o^>r@h?~CzNZIAOV@3vOcC-|y&D_vYq z&Z^{o8MAMkH!~ODBC02Ukhj+wXU_|H2QTZ*i|l&ht78$(Cf%nW#mnibe|e_2eQ6Vp zzWg8Gd#r}#UmA4sx-Ja+)R$pSrWdB6^G0{``wR{ucv~Y!i|g&J>Zpvv@;IJN%d&0E zGIhSAN3!{8pdN0G+shl+$8fb^pl9*ciTyvEwD#CHgqOwn!DoftlW7mF{)O`hUbk7- zXp)|$!3Z(mle3k$8GP46&9hsX7v7)8`*N?h_NE`NAJI2?J=}}`GW@*w5&kiE0`HWQ zXQ8!ItXoFQY1TaaC|+^3U;X3o&;Z9neI5q$g*i}|o-KH@Hw@?Ms&AS-A*na6`aR1h zy#5tk3&A;B?pfn_#kwgk>BGq|+>r=3sN(6kMQ;cZfDS=q5L(kwdba&*?ryA*TeNP z9<|KS@oFkgv*ENl&le}(kaxPhMcv7nne6vnX5?c0v`}A?(|7st1Ndh2PlU%OCc+i8 zsUhCdD)5i-y|201hKEx$Ea~1=7n^}%t#2qcE=sF^5nZdkZss}9e9Grp!|{rng+AXq z41f6Q0aNn4^6!gs$Um|i9_e-j-+%GbT6=yA_w>Y5>qlURXM^?i9(GR$`5%DwX&mA3 zoy+lk^?y2*97RVSSU*&+-I)ltidA?jt>ypMnjHOfnijvQz0#%j8@N|Jg|Al=q45ak z%<*PvQSYCym*Zmw9(T%jFWg7unmI?FvF0)k-*D}8D|tL`bMJHQ%qMZrtEZ6rTF~TI zICeg6-*`y>T3^fOw>&GhT8gTxu=VYDDs_;bwOwm1{g2>vQ)@A9QfD)Lj_*FWNX1RN zio8je+3GAJ#`*cqkvPAgiy7;&TAz=Vt1s^s5&Im?I##10PjAFWHf{3ZDed)*df=O? z>cLmuRJG7Cd43t;ai)s?QOEmN*^A!fv%>J;e(Vf2jyCVaXu>B?ySB-_SIN6rjM{MZ zlsh@IhQBQ~-FCf%_m=!3_xyW!>AnB{3iBT_g*8$PBq=iuge!4nkH<9lkN;OD>s`3dEzyteO;~pee)>pG%pD6GZ%or)`&}FAxd&aR<8a$__u;7rtb5G- z-p)O_@Gr&B{o{FFtsBLTh?|0gnCD{s@V!hvwKbu!p&TNxO}fDvoXn(WhI_MK!#SSb zoaKChmq62*56DB;ZZupC$Na&*i_M@bFCO6gS3D-eKjLY+(tDNr-@eZLU+JtO#zI(k zs=d&QG31J3AvrFs@ThVvj(W&lxe0&ESpfG-cZpG64LHoWJrVAp)jWFC;f2{g zTlA><@%Da4^PZk(yg#}ce_}09V)VQhmOA*I*4M1%)7Ue70DH+f`c9r&J|FR_>+{s( zb?;~K=JTT;m`QrD=WVnQYn9LU;HUqG|IM8j@!rw;7_Aq>eYywV;W@zvUE#UZXXU%$ z`WrgaIQM#a7SQJ{_tW!AIjX#&FFz8;^OQH8A-&FfQ9t?YR=PJ_4hQV()G=)~ALIU2 zb^hzx1xYVt(o?T$%c`x(KMjRz;kmqguROn>C>k1F79cReSpa)@B6IfJs!=V<5<_G-Am&xYU=Df z@AY%{drhl;FVRn)U+J};Ha$0pL&q8F9F%Ln$#53T!7Co;h}#4Qz3{lly2`wLYBFxc zU;Z(_wuj>$bC!m8)x-Dm_!4tzKb&pSKWbhA_Y!>cp-ox!m#R-sYo^^oOZ>IMTNQQO zsqWTk>ZSX6If}UF*>|0>tQo9#)9Uyf?sEg+;_Y?n{~9;zlWQL0m0@tuuk;gi#oyCB zl}DFquAR>2pGD3u@ZX4&uJr4mhEbn8Q}_4zD`M)E*VgKviO!_B*aq_gyj0nvR{SN; zcX#5j56y=AY>xP6R=R(_obX3Hnw6t-vUVIi<+C&xdoAVnU1sKXSn)A%o9})P(8T&$ z*3MS{m0n-7!rlq%8=pFF;d(KCQ~2aoSX1H1)E^DD=vVjlPnXlR)_D3J<}&NdCHyv< z>+F6XTym_Fe~xR(@3+++Hc#Yi{hBk+$p6kny{@KX%S3n`H?b-Bfxla_p0{ZHwK{O} z-Cl9wAG3!4Jr2r~BXLcm9(d_Hdy!e?|_|L@a;XC-~K|LjY z+ttqEblmCQ_4IE(SUblY4&GW2e+p(dP%o@Xj(b*7cogTDV=^FdWA1V3CPe)h>R7dP8>n5l>5fvKPO-A2$~{LFq{({g}y!*k&I zNN@5^^F=T`Z=a`Qpt_?!8n!CFjC<6Aj$oRLrZz`Us9rVt-?Op{e%eQ*`91 zQ*iz>-3+JweXv&(a}Yi1sBI)Yw$C#A_$qz7StZZw)_%)N)znlmnVS~t@p}pXroz-o z?cedtgwNIgyIk_t;gx1Qd*$EwpaHJyaJkvd1X~({6Vj(v3B8t&{kckK5Ne_IRQT>oU35oy}|zVnp}A3^aa2F*;dsh@=aHZnxDblZ9K6@?SGtu3-(iLeEVblqy9PK%#$|; z!%_OwaPLm|?t!x{KEA-|B06QLYr=>0_4*vl+w@nt0(+2qj>|DmFO6vM211!4_X-KjDMqch{-zfBku0JSo=^>($U27lk9v8hm%-0$xzt zHT21zX0L*!*^@X>_Xu7qEAFXZX}Q#SWVv&UT0T=-D!$g!U}RU^yd~x+=fh!s=CDoA z=-Z9In_Yaq=F9(T$+P}9eD#c*EkF8msi9^S&N{ibF%6%=_fR?(k+;=%>ixmJI9hIf zEx1q6Z8#k==z9XM3q4mqL{D1&@|*8V;+)1)?sIagYm93t9&Pb9{d^)^w@)p2zYT}& zXn3`F?M|y`53U(I@QIVY%V2W<+A;QD*w4Fm zDyWNQKjXcJocF)x^KZ=NU(E{~=JDQnoc}?GJ~TQhR{Ouy@ADivhtP4GJUKYYr2C}f z@~Xe3eyX+;7Hew0u9wxFW$id?ipX6N&po3!$QSEpuYK0qwTwUXL4h+Ky`K3DUYZ~I zN)B9BTq`#Yn-nVu>Hp}P6XuoA*Qt3Bj04qC4TtB{Fo)(n#GB<>S}B5 zJ%;btF?r!Ta#4Yw>lB2wS#sdu9=-6pczp{MggT`Q!f|mXl`jZ4sda=|)4<#cp! z7Z~=!dBC*`lkwD(#zT!^=#BHNP3q+9!FcO$eF6QN!M`2Xm*XSlYkQXao^`!A-B*3- z`w36Y(MM-;MP?;Gx`VvLM-4A72yEpScl81QCz#WSKQ%we0wP#@pA|N4#)Q_xF&dC3Kx0S)YOk#X>t)B zd`7(`c=C)M=~K5Lv`>16m%q|a$1W)dTX8u6ca3QMJ-l;1#u46orWE)cU-kpDpeG#l zanl2jEiWtxXRKXDhc5D6QKcZvR@;2{jdNd3m`ZGPCd125@IH)(N9c3Tn(egi;`#*r zTTAX+|20c5;}7>#!cieHW_o{SzrBbycZs`RZ6*0>9Ucd}R@CDgeyXLmde(>S`pILD zHFI#-v|K@$qQ3KL*mgxh*u{6)4ab(%%QlN zEB6oTJL;I|KJO;OiRqkEZQ8n2X@!mviQ< zb#pxq)+h*-X_}3nT}`d4RS*`a>o@o&9?)azKQG2FJW|(V+HD14uX|_Gt-0QB0drft z_P}R1eOHBc58!Zy`ZvnIW1aJd`p59OH7N);e`f#p2-AarYYW0l`Xf1?ugb<5++%3Hw|+qwtpBF^ zd>;HW)jdO;wmf{#279sE+T&%5YlmU%;{6%CTur;@l0AD3T;jL4ZUvlYc{~-Kx6t*Js|vy+VS2*cm}|=kMGkPi$%lh^j~4|^KLEpe}5bizdOvUYSIO+0eqI; zN{kx{{C%^6u*f{0?w&39tt97;Bu-ey$aT=QzVKc|$4Wf76*qU?UJyF)?iYGt86MJI zKk)di(^)(l`^rq(=iHU)JTu2W&Q8Wjti{qtG8D3 zZ3}p&@XCJNm2^)Rbu~>d@NePGEZ)0Yz3F^Eh;Q@Y8i|`%-2YI$f{-cRPQ0B{>&A{| zl-H+ed(iduu&30uo*vcp=WjgJ9*#<4Hm*%G*q<=h&Uti!qb8kB(sBUta;kr$O}I zrDtBYrYe2+@KY;!=HY20eJkHl;O{Ns5Eq;He*zs3z}18|=Bjsu`c}|lw|hq?{Y{_G z;Ys$@9(&Q>o+B^?zUu^IC4BXvX^hvi%&5g`ZRP$f91VAEg7wMsO@`+joMoyr)qUGt z`-Gk^<1QDT8{J#hUX;c=OWL~Dq9BZdf06rF@=i8hio^99Pn@x?6fC>p%}RO~rw!$u zfSU~0x7I2M4||-o=2EfWz)`FH|INCgblvJvil*<1(@UNQ^-ghhO;>w5PHW=tPxXC_ zx9wscq0wPF{sVUlT+O+=AdH8l67E_aboS=I<;`g&XIU|KTeJ6n1)<;V_<*O2eo4Q@ z`BUEVa>VY$Pb0nK^VK|4OP*iU-_CvO_16}!`_ZvcUGZ=|kB_cvR}hBqSR96h{9DPr z$@5Oa>y)ly;^iS;?Tf1%J=2=s2kWn|={=`fLHJ6(=bBohC(hxunm9#y{{=psco!ex zJd;O`s(T~O>d|GKyif4Yqh{4{@!!Bx7QX7MX)F$ExF^rLO87Y;b_8#0a6ZNBt+4mO z<-=+#Pn){1Ty?Yk*7~}Q%?R;!ieF!S4cZih-grF?%M2XWqRmn{*4k4Kh*JdD8Mw-! zK^51ttsm~b)A-D2Chu)}=Z61!el-rhYv~Lk_gOkLQqKwZ7ZZD+e7mfhMz`AX_IS7; zd~+F(!MlkLS9Qm~&wJ{%L>0Z6%+XDJdd$Gt47nq?EmMqV@cDBq`q8;DEj}x!ZuMUe zXJ;G?g?XGjX(RZ;+9fzx)|bY#uPyEw7!z=PMw(<5I0EADb! zHOFIFwXM@fv(>WL{b{@OubSqOD1M>^qd3(dZ_<~y&WYMK5&HPEG+dUDlJ!@cR&m4Ty){@E(u zNwL@AyS(dpHCz*WjL$}!SG{1!38K$$?>GAAZue zedstBx2>%!Q5cqzxRvK*C*H(iS@o?|`}7NNp;vF<^C|djVNEU^FW@-GzMWFs9OK7i zzDBT&a@MRUMjkI-I{;6(@9X{^^!c`DL1@#~`GI%i@a)A)H?LQ^c3!Ph`09+@)9#iB z?p5^)Lg{O1udZFcafTMZD|Yq|P76z57yo4L*0Z zF9;vXw+hc^<<7wKn(BH{%sSRQ%~NUemGxN`9wxc}G1ywzD`tpsZ!h`jHXWYfG&%0x zWBv82bwSJ&Sk~GjQq^!#QTvEmyUAa^FHY6>m;OBJ-lQ+y_u0g|%}GA#)C3N>_KP{q zY*^S07izf^{>~|SPM#Eaw%wtZ@lcQccZktKkMtI=8QuoUdjhtHTdG^%oTSr69v$rd zL@V0DzfG>e{pgVF?F{RDmZtXed^A*^C?Ax>TWk7uyqJe@dP1HRaJGkUdVTXvjd@8d zeVp4m>G3*drTEG3uDSOYgx}nM7#E4FtaIOvJ88;ueLUZHp|gd3YlJ$^!`BukS?)by z{RZn7+XIsO(8fvDrST}uGRw(Ri55O@&u?$yK841~J}h|`?cIL^jt7c&O8v!J>kBxJ z^`Q3yzSF{<)U2oL&BeSCH>1^6#k!NO4SIwYe9*)_x#CVY`^&(Ur?wqx$bt1A_f2V0 z5X$jy<$Gw2uSOnEmyqA{YqVT|hvfH&Gh+YRi*N9>eK;+>--*{#KC5Z{Bea^}{TzML z6z&W4P6OOFhbPI~I`MyoAx~{3z3zdpL|1zeU2?C`Cz*Oy&Ko?Y^GmlO>f^UGwXKD} zn0o8hCkw`WNxUO!xoFe`(^E zr`zp#j;O64emma|yL-RZZ)N2O5{cXc)=>YJNz9>eYD_u)pbm8VBHXPlJ-aId~X@V#vP3Xfg`X^)d#IGESZycFXQ zOj)qjQrja}sO@2MQ|__wlz+@RvC6ofJToVFVg>BYF8J^J#Oy1buhh3qj&W6SOslat zJPgkv94w+yt{mys9>IT`(e@`e2l7>E{55gU82%{2AAQyOk-AIZcawW(yO#VpMPK>H z(s!cTFYC*H`gN@u^2KdC3l`oV+>&P->uZ>oR#Bht{)O>X$eL&5>krpJXRymkhy`aY z++2&dwzxiMkI1g*wd)_!?{Pd0!AI>u`dE&pQ{|@5&+2~G{i(xw5ssCxEf;?a{%&%< zy&8^WPdBJ(e!_g3=H1||?R6$ycdFs~Vtx+7qrVpAnRNHwsdoH*gx9LAd5eBY&B~TG zPt@1bkAXU zl6!tjd~}p|q*^bBz3@Y7qe0D!)eC1TJYN(yyXw=sw^^eX7l^e*&1v3$TuICdIK@j{ zSc~AOq&<0)?;zi(VNVDAh;^P8Q}NZY6VHiJmfzanif0_HgKr=0SB-@?jfZ&QVi-?d zrdI2xx&G+G|Mft9y>~rr>cD*BURu-Q3x4d0haxal%T%wtTVSs;%#49`xYy?gTK|B0 zaeLu)Jca+oL-hd6cbB58`vT9buZB0gL~&6{%%}0%t0vvl^$Xw3YeH-z-u~=JWiChcK@1(Rd1v;PKQLKBx0p8ZCgOr2Ct>UX!+M z?=~Cg-og7TX_^VgA+ZkeO2z+U>Hgz$EZ_fuBT169mb9cL&F?io5?Ujqg%+b(5)w-z z$*-0lOVV1>T3RD%Ns@#lX|1ItE$>-9Qb z$9bLibx*-x4e$C>aFBPi>q)e{Pk+44PYd~QroOnq>pmW6sdjPj+)byjPQL*EPv(3H zOFm4`sznEJdXK5>xii=Ek9zrCojTKYE5vJo9L}{-SS}+h_sD$1oPCV?0e> zdCohrNJBJ3@u5D7+?dtQZJk90&ySeo?0e+Z|^TKK|i+k9^;@?EhSh~&U z>ulG;-lxG6>YvUhiEz=fm?jalS=`sYot|xZX}|a_iwp{NF?4)y!Rq_f1+MyZh*!rQ^ovxx-Sk<;7j@O` zUe_||cY)fcslidccm(&IuA&>xFbY4d1m-`!1OzKD-%lJ}+;>`_v4N3AL<| zVn_54*PL{i4_$4ohHqO`gGfjoyk+;UBMm((vtR>Zq>m$X3ok#PqmtG6wH}ZGK^&}2Y zXX_J~!+Mv>XK}dqcCK-VGmm%Fbf)WT=yt&S-(lI%ABTKC&($k$SFRPwx6zXZwc~k^ zE~h8sY7Lkq_X|9C1@5PCf6|yT+#A7n%(#|a`O^3MW$JUknzk1|0k`VrM=kJ-GmMAz zh;fO05bOE^x)syCe2{yK*J_2HTfw%?^;e$Km-rnp=Xe9Xj?-sqP$bU9y!0(?qVXB@ zs@^hwk(~9{yZ_CljaVm)|8R&ny#Ji|f54H#tLw$gq`lZ8oUUz+MiO>us2%C^BoGTH+)i4?xiy;Yq5^rOL1#u>~!_$ zF7NT#YD|}-JaBxhbwSQ0o&4sZNABi@BIDM|`-JyD!CzgD<>rKSqN<~s@dw7?49nuz z^%c$q-tVRR*cbGbIyCJj$2|Lvx75j;1U=Ca#tZveb6kH~?t!oI1|I9--oC&+{0-kv zt%LLEwP6Ge==os2^<$#@lDPW^;D}qz>+F|v_(=wU(;EvpAYJ^*OJrtOY#ryIceDE~NK(c?Q#JFC8=0e~&oZ7V#v^+uu}EoC@V> z2;+J5&cP#!-u<(AQ~bvF^4l_fJy)IOX^KN*o}9W|EzDU5(;&IN6t^%>FOG4qzt1@_ z?x$x*I4_{zN*MCZI}e7q@t!kUYyO}^cy1LRX|0jF77n4OR}KEB{L;?uvwAjqww|PY zE4nUlJpuPQj*)8l89ckD>cf@p#roi4=T_1$ImvZ?J`P_!dJMt0*Hi9Ea&N!GH93wa z`0QL;F~{-2GJgAFg|*iEMq<6rqj73qL*84=d-)-Cd;OpCmvGuFPo_G)CvJ7V84br% zBdpta2Ol0bXOuBH=1o$I1UU|UY)v=!U*iVlsiA9ec>KdB!{+PvEImcDP^0wM)b~|h zd5flSoG@-ve|twf58sTx*wb#cj`Hae@n1LpsCw-&e>Ln6&|trHyc-g0I^RGvyT}=tDg9a--jROt6Q;o&%JBy z#Px2tkJ9miH|&$}N~PbbW%jso7dcARz1Co{%*(w+@4d_eJXB4d_VWCrK1Hw&cAR`s zzwpWio?JaZpLuO0??E|+KWSa+2%DIzcq-Z4w_zN)kSFnKMyI3j<;qtNj>YO#OHZZA zHIaeJv6r;PrH`JIFY0~c%`22QMy@=%&zwSY-1+`CTBi=f zU^~lOt?$N#Un1}FdzaUH2HSh7O9`zf;PT0R`hk}gyEZ_a!H!~_r+M8Ef4MR1o`(yk z{MGKslhiDQ_VcVe`r)|q*Qj^lKzgZN295_pZ^BR)rY?9F!BijaXC4rP7Wrz_Rc#7k zoX@k*(IHFDbBv9EYdXzt_PGk3{+cK!9-o-EmS@iQ`g}5P&^v9hy2)1~-h7(9O2-&6 zrpmn@{$8|QDbMf^XgkimI>8z>z;TawFdcOa;f;%oS+8E1@@`l2)(=|S@SFlyuKu`P z%ry`Mw!!U?;#cEWH+e79Kq<yZPiD^)Gh5!2LwetoAz2ycpW-dz}Z= zv%d4q)h8decE*pxcfEKq;*`nt+j3a)tsU00o8)UC?$Q+AqW3nR|Ji`EdaQ)?AWnn5 zKPz4WT^H%eB=edN^h`ueMt{l+@A4q;&6PLoqgK9VFQ$Li;a=q}brEAZ9JiLxf(Hhx z_ZjtTuO3&M*9ympY8XM+Qu#OI^R`&Aj#7CeX+BomuJXS$MQzj~NiBvAfuEK~jFly#bD%FI#`*|I?f*YMdj^E0genCsMo>daJ;kbIn<74Le2uNe`)| z_~|rj4DWt8eieV(IBOY<*Xgq`HV(#m@O)8JEkHo32+%i`JYP1E#( zSYzP4ly-mXlRI$9Tw^cBW9#L=dJ_$u+f0+Vk?IP6c)n4lmTmE^VazgkyWdWWrt!J>;~SdxfVI!( zyiv#p^2a(KC+0mL%J;NAgLqZcc!r!8sZF&N{9s(Vxe4-pPOqtSSWlydALwDYYT zUI%cRvDiJz{O9-~TFriV+j`^}MWPL-nh#Hm&)fgE4#P5HV4WaL%75 z_D=f|agvr=8zwl1+u>E#D}H+Czcd|Z9i!<6c_+XaC3lRP^q$N|`lF)M8s#;IXQtsc zQ0@}(UxRzP@mcae0qbBItu-&s_|N3aT%u24JtEIuST^Ezh|fleU!7k4zOv@w)6v|E z=@{wgrC%Gb;{o&j^txHjOX-v?S5+}@b^RQAR)zOmaZcmf9)|Tkubo4SmDX=~j;YU6 z8|^XVUYcRA_#bs}Zo@qO|I|Ly`@B!AWqdYmG!K96ei~{ZM+>j#Kf{;mTbl++^jS)? zgX-Tc&l)M`47i4?AO~~BIxm{c?W!+%J(tG{h;<|;OIh&$KdM1tM|}p7rnkzpYUCz3mogr zX)Z^&Cyjw~><+%8$q&ZOH|HX<>NDm2I`;ZvSy zpx*y`mj-m|YFtZN{84UCbzNApOfgb2bL0;w#)lC zUDM4k^jdGOJu=+?Rgad&e&7iA!nuw(v1{S7;2|78s$4HWQ`glq;mfpc!2KAH)_`NT z7<0tfBL4J0d~bb$zUuU{_)8zD^uuB}Q^Xm}E6G!>v2g7-w>KX&7dMf1UCci=#CLGL zeL)z@Tgzd&8Napa^5bs%L^UZ8>kO|&O;08_N#pC7sgwKBT+y%}q@Em>+Z*$u4W>44WjIdrz(Np+`{YX9jY2$o;vd?18%1~d& z%=^uMj860XEiK)z)ngfSxGTM~|HAi?OX#?61McQUJ*Nh=3;x)KYYHyYoj!-KXVUc3)x*7(XjhMwEr7Y~L^u`}@P zE>9-TKhteSsl9>Ni=2N|j2qOe$1pL}V~aXogGQSy^{1}GvEJNz@TYC0jd|bD^iwq&<$CNw_X`?D(c~unJCCPwy|!1=5*kjx z@qql{xqb>h)x$q^n)9*y zjyaj?kuU#MYI8n~{`-!YbV>M(&hpjCw&sab1j}pBS+92BW6mi#&d_9|c+q8gUc6I3 z=poog(xazytGutp|No`K*ZABP^is?3w;E+GdVSLmC z_bhRis8KmAhsDXEeHZ5rc>g_*?5ABHpSSZ=toU!!YzXW@ulY0@jsMRu70BC(F0;1t zTbPIIsz*Hoz-=v0G{&hBezA^a=GC1DCmxT{_aZ)t6yrQ&9@zpX{3RtkXWUG&`v2@Z zurc929^tr6t{Lhv)tq%7z~H!#Ug6o(WAKhumrn8y!=)x1lQ!Cy(_pddg?y4NX2n-H zy7n+lig4MZev@3!utwCw<1**Ua0`2-u&0WCTt6(Ar4$J0R%)|YED&i;o!<%8654h_orVzv0cY{ONqgZR(D;a>ILlc~=1Iz!{#crNF= zL2`D-BXffq?6uyweg(eayYY57b{2az_foY>#HFY4XBUa-^M(E8phJ$HdET6pYW0VF zt?83Oi+bw(P{5IA?J;k=d3AW}9$E~M^AKH@KCCzHw+`{rMCY2qw0W2H=v{j*p1n`q z{($Y297E}P>=4g9!4P%W8tGd15BcF49y(CjyKU9` zcJX@s;+`PKzj)3yzi2;>I5hso9R3LV$pst^)LF^ZFb3E*Py75OH17GD~V;b;H zy%+ffhvRU(;@m8pFYwy`HN9c}M0u0+P}jLMG_JQep-)$Mzg~_qy2lth9Hzo`v|g-N z@##j7M04K|>sK|uCJQe<==~-SsN>?9e5eK~kMSWK+4I~(a`eztnoZFU`g+aN)(Ki1 z+hQ%F&5!0@yIt?h_RQufn)BJ`^4>?6>2j>2#p!2ZrbUVIC;4i*oDu)!Ew2U6|Eoqh zYFiFhW10`$!GG}V!soLWdEU66<$GV;oqX6%{RY!@dpW*%B^f_o-k~(8zCdhqi|JG! z_ccrGi|?a9{~Y0w(>q;Pn`7SZHLlG2`gAz}!yEeNb2Y3%zveXEx`K~sS8>vM2>WAe ztfll_X3itVbcJ;x-0gq19>DXy7?&KiM!-=UuAMwO65k_5>diY9#;t;>J`9UKwvOn_ z+whO~dDi!?!(2#%9`oo*p9mi9<#yEl%{&-K(_=4fdWtpM=Z@-8mxqdZz68E` z@_tYIJ;$tlyZHj%?eZ1FFzcW><{f~&?tDH_r_Ha+fp0W@htqP#EVbaD*YH1rXH8=s zrd1-WljO?##d-7R?6vQ3eUbRpX>&>qiVlkf`$oa5TJY;Ary17N0Z5TE}?l z&{;fo(O+$H)Z#4Mb>tsT=lw9XrGLD-w%~)IFsw3n=PCO(Ivq2n%-GNePvd@ywy|)% zZcM!|==294IX4Zj32Jqd^XV(aqeI2tYV3Ri{wY$M4Qng4ITzO^YFYk*9uTV$&S9@~ zGhTy?%{DIVA->1$Hn>--caHp{zr&N43+L(;bHg*22Dt7rx1Amy>H0KUhi4TjdHU7y zwLA;?KKf~KX}0dU%I5@a;aaHoS{|`htKVY2IJk=M-=ax2U(WMc%<#OsFnH3V1>cn!%e⁢$0fQ`xWoO<6k0YJzdbF_n%~{EMYL>&$F1Vm=Fj!w%#)%)GT~G7ygacxQd8KSG_=r3{x+I49Apzc^{|o#Xll zJ_>u3Oh?oU>JnK|J~N*V@NSW__Ak~ob9Rb*shH(*WPYv2;&w2m^e?(E#*dy`Ub81u z=kRRk<~+|Trg_e3ooFfV(`q>w&)h6tERYNSVzs_N>>B&jh3*gNmGoJ9k3I+0vz~h7 ztJz{08`1SIUVEC(1?sSXr;G8Zt;YSGtB_};u~EGAn^>Pazs$IgKg1K}+yA7A_z%O^ z*tMR2=-2Zr%BQO1Vl|lr;{+H_czyX_zM}CQ`SAGAIlk@4bGOYRIE~(o>t#yX?_rg1a+(9$i{yl zeZxIwwa@Eeh;oeM!FG5~kz+4j3)TJHC9vS|3vF)_Z;#h&4|u+B{uwz&%XM?aXK5wYH9q&DPuPbQ!0^IOy>DJ!`G;4lD36!-80@*fxi_4$PRi57=Lqxq;h*i8 zf!F`&_brWg;TwL3x2He^IJNG?@@7h6o}iy z=Vko6=_kE}dwhe6@^4{|f^QdZEtB_rHSg^DS^W3VV-XC8{??B;O*QtocpZ+Ym-DZv z;jhL{J`M|wlGM4O{2w@%2+vaenY@liX}14>^$E`wu!rZb7ysscku?*xqi6Zw`#kmD zg719#7M=R1{4E^9_to~hto`1 zYxDQ5FMQetmeupD&G=Sz)Dr7^vF=ry=Jag`_eNN+$1zjRI&*y|H?A?gnpisy!8Pdr z=UxQMP+n>e;}LOsoNzCt%Wvi)ouQU9%uSGEqXt>L$DQxLqH^DM<|JLk`Ivs)%^faAeQV1Ax}~aV{{{5NWi5Y==GC6YM(^M+@k{k% zPxH=NPsY<{6MZhR#;m}#4-U)gRFpr3YbuOg#jdG_vt54=w|$?%W&UOQXcAsajN44V zMd#=VeB$U5_Oy4a;d;5kZ;}b>I&Y4Bta|h@b`X!`8aK2IcITGq??P*0b6O!Mr8G7)OQtN;^ z%!98#4`q8jO4r?Rj}f;HE=S<}#Zjq&kk^)=lZIKTcVJsVf}ccB&K^VH?|4)-H|&NJ`q zyWYbX!Bb)F{F?T)oXdx`0UX~gF_)ifJHmIInPNtXcQW64z>7Q7Fh#7ouAg#z?pzwJ z{^o-mF^BWQBI6s;Crdp$;q?-2;?-*JUwq3Owbk}rn8NRg`857%8-2F&q_OSzwjoW< zF=sJu(aYV_X*Ka}_YUU<(&b-%TEj0zzv~+sd}i(sIPLw@o|G2hnOpN*_g>>3EYr&& zKW+c!tt9i-8?yn17rejxIIKJ#_Mo-ZsR!MLiu1sB-&JY8)wytQK4R=*al<+r_E-(^ zjQUV7=-cYJUGCh|^!f{?E--$fwiPh_3wOF4V|@OXZ<3tr$@5?T&w9;wdE#AyLnE&_ z_-+aP18)vpCfQ#t`iFmfE_8h@oldH06?)%%0pI#Od=tI(aW%ErNvAPtbCl0A%)L(B zX+!Y5-;L{A@6)8r{hJp$<8T(A-{TWS-9B zp>O}AkKZv5-n(j5ly}2-rkGRAT_|P`q(`9QwV9;~cuTfWJQvKKO@q#rrkXzrn01Pc^6TBlrGajCZ7&KVJTi>G}eWb8xGoPtP^C3U8+H=|}4D z;9s6g@YE6OL0H39$T<>*S#X_HpAOD7H0Go_rN~{(ZyV&RYfh-uNOdnTK1Z$$vGf17 z_R(^fp6g@$Z08oxWVbkNX^|k#n2RgQ7gnt(-%Go)udD^)JP7agYBbW=I_AY0JM&84 z^Tb`PuCwJ$#(z9t?-!#3{nnW~(fRKBXpMPGBJ_*%A1{O(*RX$YFIEOG{O0ojIKSUa zU++h&(R}=OZuH&8`9Jx4pRwWj&3yPf(I-5I2)+9`{f3zrIH%F44?ViT(ek^>b-oy` zX>uGs3!|9rV4uZnu{52opK7Vczm9k~qv`W7texmlRbMRNo8ayG;^xa&dpqx$*M@E@ z`61{x9H+3C>7tK&(ms>7j+wX9^*Pq{6KWiKZJjl>%-j@u1%HG!q$yqvH2kc zW8ZPa{KmOFrT4$wjK!I&-;Eare6A4&K#K1>9F<+ z-oUFLKHKQ=3(Z>a*=5E)Z-4NlaeMgXNqNG(a$Df1_NC_DVf;@GE6N+f81@Wha4hRs z;lII%n;2nFHpjUR;&(EB&{x(`F>d9_2%g;N{9Af8aLA{@cV5pL*G0^lm+4p9$I#pF`>HPkGtON3Qy4pEBZ*^@bj(y;mV-NDMIp4bWwm6T=b-!9{#rq6S z3*=d^XRF9rm)B!_&f}E?*!LQL0-xr5@|5~Vo~9pd(u`lLhZ=};8_vtr_)q!wsKp?B z=g_MbOc8o$Gt4*R+Kl&B%6F_4Z;7);p733+0lhoInC#lsYPtokcHh#_{Lm9kU>FPg zK$=}hi?FAyFs3Q({+2J*v0tBL(QiIn3;5(ic{i%t_uJsaWf0CSy&tXid*KKCTS9m?vfJ2txHfQa&oDk{ zu?vPIW3R;}Pd&%uw_E*Rudg<89aFm%*1SdbE-QItqTb8a2Vs9S8HQzQnuX(JI%iu4 ze#O7qrM&FgSMuJD!&DeHI^PhUa=b5~T@7(!)aeS^Md^clW0So<3C|$&SL&Iaa*mYe zJ9~_y@b<(%JO|ziR}LQQyk5so;W=jYFRbspw9A}EaJHe}B3fKXw|PDfqtP$)sZiIg ze7%SU+h7a#jcni9Gw6P8Q~AU>AjjJ0XbJ)9Tg z+gyE<=yjKI1yOux?b&GjSvC0;)`rH7!QnQa>sh}Wt8cfk7G6_Pej1+O&)I6dRg7?d zNyPDT_5E3G7Z}$Xo{f6uD>eI*?`s&F181S!lUW|T4 zRtfk1ow$p=nZ|WpPp54*O|$6tm9hQ2pH=2Q!ZYD{LG*vD&GJO(<;5HPz9ILfb-vH3 zV>fkZkAE>tS@i8ds}s@gh4ic|&k6ji;#n20Zq5(lw^wNPkK++~X7I_zE!Gn`6Jcql zS7PBfSg03`-{pF1N4gy2==n7*CegmN9t__%j#_({#=)bWnda|@@hra_)AK2?HB^sF zXtT=aN&0L`OPa=5m&N)E?^GJBH?Mo>Up1>G_bwW*7o!1wkp=c{v^Z)0Kzh`9&pJ%ka)412XsbQvbrNHx3^ zmu39*x%_E#p5Q(cOOIpn)yI95+@WqWTKFD_-+0*Cs9%Bc%juF^te4mM+Ya^K<=Q0p zWBDb`wJx}g((iZah4a*5G#|t`7Vu%Y97Qnpa=sDI9O&%+#)D_|<$2=&*1`9?@97Fd z3+E@O*;(t@BJ($^?>~4hc09>5vz?zP$Afy}S^55@^;_oj+M_4*(^xpN%!!9@UbBkw z!fql@ye&?Z@Aq^zuodIHzyjV#xP#$dUZPeuD)OL!+z`K8}C%E)1|b# z*zpK`BFg#OyyM2#;J@Z#PN#hl&P(v$DaI+78sYNISCxCnTsU{*^NtuBVQjbCI*ro= zIW`*GojzyaDilAJf3o0N%a6On>Z`xjHu6@-bs6q!Xt+bXa`o{a)h$2OSbfa< z&b)N%MA-AxSA+U69dxeMM)>${`8Ab$rZ)6mW?dX6Zz~?j#V1CrDE_Po;~bt$cKr`p zR^az9f2v|x{`EQ-C z1M4`LGI?hX4~)U>wA@wIWhI@4!krA zcH*x!)_^%b_`c)bvXy6B>aVR~JzPRldB^j_JFa)*_cZ*%dbLEX&DNvO#M|&S?>RSG z4>sa~`qr>_lxRU(X~EZUZhFbe@D^30G?N1 zjuG=II2wra=XUF@T3!kBe?!0VW*%K$hW8o180vKcP0H~*=rzBi?+LWMSgx1U=ztoH zf}tmkT8JNNmH=c&Yu-5bt3&3s?`jW$fAG&3 z+T2B>{VlA6=I-(SU@PB+dEjHO*TGU7x3KPBM8jp`zJ=Q)xufwOB3_M_`oo$$kFKxc zUsY|6(Pzx9m22yN_~S|58$i489Br5RajtEYE9~h9;s z8-5*a{m+H*sCrkYK^2&K>GLA}dRE?x9cSPlev>-u&o_89?0Y^mH$3A$z1cjx9;88R z@DZ(V$EOV+o|Nl1$9Q^gQO}+{@*90Wf$f+%|G4K5f;H^1deEmcj^UX^8V#!OP9Ds^ z%D<5YvHBzlw<*@`Wpo+sXlr~A+`@N*7&@fzQ!-xVyq(EIRn)94T+4aj2%qfblL_L5 zzensq%ZJrJolg>QzDWK~Tj(g~8FA-WGi%ay4Q-}>qJR0nru;ePY+Q^?vgGhUZjdVI4@|%0FoK;|m6f*_SwKOPj{Q-0G_0d`D<%z0#-rUhY zc-F#i^~GH&M+bcpzC)ge_o6lxkvbKG}V`5;eH9%g?Ka>Xm2Fna(MQcQ(N5d zow&8}F>3b%&Sl;&Fs2PIxwML;RlK-^jGy^E4R*opdVl^Ir{)*HT876MKE27YNzN6# zTU{Sdkh6Bs0mhB;bl_265X<+g*-9Mtxwr3!ZK*gLdGAM_D5S%97*gmMCGG-sjCXAh z?OutqjyRVkXDjogc=I2SNtXI)g`QJ{jRsy zcI-RtTwk`K~( zcPS2k>x~%RT!!BU^_t;*3)sWn{}>%t(>DB0RZE>~z;vEC*V40z_kYSi9QO@!Z^0#A z4cpV|3H6Mn^(1@;nqk->%lN{FEy@> zb*qVM=iNqY+I)vo_}i8vFl<-zZnwM77;{R#1mp9}JwT&~4s_NtNBMNETG!!~vAlAX z&tI$4QZ?wM*Qe9ud~+`3lki<{v|J6Pp?bmALUxuOC6wdir(3vHo^B>;hxHKJIvoLUra(}{gaaH)8&2-&)qQ2 zjJ1EGZP>>R=3TjE-r1P~iGJJeR8J z9<~2njO(tpe(}#^9n})92gTbYcN(vs#BCLh>#RGYa0&f7QLM4*)Q*t>D+@LspDt0kkC1Sh^*M(c%GsIuWhlAVtp0LAnE`3$c5e3^?@s7yTLA`qO zUM=&g(DQaRDyQjmbqf2WUE&^Uj{`ktSX=WzOj?*{vLqq&-gee+;>t2(YNmp6ProN4ZBYEw%e z-Q@gMJr>s1!+P&bH@#~9X4i`xC)MkPzzgmqT!xtweh*vceO9^esW{$>OLsk%MZZ~e zyT`TgTTjk4@QSgM|32X9#$x5rI|8@5^7f{ASm*ok+~+*7p8w|2VrOsbOB44HIe)pa zqWl}&?&p^S#!rItH@*zdFPErm67P+n(W5Zj%J09MbD2Dcaoh#Vbb4)-zoBadaxQ3Y zy@2T=UU^5Z5`C8LeH)w;#7?K@W}1Di565=2$MQKDw{TzD;ka7eC#z?Lwdt(-Y!g3& z=A&VIT;92GR-<3MUY}K0hn0BT0cR49(Y-v6phqO#!*{e%wfTpx54$#5Ef>MH zS)LsII@GwK;;*{N{T$ANa)!V6s4v&idvK<4Lpj3t+u88%>%lL^{7ak5VVc3eCt$6P zLm#=`>k1z%y|3p9{ng#^x^;PxT#fLZ+KS(CkGf86VAvS65&s{0_Aq~t+75tqBg|QP zx&dz#>4ONp7Rz(JX`I0y2WZuj78hKA=XZM8`)D}|;25r#Cc58mQ;Sr+m55)dygg{y z1mDj1cQUq6u3qBqb|2ZL&Yk3&BJWtoZgEm^D-ypd&Jnj*hj5CdLo4TRk#7n-={H+b zx>$?cpKCc+s0N2_@Jg!;ochbP8iq97I$1ZvUMuw2AouyLYCpobVftdWd*hRMouKP# zW2=kPt(rZxF(>%pB^<&%e-zzn@LO187pg;Vn*NJN73bUVZ6qGc)U4Q=c#b(EXYLBUVoy8x8LP8U~LYgrz1Agnrni7h~W|!s%)8Qq;DN^GoTJrJq~U zsh|38Roe%8;Yo)hw3-*Ex8bd#p6|)MgYT-Fe|c+K(Ygzc{l!ey`#oX!)w#cY{!8r9 zv9vHRmnSEScLMIg{4^WiY*-%hd7W6R`L+svJKe_;@yVfa8Vv{2=0`gJgZCBAZ>HI~ zJoHgwMfoh4VjL}DifKwe^~p2tJoD<~cFpB_ju+2~q@h}b-w|@;+%8{DejLg_N!GXU z_aJYYA4i8g^{eT6HM)i0e%GmKGq^{}J&

^G9Ff^Ng+jt@T{YUFTGke*y2|JM1BO zGfUjb@<*A|R}FsD3+ebS66bN;FXF*%=J&&G6`it;J;H+r)h;}v{3~9KZm|y2Z#x{B z=Jt2b>Ll-3V;36tAdJmiYluhq8|lF{tbO#$rPW$>*<4L+<&tly7JbY^y=w# zf*Kv;nR(ZH&a>XSt`5y$58nf?Y@)y5c?Y-Vx4TEc5eIWNtYtV%x{T&wyjX+8&!%|= z-#q2>W_9l0-hGJYcIlyS2J#2(Gk7Q#o|fILaau|BjB6LKXYJ;$M-YmI>EAr7E5U!_L@c3kW6@*!m-LdY9~xH_0l|fO6dOvtvAyq z)7)cX$E)l8FrIX;pUZDu`8}KeDvX&8(=vG9_x?q^SK@R`zS?x1j`uJ*7C0XvPIzW8 zh90ZM3v0?59L|c{#Q5NkhwY(rozJJ+-LU7$laF7X@eQo873#l`9|u@>W_zusmunff zgO*j|X(digN12$<^T31F`4jw;P21VdM?}-u*jvR4f6tU_OsaFact;ucjQ9IG=~>#O zx%L#TC+q8C{^-=!eMFqFW~cV#KYn}Te0{(-uhQ=lH3@wcjraNb?TK5}Q7=4&Z}^+s z#<$rwSO*H=EH^eh?_5XwGT(jYpQCnsFh-5XsOcW_52)b>yjvZf2J&x6@tYNoeQ(}1 z){RrCa@|bZR@PLye14OB^o&xAY-9T2Fjvj{%2_;}K1tR9^TK|mEX}%sS5=;gp?fW_ zv(&$|2VKOeucit3{;Q@Xu+=W}8y+4}Y8h(UN{tTG@C=p~XYfsjGyLWhp6k{V>nU}a zRmFNi&pF0_(bZa}Ug5iXcrNjWn!bc<`0m|Ctm9(zH#QIME@JgCCr+J)sY(3-JVp2E zUPscmA&%v6R>QrRzAeT3Of8=?wlQu4#R&JWWN|_drx|m))rpJoGb=%hAF^l7wu^^xy= zeyPrnqpdHs@QHzGnOeVuOO!Fa<;tYX?Xc9O|Gr!3Yu>09Qh>i23q4ho6i=Ay&2YoJ7CrK<$RuM z%vgG!q~km0D~dRNVS@%E=zfIp`2k~QO?JEVR_m< zaEfs~x`QyMs62*`EvC6_5^U%lV@We&%nf6g3G;fr{W!+``xV81LZ4oeG1M| z{PMNBj>BO+u32y&R>SRdUJZAeIlJjHON=|{dye>@iQ5W>rRvfL-|+ipcX)I9R+LXm zkjvP2%&*S_6YjCLh*!bq6ZqgFHLp(pMBKvPW$ovO2{d2nwfi~thM}MF^(jvT}SKaxz-Nc`{3L#e5Uc@D%MQ#Cdpg(!iw@wj46S0g87*+cBA7acq?!| za4lVu%~ALE#&1r-otGY`!`=ABz+47Xb9EeQ?kC11h||aUq2dNl^^|vz`PF$eTD-G0 zjTa~Ems-J@?#R2HuHuI8RRi%F*u^~c-%IO7Gz$1u!V~t>iG2HMFMe^piQGNKT!q)A zYW1!f)xFYK8a~GdU*280A3rEw12NK#n}yF-`n?6mngKNDlZ#=_I**>>Eu&Rk^H!*5 zA6nGI<5Dpr^uQ?Bw;J0+otMZ_0@IoZzU9+M{wY<*8aSWC;XQS4L;HNZKQlgs|Hj}n z+x%B}Y{3omgJF>xJOXQ?u_w$A&%DYmv8L&tLVi9Z&;P6=Bct`1*N@!emWn;HtGV!` z$k!f@2%neoOd+2CS2tSpzKFK?jmAHG?~NRx2IiKF-`0B70ETaRS|2WO|AzS&`uBk4 z42_pK(yWtV@3t+Hc75qXkH^GGg0mW(k}u^MKA3JDd&K9#a?gWf4?UuAe$3qPcL-Bp zc~smDj_x%iT0c;Hfiu?GN$d;i;i6kudz~ zT$-Fc#i*k8*Be)Cez@O1(%*W6Pi^B{;(j7gPtbRz&%5DWC~o+zC+v~K{_1-=mC&V? zTAT_#qv>Sv>cJVlhc~1B&fe}P$!g&G`;JJSz83%XVkg6J2W~shtHiN`KCNJhHE*@^ zEnw~h^D0Jbm+(NY*RU4n!x0PTQ9eyk zyRZ0V0xsR~sG08bdXUrYuD1_l8j^X)3JGF?ABSGJs>cum1Y{mDe+D!Giqhk_} zB+)B-kags09yf2H9F1}6j>pw>IE}+m+HD<0U!P~33x|0n;x?yY>cgJN!d8OUGj*(` z>J#<~UEo>4Thr;C%0Ji9M>Ogp-ej64drj!?eusCs--Yi2>syG=kEe~zfVqgj zXSv=?&8Fg)Cti3~dnU?U=lj*ukMh?v?~HjP=<}P}M~K%h#Fe+39uI5r(AJ&@i+8C! zg>;yCm37W*DGf?5uPFan?BkJo36GQYtp&J6;?tPcIj((z)9>Q0q|b-lcv`#za9m+* zGF}h4-iF`8vyX=GbT#%gJfRlhH`!<5yN?%Y$QgPrJa2uI4s*o6vo?L@imPc|#q-xT za(Nwa2koPIlApqJlzcpTs7?60oJhJhpvz_&oD?e^-)g-o*N{5u8Kqv=!&wjBgH`b7 zt6XF2({%}5Cdv2d17g8g-`qIk`oY?q9xG{jCJ8@!4Wj2g@~!Vvxp$Zc^QOD4>&CY+ zuUQ%lYW^!+XJOi9T`i*LSL%BT=4^h+2|Ckb6&@9iy10eC-WPOThhrw)d)!AaIIGY# zmX>woo{++m;ynj<*cXhXUygP9wtHNIZv#vPsqnkDRvik=3;V1Zm&%W0J`b*u_cB;7 zFn*YvIXvAQ&dxOJ0!yc!c=dHJzumps`M>f10>{TkTU+qDaUegLf2^VVll$B<^OKC5 zZ_eA|r4HcXesrRJ3tA-5ec32`-YaN6$UHIr#Bs4&l)~Q+u1lQ%=|Ntn(`wpe;<$oG z(s6&3rt^p5WM1wNK7uD!zUTS2ll$s&aT?-vY2(WN8ZFOQ^%@A*E;#q`PLUe-ywjS) zFNOH+qEGirt#5dBcO0W_|K9c`G+E4x2k=P1;|+CLC|CN0);c-5!rSUz`v5uKNOj-4 zgudRd@|+nx>Anl8WsJ|O@OgTKIFIUcnrx+ihMY_Bnt|VHT8+D*a^KoS zjs@^t;{2Q&U8}3^VjPm^Re5{i^QF3!;1s;D$Gi+YlFjRl??q~`fQAn`U&JG8U~1OZ z{XlJ7s>6$THPBxj-Nvf*tdl5sH5bV zu4d)(|4*z*<|g~xly)`cikIU-;}+m`_apezHhgCe+8=fPOb_SeT_k3T`E{K?!|N09 zU3Zz@YzmX><>pnWMfeRU?0eZt=q->Ie}VLEG$e<*C}OFrLxL9~<$M?TcRoNr z+Ft?Z%>LHl%jxAc%Ge%vTfh0@Q*-v26Q0#PPT#pcXEdjQYrS!62Wx@n6NAJoa;!4; zC;W0MULy4IWOm9*Vo!wK+cT(FbWGjlugezWTI} zKBm!JTw`$0Hunf$Hl;yFW1q!)gyT*4vuRvFi_DgC;sP!A;`Cq;X_#S{E>^nCa-%{-w zUu|9E)s-2(=i;)4mP3uHNzbk7)kloU^2F+!8FKZ;aq2ad>+wpQE2_iKix=TK0ls`Z zBYY0ea@$?Y2Y7XZsbHx6nVk2CH%*+^bQZ{ z8y}*FIla^-ris2Z?|HZ$lrKu3UaRM-;%t8jg92+TMoII7ZpK3&4voybFxI6rf* z&v4vzh5C%rlX&%Y)Dg2iol8P&x%SC90smv>hiBL?x2KnL5d+*qj0xXi=3U|*=zN*F zeSfVr$GIWt?mK)oj3*Wwe-_Vk^j3yg>v0O}*Jk=QuUC1kN+v(SwFb9Be9u+C*Wo@1 z=VBa-d&7fQiucvpRIcmma0_c$_&xcr;W(N%LyWEytq1Tmn#2S5=t+JFzn_{))~#rbsTdbf4YbC3D%ou|DI`^trmYOvgqq3^}5ON$NW?^d%voS!aU z)uGlnuRp+7m%koTqiPqbi~KXiErlu8wJfpfO;AI%Dst^?8|yv)WzebhAop0l*a=sW zaa*s{SKhZ(x4giKriI2ns}I9(scpimp4m?4<<`>LJY6W)PCA$B*R!;kgx_F3TMcir zv2Ve+o3?YrJIG5%`0EpTwsBR~@#*T( zQ0`i@ah2;nJkr##nz><(xkJwIy`W5tmqz-n1ONZf^E3}d$Qe(Ua8G;@r|@@_rD=R> zY)x9vb1j`$66JZ7#?i1{N7vgOlU)0T_r}odb$R-WnQZ>8#((O1Z=OqfK(EkvIxcsn z@&Rm*JAa&xFF8Kr?X&dnDd$vr9p&F7F`sLuF5~5asj2ZR{cf?zny@eiMmk3HqeEkL zrv1J2`$3#eE#SRY&p8(d>-{b5H{sYn+V~mv#>O0qfETai3;aee-h6zrXxffGP1SSI zeR}0y>#@(Z`5=yeXWZdgBW@)$y3Cm5`|WiaS-aqFX>3J9uVO!qYpfoqjYA{)hyBw( zu(dKi*_aL9ufG${Xnkf(DqUW|A^e@}$BD+_nKFUj#;P^Fb9kb;bBSGe(%duE?8#xM zZ)_yJH_F*#B1~7qAn(k;*(FTkzrrBOT0Rcj&RNwYl7DaJQz#6t#sMT5Bqs^ z+;BeRkrMibXD4stP=_v&S6aKxzw8m~t~nd|G1gJkmB-8*JIxw2k|$lOplSHqjzMsa zkbf(jp|7i`^;)==!#Zh8qBsT==}65}zts_k2@ z&AG`wfu_Ic&zf@nz(0ktG?1sIF~QrT>9o-K3^C@bakjknR4}z`{NYe zxdmtEm*d?V&*y2{p^5vr{Dnb#$8>sx@1=9$zlYDV&3i`O?l&gxUcX<_e>qPaD7fMXW;mf*5AU?NUrKUu;miG%x{U`nMwBIu#ES9Lps0Wbi}nP zVrLGpN9Ut(zn!E`%lV_$ICJ2Sg(2(>`{%g-i9eBk!>_X^xW+t3ZlZmHb8EycGxiN! zs^HXLzB9ZylGmq*U8`B;KJUCH|{|UOU7~@EX34 z#NmEDj|_Fp!|fo9&Be;9p%1R|-uXdloXIz9d1e*ObNlc~dw%qKK^kpb--Y9Lx`*HG zzMIBB4;$lpxHql5+OsC(L#z{zR(}8b9+$shyb7l946>MK`iqkxPJ!pjGg_*NdgtTP zJ;B;&Y(M;p)j6#1V{tkr_Omzh2`-PR!7*_fs&TfuRhz@>=7l}gEZzyv)jEyWi{i|H zWf`pdN70Z5gJ4cJf2-HN=7#%X+GBcJoyu>t_QKLUSzp6A`KRG+La#*U8p^Yp9;a^A=ls&cwJ|h_7IUnAXimHE zw>c}Gus*>Mp7E^-xcMmTyW1M`aU-?FZI-p~nL+SbW5&ec#~bCeIG66f$Q``d3HJN$ zQe!c~-w!X8w|WM>U7xPz$@K58_h+kd=OOlM@-)^r+wq%3>o#(phOdUP^GEV34QAnT z7re{ySju1F_sa+A+#l9P__Q2m-=qh^-<{2Fraz~7h4&vh)5I%rgx_MOJO35Dmx&jT zLjt}tVT^C$T)1w0r-$Ugxm?~AwC_&8ue~qFy$x@M?=2A*d4?OypJK&4=y}C>cyLd8 zN)6~=3y#*bt_4$tdWG*rQ{lPRu}7@!wAnI-pTuY{M<-*B@Yl@CtwZn>=co@28`7!@ zjlOw6J!d&Dc0WhYN3CtNIwJnXbg79;*ms1z<+tL+i%~A#I@c!zjV`9AT=k8qiQ5W# zW%JBrdBdI}tRH8L>vx&^AzUrhc=rg;kKn$qp=VBbcA!~!rgQ~vk2Zy0o%=s&pEyc= z)L^FABM0kUUXJfia~zMsFi5UQTpkLzqj53jJ$Zka&J#CS=f#Q;e_apXN#S@Imps0j zq&7_(@xWM`sZDr>@(>-uGq&)&@8P!ioAZKvG0ru@qXX>oni!`hC+Ki7{p#FfUvBJB zYuIL-Kj*boFpM5&Z+@%Zle0E%|x}KD#7-=(O>SLzu3;RP9x)MHp5BohjCp<^Ne9?PP_2;hW(nWEnYvE(@W2V=bAryKi~Vl=KN3Yxg+Q- z)*-p}PjrvLC*TjyGS>21(!~z74Qu7=H28qlg>pQ4zc|m?^LV{Y+*P>z@sRJU<}9bv zK5O1cy399kv9+L7yj0_6yS^5_G8{I_m0@fKEa`B5F2*8b-gYj0=Z;X9dt33JIwj(> zTCHQ$HKB#|O0KZh?}N3m9$IVu8a~eUdK%u9bn9_QrxJ626P z@gd&l!V#Wv<~r9|ZJ!Y{8m0#PH=Mp_VOnZ#jMrPlojxA7E;w25E*b}iIal%WZg{_3 zV*jKLJK@XX$@*jHA?G5T!r#d(g(sz@eF^`4_=sMCxvp4Ux>*ZgxX){Z`X6>a0_K@w zr1RnoF*?(K{RHbbY|G&}Li^b`bWr;SwAf9v`Y`TM&x`3DJat?@ErsXIRQnAvcEVp^ zPUw}}@jik78OQr#7T3|wY7>uFd3!N=bps9e;J2%nKFz4SKZNINb;ZveZVkG_{sfn~ z6ZL@i7mc=7I>NJ=lWJe+Ts9r6>z7oq7q+Ga-gR=!gC%fT$tO1&n}hEGTxY@-o^M1a z(s-B})9!@p*Lhuu(|w^%X=(s>AGJ)p!n03*v+y*Gqt!oB{eDu5{_U&*H}keR(ej7y zFkwGY8?QOWUE_0DFM@+9o;9)3IFD3WvqQM z?Hl6TUA61j^*LM_H0XI1EPPag z*Lm=!nA@9q?*AqT8w$>G%{5kV7Ozt`|U&K!QNY)_V7{op5GmguEriSE?>R} z#LW?_4_s}{uP1)7*RZd@aH^W&coXiud&q(3p=`MIRM_*?9;H9ju#+*5)9M4fCacp> zc_)h#zGsHNkBWygTl|6aEx~CDOwUY_SKM&l+B?>B;koujc;6#dF}=cmsx)ZY-m`~c zd~prUVI5G{dTGufoc7^9L(By<3wz+!UEC{-$(m`ObftTY&ppL1rSqtC`xIIaY>QK* z`!%dFYCelDhjAFjH({?@%ek&ebX2STbm~Fdyj%R;2fU;C=N;PahHIa?{5;9JK*M8j zU-km7^vJ^fj66Hcf6urQxT-%OCY-(HxTBw5G530T%4mB3GkW_fel+eHN6Aq42-l;< ztYcoNL#cRs6#2x8LXZ5%}XA zenV;L+AP`>H>MG7M)cwXaaz-=mh+7|;T=sAT1^)7M*1AUD}sjCUTp6`<6`|b)7*27 z{{hYlIu^h&<|){{UnozseBt+t=6D^6lV9Cus%6DIdvBkQ(&DX~#1r?J@lp3%qldZ| z;hAS%tnt&}E}O3ZVVFXb4LlRYOSNGwG5$L~IC`(OZZe%|Trk8s!JiknekrXY`F%zn z{pCw}Ud>^--SutHs*~~4`naYS8u07AbP0RK!K3u9*Lkz_2n=7t^g0dS;DPXaK@9!N zp0H2wxl0UQH2x0PK{vSH-AEgHo@-t8*uxaiC||yC0D^{Ov?P zSZ?F3&5rQ5B%ARca;+Z5r{R)?JE?mh6L^5$@#mrkg>$E3jU1a8~JOOQY8g_fzoYJUq^3!epQ zxlq1WCfjFSXPvy(cQSLzo$K1!Gff&dls}tRHQ){l?eJRYN?Y#?c{> zujrTNTp2#8<}Rg6_`9W4*Te5SCG?9PDr>IJX|8{beC&ZJBONt??9>e zJo1G3kJ&5GDtr&Vv6YzOUn%Z38Z}nW@HaE>^U)5q3NhZ`$pbH`rSbQ|5T4_NXKQb( zOVei7OV?+aKML;l{IMUdJeLb zuX_9LXv`Jj#;J37u97>;9s##-pPwqnCo_56oCtNe8J1-?z`>(y(%n~K>g#ouoW+^$ z$24f%0vGc;;P?0A#=tljmlL<~iSy+=^pyM=qtr^=44$a2hKcYLh?9=XPn&Nsv)DF;%bUw@q4Vy;yF3@_DJ;}?S+-DJ zVWG=GPcP4%2OJK1I`96!b(5X@4)5lyA9mg8v77T=MOS;dj=HM4!ZC&a?@KUhjksCa z)9GfGO>&HV6J_h~4YJF7tvY-36@ZZhMrMJ)gFG}d*hlNDU=Wl|qg8SmH6 zLKgOo}lDVpo%Y(a!RER{Qxh+qP4cS?|hWwXZ5z{WT}{OIVa0Hk4<4Tbo$; zAp^EPWD1jf8O+KT{vx%NwaorUJqswXXPKk>nfS7GEc$yc8<-iv?nNJ9PaZX~`1VyS z_GKzlzO|is-%@0yxQDsFf56(~4>BgM#bRu@%mm&%V?JAi&77R=m~QfR7H>Dxtc{2r z9@);&Rf(lM?qF_>YuWF$p-k7|7HNfAG1ZAls-IQKjC+EaNp%u)SbdnO9AC@c$^;7+>fRG1G<6}1(w)y% zT_0zqa$}@Y;KR|;!eWgbSk=@BHao(Ib@J_J)kFK(#Mug#zEOcWEPG1FY(A1d z&SUjFoy=y(Qg&YKC^Pxe!dAa&V@;;xv`z9I+1(X0Gx0QM<(sdvHUIsi1v~}JF(RLB zZS-bUQ3=d7!kxjk9A+SC!_u$2Gd<51a*&zEUfJznGQCo4P<{^EtoN8|etl-=PHVEs zopJ2K#2n`T<23tZsLYmB=duXx2jti})ofY3BulQ7V0^JQOv*EheNtS^91EAQXph}& zL~k3*8hcMhAIh2ewqxw3+F};hpu(w%K1;;qW;R}5*?{acGug+=?7OZc!#hja0gz-H zx2|G~i}y3Z>X($;zk+$pInF+niLz0FOROx(jk)D)WP<{GSdd^aOHAu!Sr?zs@ zTFa`;h1rIUD(r>%YeIJkHvXZQ^*J11cJEzTxk@%0*0W**4>H-rLUGo9u#K|j$g-s2 zm8{+_o;~$RV`fd)nP$^HS|u#SLYFUO8O`NPYQm9~yr0V6%gkq**GA~{-+IzX5@Oi2 zh`pX7!(1HG*}IKO?9(Darnk0%{FTF5DED2`l+I#5Tf&%5xC=8sqr`#?SFl5=LTrV& zJk!(M!VIF6S;V|WY?nYf)0xsuwGn@4B>yw{S4c78iNmZ;=OTM8EX0fP1%rrEQ{ZInmIK5BAyBZ zw!PMhN!W3*&wL+fIc#C6+8n)Z4Q2}J?`VnH4A$s>m!>#|F;|UD7PNOhQ!C+R9kZU( z;a!CklK7Kqs^yr>_DFW~*(!E6BaNk$E?{OQr^s0LG==(pq9Z1jOzrd%R?_{RCdVV# zZ|+)3ZQaG{%gvZn(Nd0n>}7d67VHGtv!SeRx(3fltKmB(bl#==hqkcdV+Wbe?r)S+ z5XhAC9hr99BKC8hG`nsn#Poc(vXstml$ADxH5u+=fqc!R{p>yGyhE8q)+yR^%9yGA zjba=6YUyg9EK8`{!K4PBlLAjLW0RUJk7phG%&o)f>`j@|^;**15znTKx6mZcW}>P) zSX!zyd#0kro;-5h zQ!Ue2@DX7)zB7;wgqPDXIUcqd?~_lxFtZgmW#&taS=?oArX9I~bwnRw%5xf6(>5ih zcytqsU;Thyk8Nh-&cI@KsWA6XvP@^&4)%ET2HB@du@8s&SyrzutBya-dNUI_o;6OH zpF2oSbuH^Wxr}wCtz~O}2(pxXRd&;WG2?~KOmFoS5r{RVSy4{e-dUP+c`vz_#HPl5@c-JsTj}f{OW5Cw1i*!JH6*J~DW1IiD zu$zKo^d$2v%W5)Ur#{EA=K)EytYsY=nk~aNuSjA?hWQv)E@7uV6&bhjed6P?oeW57ou3A)>BGe{fQ2gUu3=o2bkPn z0rrz7Y0csPDCWLA+aS4vc`8-2&_h-9ytS9kt`lY7LsQuiwK=SR4<9?cc@|q!w3X@I za;NrabLR5jV&>_u!e*_K87mGdbfqm>REcuv2Q7P8QwJX*|MOtC># zG&%DLSypt?<0ty;lHF@cjJQaW(#>?O+MO(P9unV|Wi0pA0Ch!xWyWikv6$ocsgnN{d3^aqODprK zV4gQcz-JQL*G+@E%bD<9VP>fy&E{PdVr5|$sa{K$)z{8vj;(*F=)+~&TYHs^_47$_ z(*)tZJbL!yID5$xL0ku4lYiT7a*VJgui8m+d$@{~9^ql?+QU?EwwneV{Mo-dU1THm zf#z}c-Q>TKCG6VFrt-y8_Ca@=eVH-dO_Hp~_CIR*l}SclIw;Yihcd@kuy1bjn1K6P z@@a{nWsmCVz)%5wDEUK{HLm1+Rh%8$KaJg8Jd4fc@H$}YRF>4|&))u!Wdr@yq}8Ip z+K;}WK*QVASbCW5n?+N|-?MbRE1z6!OxT%Ff0DglLjCcoEOuoZ<@Veq*GG;d5%h{A z_%ldV_%&_0HJ@!=AkG|qq|=l);iMF*!Ay1~&`FC5ql#ZBX(3<`rI=WqxV;9$mTWK8=UU{CPX0?-Mz&NoV4=H8C z4a$jer?>S}+4AFun404(rsKVedg{-R@&%5zIT|9j_aEOknyRu{>cS_mhNv$RCNu(r%2B!Tb4cll+8sq3u%Q@;| zHe@YdM4|m0yi^^fiKb1|s;tDc0xyzvR~_A+6G%p5C+USvH+`2`!F0C;l9^N`#bgK4 z8`eb0g=$P6`$@3Gme#iIq+MUDC^^4{($6&0`|mHvXkt6{&CsTK|9DxsjvbTdV3p^5 zF-dN$A-O9_RQmQBrP<1|INP%npL~O+rFW5&h!Z*ga-hKO2C7|hfl?pZ(D1Zy`l%mF zujlO`wR5-VYmE&Zye`M~pY@|2%?a zwY!y=39mkT79B_Lj#pFbWl`pSB8_(ZLS}p-nk*$NC|~jc{l1e$o_7RU*XxxmEk2B- zbGK42pC6?S4^!Qa`y_Yi2r1bVk+)I-)vIo!e{mfCdaq@!x20Lg&V|get(jJA(qXR4 z!^qin7d7~Kl1Ug+v8D;zP{YFn9gcD|EQJhCEoVzN1W_O-zuZuINJ(0DJ_!_Dvy$A5mXNLiqs*B^t&fsP_pc|p zOy<*Xo+4T$Q%)VX9+48?4!W{)8THo~km36vDn2K|xWC+^ymf&j^H+%ZBs`>+>pj%k ztwZJIJLyi!Yihb4PC6B#Wa5@Z!6qfNY)Kv&#fw?h&CVja=MhHHb5^q{yvcM^Hk96}$}yph*(Cm5h_Lx1W%4P|!o9s@_dX0VBq3boCG;#bq+3z|?hU!-+A}En^`go|p;1sR$+Ci>IK9H#53z9ezN>9(1kihiS zq?#(h(rkJu)>)fGyCf;`hcGixm`e}U61)@lIvQ4ln84l-;ziZXGoR=u&RRK91Kr5f1iH z)W%#|aZa4>oI694U+YNsxB#7u;AWxL|Iyk}1^OTyNlyeVsO|I>(%S!oe9rEnV|UL` zL+&B6%h*phhH9vP^a73l5ul+~B`W!wN85R&$o(okZnsk zsq>#DF6Ku@Ib~#->Pr<0XGz~DiDn$upoCs^lDmJ2Oj3_fV&i(s8j@!_pDd#4$Pns4 zQ;Ll`K+khcNZQqe9`+rgc^ylr)c+zGPRLQ*Y)d+8o=4Ub`zSC)nLK}ql9GWoS-fW? z^NowN-J@x|Ig^TeOi8S484XWaOK%$NX+Ux%mH5ig&ALPiRSc(l8!nSdV;Lnr$RM?- zXC##pO>TD*$mNqYIepwuN*)WSAl!o-2W6;VCp1NM8($p3ENpycG`J5iWL^Gtlk9gRp)gQ5T zdOoc^97SFNU$J(>AjN+AfjpNlk;lU@s#fx&l))wB|DBt>(>c0-Ta^Nq{zZG<7Gi(h z>HMav6e@Rs0$qiOi;s_Vl=aD#e>G|8{zs+`)x_(unJkJ%ahYov$*Y=Eh3gE8soj|DZDd#X z8~OLYB)N7Yx@Vz9X5a7A+Ry2fSrJcjOXkqL>qn^5X(QRhG@;{G0ruhZOuCd^N}lT- zs902pmR^%2{>TL+B*IN8-Lf>1CdJXgOyV&Tq5DFb#Mk=)TZi?@K5GGOlUPjto-*|5 zKLuKxB1G!7V&oFHkYc5$k)4esjmEDh*}qfiV5bHd-kV8Jm?rf!y~YATUK;o{kAlAh zk)>}8g)Z*J3(J<0VG9qPdn!)3ZsBC)@EYy@EF?=Cbvkb(MwM>9^k$Z|U>LO6-rCNezlX!Ow5vp}yyMZ=@TWdi?2&{s30q zUP{5UH&JraBeJC;HM?~BNfqvIE!s?*%R zYv{N&A1&-F#*h=c>Br;qly`bNHO&ww(`k2c#5R^hXHH_*)_o-S`ZrcA^`O~V2gq^e z8WN6Kz?sYY&}gO+^_*Bu7Jk!cL4gowPMAf$Kc6H18^*Rz0VJ~dId(0PqV(uq?D}d) z+&s#(u9};idgUqWsxO5nET^onX%s%2kNV!8CYyba@vij;biHUt?OJ1aZR0m|I`tOU zU6i6BNmrUN&P@WhR#9(N3T`VBqhK0DQ=2I?x>}y96gWP1Lylw~Ev5%L&FC32hV`S9 zm>6kI8JRVdTE$NteqyBmx`@oTFQAT!HoQNvoaR6KhyDHODALo0A{Y8m`htYOOe(_qW;z=D6;)Aavu^RbKebgboLIqFt~tR4|d|08X5X=P=Pwt{3*e) z7@I#_!l;#VD8Qx}6)u#K=^=5N?=_Elg`{b`vWfbFYEW>@f|8T<>5+ITo;-C6)xD*t zx5b!B9OS9<;TBSfYQ}O&B(odcl(^v~E=_2|%JiAk9`Oo~?q5d>HzQqmJAzJae6(iY zK63MzPBUDpF;+p2oPM<9JuO>$V;e)}o)0kZmKfc*^&8tCj-u1jwX}asn)XUeBkeye z$n`XyrY$Q&k-MVwZSO1++4&iViiy0qwFxt{s3F{dOy(=n&l)}|xWA0d1=UDv-!Ggw zRESB3Bx$2j99{cSj$(peFy`+JY7D!Hf&sTtM{@*a^Ekb}IG?UKHluY}E-D`ViAso*C6RjcV%AsQux=}kW``V2&16y#f zK_T4>{EN7B3w4_pVT6$&rL4S$MW==^U%v%)if&>`)-Sx5!cU)$w4vl!A;tyHA+2H= za_zW>ihdtZ@4+n`@{C2H+{@ToQGwrsn$TKFhuqG`po*Fy75(AVW>XCw&Kt$Nub1#b zRuo#keTm)=5>O?%8uu?s#AT9K&>Aao=hacH%_&6nPYY=5=MaV@JVo*Q0obyu3!OIU zkn8s;bgzFNHCC1&*R^S63ymnA_Zf8-t5QzfAm+Wefhp4)aoFT59&H#wcD)MqY;rNt zIS?)622uY+ChDEPhaOYf5%iy9>d^*VHgX%A4z{7s;3M2OzYIMU^D*ndL;PYYPxA9# z;jW%K+}_xLLpl$!^xHeMz4ZhiHdUit>kXXsupIMhim^`qFag9uz7Pf_B}g? zueEBip=AjzJ>7yrKF#>zTQd6aE}(VC6-m*k5RE?$;o!eP+-_Bb&(~c+l>&2Gxl)?` zyLA)0CJS+~T^ZUP%tMnK(U{`TOUh2e*lfzd$;lW@dn!*0dd}kNQx#}@*LcXCBxPm_fg?hWuNlB6ly^GLR zX*;P8q@j+t4q4xRhnv-t(N^dT>II+1rm;6TJT(`!t>icv`3X)p{DTcAo3P&GF51?7 z#HRv1_;~&e99>a`kJtP{-Q*Tr-p@lxG5NSaKMI3`y0Ad!J^qU7K+TmE*l$pbKEe0# z>LWpNJ|s-_H(XFztQ>nBx#;vn5|)pr;v9k5l*8&#rT8u0(T>O3+u68mJRAAG#iGi> z6L>&65iY-LgLpKxXu|PNW2hY-hqZz{9IXh$7jliLpX`n+cBNs##2}`h zF2URUkI`*fDc%$8K>mt-xMlDXZv2^sTFeE5H7;V;w+OTl?Zd&`By>Kw3;S};py=8v z%!oUUW@i;it@9M-%sh*FU4dACe*mBC{(>&E{PFLvcswl`g#6|)n9Q>q2Q1#=+u%_w zj+{cTHH;}~K|GG1^uTXHClROCVEK_Kv~CT>w|QKY!g~={@7srlc@7vb_atuQ)I`dQ zkLIowBe{2(X!qg-_Dp|@B2I@0^EH422Onzk3)rS*fr-m&WOyx>a1~0 z9`nG;3MCp7T!jhti^-XP3-$&TVCi}z4DXM`@3tqf(BL+^tW_G>(M%lZ3x0Z#eJyOIFpKo-0@h4H4a9fz$6a8+TW#N)Ac-zej1Dp z&qHx`Ob{LjcE-sm$$0N=GKQ`y$B79c%Dccvo95g?rSkpge#ix5ZG7=^PyovG9mQBD z54^A-6)k#vG4#?dRJrMcg46Hg_xupF{2YjfOd|1{?|Gat5QL73&e#cr8uQkn)0G`4 zdMyI)^+#hs{yt3Pw#K7hf-v*tZH$_88~wKBV1)W9+>^fx@A1XrV}T7=B4LFSk}q%! zqj8x)8T#fO$NHnO==#+cm5$dTU-ntNQ+N!!RRw7%D*|Pg2H}qnPce_D2rW0|qwn** z_(=XF#z$_$BcJ}mPIAGRR}DCPEd*KfO&qu%i5~ldIa%2rrSAA)d*xQlv)X}L`*va} z-!(ktv5Y$*jL|^I5BK^fq3k&){JAy+@L`e~l%2{jo!dDM!#h z<_Km?xlj)=r#sn~gm$|3epxl~{c(9y@zCp>mTedi5os zORqhOf7yn4KBnj*nui6x>rq-W9&IPg(evtftV}|IPa|DM%vT;Jr71hiZ>6B*#xG1!GbW6KSr1I$ z=-||XV0@5cj>jx4k?R{FKWssJ>qTgnv-fGn7v&YLsCy;_ccy$ z^*12@CUfL3-+{7~n^7Uu1DE<7#(ryEG#oa?S3(vjv_=!v!d46S{NB`1tf^MyAaUKN85F9Ptl_(Jr{FhWxYGZb%Ffvx`vFzTQIGCLWpUbqZN zZwH>W-Hp=P?kF|W4BMXqdNd(6Ki-FVm-b-nw0O)4I)Z1T!Z1}a1QY#MqQJo@ym@Cg zKK;4^dyPHt_Kwq7?-v_(Gdd8p#5 zgk2RG*gB;Xzj+?#WaS`~PS}bWp7Gd!CIP+bOt7|k0rr1fgg$(_7*yARzkh5)D-Szd zRi}mLUK~blk^N|#w*?)PR$}lgC;ZJk&|=#{Tq>@NDYNDA@~PQ4w1k_+Y<01IoHI+5 zXyfxNWvsrak4H1j(EivKyf;4-n+AN*acB)TJz0y`orEcx>R8>o2CGj*qSGD?Y<-o7 zuf1ntanCeL|4k^Gu>*g9jX|Sl`!QU04;n>V;+&Dq_~YYIyqo5U=ft<8+yXVmd{hcM%91tuh1S1_G#kW`y!aCm4kKu2QjM4 z08{gi;E5D_+_FvbHx<`o zfTT9Qx>=5)XB05a#2Hsu$fM#GE9PZ*<81#v^3 zD_#n8K=*Hom=$V_*S~9_Vxkf55M74pf`XV7v<7R!8LG({;fLMRaqOQPCe*IL@ETDx znzI^hR5s(cuw@xiYvmLWAe!&s^d~7GC4!dHuS~!|GE=T#^fGDP7$a#(PFId;}9#vENi)Qb1Q1O9uEUpo}HSx>_u zRXNliUy9Awxv_s#1A7wYq570nX!eR>JBRb(9n&yTdMR#m5JTnFhNzmm0v{}$fPfCd z!wPcf<31m4p6$Ui$_wx}|8(r_9|Ol^H#9$}j|Z#PpjxpR=7v~de(M1&&RmOHzTMFF zOc_x|v32!S$&cZVXtBqjJ;mbD1uh<;tO6 zBPUg<{D6nkWzfuFDz4TO$LyYQs63;J+>9{Mb}e?^QO22%G_f%YQTFmUG{&_<5uX_H zCTin&&3a^a&2go%1U3bTW0!#s9@mvX+xq4B>#qQomkHnz8DW%KB7p}MuSfslH7J98 z_*mHjr<|XL;;E82#Hrzh?(Mkskp>1C%|P4i7x3G07P4{^96S0KJ`Mi@_I@W;oL`30 z7iVGGLm5;}?8L_b>e!s#0fYPtaHY%`{I-)ub6Iih-Ykl*`RAa~?RSu~fPozFQct zWoV#Ilq4ScQH*wPc3_9jLX52ELH|RGv8ag$*{6Td_*@nf%BP`m*%maDoP~C>uc6zC zAMZV!hoM_vfZgKhC@i`b*EezYf9MMgjs1pKRuZUhFNW3Mmtf!tLDYOa0^9HNqU^`F zP@!@ZO|rW{p>Q_x?)(F}*X7XV`fq4`p^oZ)yy(dD6arPI;nf9m@dD?eyQ&ZT=)GDA ztHOEE+Gid*De$3S4mY~oU6Cm6jn6$iC^@z@0}bkTFbJyUs6WaVPqCbR|n z{!M`KLseAM7sVsOAK+*kKboFch*N)#LPg~y*k^O$)8DJG|92I9`aK;#xP1eW*yr$J zKOY9#HlojnGD^>v!DU=u!D!_-SaMhvXU!b~5s4vKJ!=M52JvIcA!Srt!Gptv98=z` zgYHWv0iQmDi6D8rzCs>v`tagw_nDY0D~;Zb-yx^+J*aVV${TK83=El$U)R3|C?12Y zf4ER__BwoFH3o$wgdR3ckY?wLVZ8h}B}5VJcZj3UwCOmyXd{Z2eE}P>n=s+6j}_N@ zVe_S#xS?zoE;qUds(wQ-_H8~IT%Lz5DMpxkp&3TJ1u;Na6SZ`TK~D4)yx4pPqJ+e- z%SsDJzx08u?k9LS`V_R|S7NBm9F%{b3$|v%V0`ltY#o09>-DE#uth&qdVT`%=!5*7 zqo6GN3JQ*QK%+D-3cec$^WaLT68i<4QY+!1#eKN5!~oU9Ucm$}H=3T*!C=RE_)SY5 z?WQTBWBXqay2FPOsxKhxu{6eRd<^obJg6kCh!YYM@GAck1pjP;@E8GX6P8BLybcJ> z;KJ_aKTy5t8T2ohjfoLc@b?r6ta!zT!~C-`<>q6Ewcy5x*aE0qy#PD+PRFxKQ!qSa z4e|-qgNOYf1XhZpSAQFJ(Mp%!37wTv0{-189Ex00V{{P!s$ExI`yG zzpN8%Vn$)c8*WS$yAJ8!C!nkC2juVwqu!Zz@W0N3x$)ZAr*#90o<9X$(_wJ7ErhH? zLRih=X5KDo%x#^EIkj~#e6;}jt7JGi;W`Mm^nvrTXApkvDLAkG1Ybsqz-E;ah8A&i zuBpwy_T*A%3Y&p4ot$%-Q4b4F_Cx;78t}w^u+{nrPXBd6d7m6^H2(|dZoGgyOSy5x z{1*)UR>$=NW8mvI1H%rB;1|DVpb-*=H$>DiH(d-r3i9LZk?*j_xgIWGzXuybAH(n5 z=_v4R7zUepu;RgIIHWcLeRt)t%#aU-7YJg>vRdGE_s2@7ZphWU0b9GJ@SgE~P`2hA zBe)(UHw{9E%M4uHSPKE%Q*gDmD(7B{01p5D3F`MBfY_-yc=Y8g96I?5JlFk!q$Ag0 z?(>^qa=r^Ng;Qh4aVWRD0V&0MP-m79ZsTf#+!eRMMfe8{#J&bIy$Vpg!ujnLF%*xS zk7u9FMqB%jkm=J4Ts0z`8NUMhQr}rn0u!MI$Q@p=J0E$*NIPuY$&ccdvWU)o z5EjghDeu36-TGEYX&8oh2OfMS@*IR5%AxzLG%8&m2fc64K$la)nvh3uUi2G;ex8An zo24*(@pE_;*9e}}2=)_ipo&`^l{P;C_3fV^Ky)e&bUlP_;rUp!vJ=u;zd(cB6Bw2f z!vv8Dh_9#vx4(Bmx%WPV?|usBX1s(Rs)l#3TEH&29c)+!xN%p3tV|!Q(YXyxV};Oo z=N3%8*#PO^?n6_}7)0chfVqDYr1F(PPjDM_{`Uh`Z~6{QvlpU2jzQv-M#y|#0dmXR z;3ri@V-*$&B7Z=vhu16XM~39n3h!2RxhDF4?3SJX66ytosjro9DI z_X0Rqeg#4|ra@1H0K%M7m|i{y1ys5r^i(#4?)nJ-?u%i^`c(MjaR01M z3RrK<2(Ner)}k-qS^5NMPga9SW-V}@kA$J`??JsOAL=hXgax~cVf)&1Fel&z ze8{*3hkUC+$$u`kHp}2lEPBO;_N|)E-#y z^Db~Hrh!T94PaYKpm+CFoEa*B^ED;0cYZNg*nc1KPiifOy^$V4fP-A=nJU|1u$9PZPA)N1Zd^>iG=t zDy=Faz`%Q@aIDH_Dk?$eG|M@ zdcyI*NJ!Y+2N4!+(ED`^t~_sqUY;MI@NWpz#;YK9pcWLS-GX1v*CE*Z4$P2mhv^7X_e29ho{&^~YtMn(&vNxB*yw{$}D z$6{Exr5+M4w!(q*tB}qA3f@;=g`fG&aB5}+jCg#2)VGFM6;lIyS_+`C_%uA_`T$S3 zszK{`E;QENhRgna5Kx~9zpHP6{?ZJ192o}ToPB52euXs4t1x><3^-f~hnU36Ap5xx z&Lk8-xy&619sdj`e&@qH?p0XYo(R_Vr7$w`_B-h;Sy2gLk02ES}l!6#0T zldEsQpK1|I*Ubapy`}K&sxPRlxd4*Y)sQ&&5wxFNgPGE2VEjxy+`M!do~NcjNmKyT zeo6;k)jW{W=V-ca5}Xrz4CI#&zcOxuXiO}`OJu;RC9Ux3>?JVocnCUIO2Au+A7zEZ z;DL8J^xAd6gjE5==3E4+fD~vLxDTHaE5Nqe8~TK6z%eBbRw$l;q(@Jo;?M{9-q#M< z=TAW8>u4~_z6a;?V}S2~I3{tQftGz?@Hpfu*d43{>F_h4P}dG7W7ef zE&~o{euddJ)iCSX0~k1z0uyy5@Z^0F{QQ>#83qOLit9W)pA`dK+3nyg^9{IHXF{p` zMNsW8fFki6Frx(c%aTY|(tEv`GWq+A>a-u7cqFM3|TCL9y)=1l&ynt#?B( zY{sd_s%v2L>kM%I69d-lB$&)hhCpu@(2|Jljrq`@eis6{`oXU! z6!Iibz-CSj?eAZLL;hjVW^f9&=@){SdNj;!jetdJ+rV;0I=u6!f&16X;rlcW_nrp8 zxLytDAKL;<~_6gXP91IS4`L;vGh%4-OOn?u6I5l4I2eK;tL3_6s ztbLIPzA@nd4u*Lw_4ZPT z6g>xx$}x~ZvC#TD2R>MbKy&(5=xR>}J*$h*ub%Y>(&Xdznlem-shltBn|3k9fK{8cEiZEXz0och1lb};DA^%#2Z?{@P$~& zoa+O=(=x%iDHZtg(?BtS<1v$GAfP%CMxTU&tmFmg>&ybBJR1nw5(CpWWZeySbPC2U&>~oTPYZH)s!*ctfuM{@YK7F53n!~5(@&|kI>E@kI}gVuStJUbGO z_s7A}PO&hK52xFZx+O~!%I^f+kTd>E$dC4!eu2!syrhe5IbU}3K-Xm2-xvDsEI zd8`C{^J5{4=K_?hz_ z{Bg%}H~iL50R@$V5Y_1iil+nNV8vx9H9iCv;$5L1PeI@!Kd|q%;v6#)KE!xIfyrJ7 zd6)}%M(L0;H5$q`M8Z||Ja{XFU^8+Ij%@UScP)l6>)}3lGY|w7-~Ay<-wVd;a$&3} z0kq3DfzM11c2u{3`1ykn7i-)fYte90K(<#~|t1ekg6>9DCYHn0$I1MESzuOTtdj+~Er|!_I-hH9t@) zd;ucgbRje#0P0s*K&OEvh>k@+ zcmrU<&KtZhF9%gMJLvj*n8TA8*m5!ugtUBtAQ1QzwgcDwVAvbs1)s~Vz~%TLP!T`M znH6oI_8Ny{Wy>M3dIKzt3p=9u zF$mh=1;Ro>@Ogg-5T~a`{`N2uvKJ)VHi1pzX#kG5EZeXSnhH~3_xxkPu5r9~(^a=B^Mju zUg5;a>;J*%FFh!^;0P8H9B*9j2=PWX;C8VPoSZ$OEpZ!^a2o^n;dNlT-x_qAL*PoP z4}7^32Ah`nz(xfhh%#9N&OVXAxncrbyvJeG(-+#Tb^&*g0^D2^0x@S+fyc?U5L$Wy zRGNJ_*b0D?>&?KJ#}T?W>;&B>+TgwhAY3U765O`Hbgb z$;TN=n&H_+K*$cMsx57|gB;;HOg72>wlw8>iBD=Q0<-z4(AR7Qv-nxOP@;-R{ zaRvMc+YV9*QP8RfAQ0;fQ~fMK&Hfb3R|^4k-W|}x7Y80n8=ddXS->?B7f@Tc2_(|JfL&MtOG8h=KII*dIxhg)e+0teye06+cnADV z+YX*J8lYnC2qv6b8_mxIof%<}cc0^(qH*9Xo(v}cYv8&Ax$L5_R7jG1NRpLgB}o#p z<2gcBk|YU95|V_hgoGqJDb3OxfDTpN52S`W%W2&)SK>ZkLh6Y!B&eiGweHJVZ`xDlpe=EYo74VI z2eM3FMSL$U$vN1J^s`E-z}|{HZ!MuDg`*VrD~qcBxzSE-MRNYPl6F2(pkGQVrHAz1>h`t%Sk<6x*WZrK?>uO|ZOka^kysarX z*M*c9Zz0tu4ipi-k4jhR(f-8_bo`e;vHxhNIxcTAwAeyPQ)KD8x;y=xRHZpeo2W=% zgXWFzrXnF53To0Nfhn6vregtJ*}su~L^@LHUrQ>Sxt{tjuA#Oc9+bOw74huQr-5QU z>NT|{RcCwRJ-3$jtAx;tr>XRLY%vuL>yz~(P5SXdo&-|lDgN$SYO@rk>^(75@zarn zPHrZ-m;0zu-;4UYP3h0DGToo9L_%Rk6wshfa+&6IyT**JzFbHl%zr4th{i92bTgI_ zZ+IlN#_prEZgr9^aHBhgTS=`Wf}SoiBD=ZU>AKD?iryznA3e3{anC_gKjTRCUhWjN zQ=ixh0GWlE(aFnONpQOK!dOgy^E_zp)HU?DT!i>%te~POJG#=l`=8#L78Ety7 zhpd!!DW}4id~R+e(RO{Z==UMBcgb|~xHZ*enb5B$CHfFLpLT?-r=+=7G_Ivad|Soo z<#Iimwo8xtoULe}P@7(8X^^b93hi%Epk*AY(YkVu&=P3!|zXU}CE zq)9yeGE`-yLvo^S6lxGj{uV1JKvkapY3R|eHd!*CEk#^sU-IcZD& zI-9Bft15XWMbg?ATC_VjkTk}W==Zi|v`t!yoZI$N?ICX3!oQrhuTZ2Gcv3^fD$3bv zN+S1uBL{QI{eu|g>Pk~?+cY|rEKL1I3M42YMJasC$c*GECnJ(dxlBp@tpdfIlA+4k z+Ekgcma>;ili6xdGJmp~61xPcZLI{=e$pbby<*f|DM{5@a%|?Xfto+Bq?~(3)L*GW zJZ{TLM$Vby)S8ovO1a_Mz)z?ch9Ddf?1SgC`KyN&FJMJ6*?IrLbD^)DK+^Jy72WN%rrYhOYGUea{( z^HS;)UQ8;-mynmoT*|w(j>25$Qc$BbYbtLNrOe`Kv?|n?PMtkS z_xI>fnyMYunrPG1k{&>EskGM+4#FbZ4a)nXg+&j^<{>dtZ>6BUg}# zyD63I7A5^ON!l=N4w*Qs(j|>$)F}me(l~=uPfAharup>R?LV4-#)GmY*VBSRaeA-k zL8G>7$atd)1qDe`UzZ4NFjuB)@rLwGSb%D_Ordp5?;M;ll^#tKBbz8Gx^_^4wyBHL zsFxUp)(+f5fQ17S)x+ z)2_dEG`eR7O=Fml^FWk%ujo?9_Sy7tGat=q4D2K zNX}h}>AQX8cq4^n2Qx`6T#mvzrcw^;Z7;=7$czvnzDo216!Ex$OGjAOaz`Ytt6eDN1n4mvckRDo=^S&^;|Cuv(OCia>k+Ev6w zT{|;KNJWE6UAX9m<`l9^+)P1%_B8xv4((WAO1Jy0NpPz$+36~fU*=qT-MWl6wSI+f zMK_QuO7-v9Ij=0Gxl!_T$z6>Ga>XdhPmmraEh0OG9VFwfur(opxU4!Q=>A|G+(X0wd@7DPCNJhL10# z7dhLg_Q(+Ci>i}`zyji2IFFcvb<&<)E zHm!_Mq^og~KuL+B zD#WSf#cbkVD@txo@^pJ*0m-vEU$H=zrU`$B~8MfoJH*;5)`62pQZ-&pfUM3Qr7X2<7y+CIyR4Z`$Wk}M2Q9zgxO4p zi%NoJ$Y+FymZ%ERnHC{B+O>cLr;j65=nL}8W|N|bH2wE|8kHu^r)lB>Ot10Mv{y69 zzG617kzx zdD!vL`1njpF%TrcfwJk;SR_VbZ)cO$ zrCF3?2MV741f!**q^@N`afw0{@Q{NzRtwQYDmS$*k|i+}Zu(HXnTk#;km0c*%=B77 z()*@Sypa$YJY=|b%7|sTQ|W1%7-^XaQ)>hlwaBia%NG`q%gD$Y%d&OAf+6JDl^ z#Hg@fIyLLep-H|et zM`zMS4p}N~dyLyM)97ZwTfFFyp(3>hs5MUNA?PDZwoRYFk^dS>H~5G{XBy4vRVL;1dE}%dNS2ou)8TY> z#^_}f|L!j?C#h4py#qNs;U|;9cNiCPr6`|SwBy$^aJLTQexq)R1;vd`z}r%q4A;w2 z^wpn;zdHs&r+FkZGKJbWWGF&v1+7`QntJ$zNadg=4L{|h^p*u=&h-I`y7P(O;s=a5 zf5NEDnI`9bKy~?S;!qZ%F{^Pj-~WiGd8{@+ag&4QTzaU&MN9RjQ~w7EYO|1`>x<{o zlz-gBk-3`mPxG=J8$oL4{D->dKd`cS9HPlnsWw)a1dmOji)s=~3(ld2*)yodREAz{ zQX(HahVeb$ks0>@R=4^vbV-KhFIhy7M#k}BfS>eSr;*NY8A@LM5pGv+V_5+wNq+r~ zh2nfv$~0qh%>;fOY=hxpDN6rmK#NXIr|-6cWcFqz9l11vimEs$DpY{Np?&vtscMBPB^u2ltw3QC8RVkAeS z<@a=ww73s*c`4(?Q*82jEP;RPD6Qb?|*ReWs z0KL!OL+tKX%pLs) z4(Aj)$L`!^_9x`E{6z1zM;P*Z24S^+O!g|0Zpb(6jFF;y8;0>>%N=AqW8B)QLBVJS zhie^z@D@Ax1nMn*F#VL!Z( zK9_NlMlv`38X7@f`a|rU`30G0#c5N#7`@!~1eP&MB)?gRMlb%x3Fh}wqrReOLXK4J zxTxx29||-1B5q-XI7=6)lv%AbVP z*dL_z&Zcu$=26es40^ip4Sf8j(5Li|Nbz4maZVPL@6AIyN@uWn><3g>jiB@PD*7^G zI&sx~0pGG2#c8kL@#6(XXT5{S zY!0f?;UhQJ1N*%+NnBiws%c#-!WHNGv_frof1y`1zH_u%7)_jp$O9+KTHhjM3 zyf>*{XdxAY=;lW zOYqO)rcWxJ_+!aOmdl=E<)xVvHM17C|1zCnJp$1`pHY*;O|IKJp&Z%`jTv)kU@!AN zksT=5`wO+bPf)?ph_SRO)O&X-+3x-TuGR-ov-%3hy91a~5Q%?P~SHbdN_34#40^l;=l z1_EZ%W`ilDlhlZQyHDWe>VW_MRe2>{@{`48!b%xQv`5U5v zuMzvc5mDFvLMOK!Q8~9D%G-(%E^dmJ>>bW7&}Iv&15Sl34kPJDu_%y0B8m_{zwUSYl849d0dL&<^92n!iS z@Ua(&pZgwjt#3nr_zg~ViqguTHTdiyLC&wg!XvN`Njttk``HZA`u-m351KG~vLA)l zTJZF9FRq^Zj}|U@3+q#Nz@u^-rc3X@#GnaNSe8@$j)%01pMX>K9^MIeBUAMU+7=DL zU?=l#_S5J}dmAF`ZlQl;1^QgN5vS0Hoq^eK*~>$kC+|WnHP291{C z$Hy5IEI$Mv|1XfZ!$+5mIoY012W*Uah%>Mjj+%vVK0ciWw!A{yt}N_dIEv=4ooIb~ z1CN5H(^~CjoGm(sQ~rGzzb;Asf@5&AtjBKSCj1rTI*4nDwbr*dc} zdeVH}TA0mKqQ7Cc&}8rhFGqRF_hvWllwF07@Hh?z)xkVZjQA>sF>m7ns#$dpLAn*- zcJ6~u;suOveGFggMzk$_hRjoUk>NUp0+%%6k>pMMr*#93C4>0IaA?}EZqzg?P=i4k zY|6Mv^>rr>+jioN@N>+5{Sw#qwqZhCkes-mLDlOH#D(i1w__X}A5`i1W)Z3@yN-uD znEsmGgv49bIBxU=;iBC1H24w9eZ;6G{2^|<`vITmulU%bNCE*JaI!fM<&{mi>faAB z=W(=kokQN@b9i}R1pe0tAmG!8Vc#oNSf?`vsn!+H}lhdjcfQC(+7>HMhrf@3(n97@VqvQ>9AfD z%3cO9#|`YdDMS~XZ((6@E_%bd5xS6%Om(Nx;s-_OtFFfFyC2Xvat+xl+F^6O3zbf1 zz$1JU!B0;kwx$McrW{lk)B?HGj|fzlPLo_Y2+i$<=DCNc>HZ1N^DnU0VkX-?YlO)l zH_7j5fZy@^@K?WpK$r6v%8{V?>67r{EJvHHZ+ai#Q3WdunTO1Wl|gD{#C%C=MtQF zhLCi>5%Et1NT(_jAun_BIk^(cf+{hbG>Dk)Uiim$VVn0gocFAQqUc-13tYnL>9a^v zpc;=dK0-a>7Gw&)A#1~Va1EYfbrKtR_$cCA4SFD#lQMH{^#dBXst81WBiW z_r(>|E~`W4?*`mbX-9$5cgO{wMMiK9x-5!e^riyexN5=eT7^DS0qQoGM{DNwpl8|$ zRAjEh^8>q&hc~d@@f3n2OCdD$2He4?A=~*L1N9g2C-x_HdcQ~B;ZoeQdWG2S!fYo} zh-_!~Tz|}A0*6t z4V$?oczrGbqA~aIA!QC3C!Rw9#{`ly8j)%|1ipn=@wBfF_S;wnG4BHAH1{HZ^g4=< zoI%CVMaU+#;Q6*nyb`a$qNfjVQ{XmcJm|yj*n6zDlaXTh6rPps@c7z-0o(7;@_vDu z>&1+3`k|&?3kj!x&@%i7uT28PZ(V~ihfyeo{XqZUlbBh+PrvrvL^;zoQKl&Zdp#FvOUEJ zvKvRHZ5yISTF?_v2ZX)Gz{U5dIGqWj;)~$i$+S+w7YI1kp}?;O@gA4q8gv=QH}pc; zxgPo_t|M`h{>%H|p>zc@HkXn5v>(ab4Y>cW3g1KPVD;%d_-EgTpJ5rA zw=oRzsDe42#W(jXG|;ogC3v(Dkq z)_f>FX1Ma`Bz_z$foq~NaYdg;LcuxAZ?&c!`pwYZ-h`%-EY$T?!pP(-Dm-goXnqf} zIhUak%|T(R520_91#zxaB)+M~(CoA5D(_-FbPmy9lOSVWg&eC1D4ITj#H`nt*7^vN z>(8M4N;Aw^T{ZrTgVX6Eh!#{p*P|SYD{tcaZb2%&QG}5>=MgtE35B@Y5dn4O` z#bDm!1>}3+3gS3UfTJ@Tdw$(SP-HQ3H@AYLz8xo1?m+O+d00&-5c{8MG;X|sh|7g= zdB8r`sR=~St;fj3T})=(g~0Fg@Oyk7i{XOM#~{xk%?Z2{Noa`evXgerRm`|Q)e zwY~z^3pxPKuxU>rMwgf2@_$tj zl|2iur8#g4se+F59q8tKfYji0>e|)=#}JkorglJNT{42#yoOa%G5+?|qjqN<)asM) z(C<1bBr2e~qZ+@%PvC{&QE;r`p`e+MpdoSsWk*lIP<;^J^lDJpk&mT(SCM3W87>Vi zP*lB$OGpCG({hw0W+GLo5F&;(_@u0@q*3G$gY3;dFW z$c@uTO6Up>jE%r`W+qfRa^cQbhgyLQ997B(56=;#&aFk^>PEzswnC0CAG@grb0Qui zEciO}-*xbNkPm+6^DuKvgA3PL^a^I-*W!AVx~9N;PvI1kZ?UK}YpiLB}?*qoY= zq~Py}HjD=g3o!cV3|f5eK&>DVgDRPbNIwtLU$vMXP>s~c<5;dyfVg?*@lv!0dB#uS z%QFbMi0i1*Wmun7$Mj$cco%0Qcx5S`m1N^$_G9!G_h6R*<0kbwD6gr-ZvPBi zW4Uj-SRJ}PCqYf>8fsFHK>cV2_AEJxtI^kBXIzAy4KlBdC;e*tX_m$}k2(Qzgd zTz3#M+Lo&o8&(`b9&i|l95v6-ROTK zO_kS@;JY#j%MTpHzdzY9*?A1wK4mB^e~hHiVkGbsVS?)wF1D6{qw*y#CQl$+A`4PW z4`Sw=Ea)s7LuN`UG8f)~Oa3EvS5asPxCzeBrC3^e0?)1;M$YPb*r_ByVqQ5yb%G%+ z7=jnp*^u=)58VY!H?)>PG5<7{bEn|Yt)qy#Qi=<|IY=6pz!Sk)$j^K3Ix z>N_B_&x$Oh(M3Tr_K(K<}AKTu?8><+5Dx z-I_&CQ|h5Sbri~0wP<4+eSK*L;ze@d`Z^tMQFE!f^%V4u=D_rAAwD$R$IVuzm-=ep zm0to?LFT74j3lQ3NAl5>k%$JhN_6zz$AJ?i@ITZA-bYta?NR|p zpJUKS&A_IZbTsQ%;?rY>%S(a-0eH zoOunAaZIB{Rblh#WW=eThvUp5G}VOTO7Bq&8UBP=?FoFGng`dk2;_f_M2BlQA zOu7exsb^u{z8AhzPr%{C3B-k-#wWde+Ko4!60I5iVW?aiPud8Y;)#?R(Ipmx96H zX$ZBAMTJfVdtKK_1g{Unwd+|}7QPEl!FaRB4>g>X5d9i}9Oo>2aOa}Jo^+hqn}Aa0 z1;lmJ5%!<~)d4BU7YjpKYcjxFgjth}4>|LpIxPY2i%0L&D5RyGf~SN##ui3GBqRMyuva>S8kIU6dy$D|fy;Q**97aJcx{Jnw%+Et-b~nNc+Cqf6^9@{5QgF|mM_`0qe&qZrau#qY;zJ# zg^@VB%@;RxnMXEY=gTex&!zon`kIM1S()J9T!^5f5lkB#MNMuWo)+FitM_gQTf{+2 zp%$MNGx6<1HbxY>F#IS79o~%38As$8$1|UmiAIH3ObX-KScM8w*Yko_48iPy)W;Np*d zvsf5<9feoJIb_>qK_OuqMEp*oV99>;9?L?*kxFdxy$l)8AXJ}rK~2zcOyR!(epbuH zDG}&gpMp@XE~v^M!>=m^5Q|Ag9e)8-Cz8PB5{Tzv4QM#D56)+fp(ExPIZWU39ye%#nNGJ;(dA)&(jV4kbn-)58V@3s0lRb_0TU$H4x>L5LeBqw{Pi_AS4S ziG30HQgI3m?w6qHbOdcqi3nj{V_+~BqIrejRf)rR%TefV&&A%&$BM|vcFOdCe2O)vsymY_{6 z8a%-#P|5TU$GH?dpBE0UfMY1t-HyHK8_+Pc2a_!kDB+05lsmqd+QGOmHWPC=9>Q{3 zB*cVoV|aZuDy3sFqbn8D&Q+u0Z63Z}*p3FLEI2vDW8sxpe4U>TfhD`q>k|bl9`rPn z06*NH;gw1d%VGxbN1+sdRGhH6as!6n1cLA1H_Y3^Fl)OX^vj~K!DAN&&z*$L%p6p5 zJw?@E9yB9^5o~n;w&gn^=$i)ZbrF!lHq_0(im~W89GLvX?#u&HiO!H@cx$f~fd-xm zD?7z4k%Vn{)(ZmczFv8#(#zn22|Pcyc~|xop9t4D(?<+t7SsJKEJOaPK)JXzmvMtgDvG#`6nbX5jk{&IsAcMgPk4ntjVCp>TOM5kaJ z$~To^!mkhl<3ZTt_Z`;?Q_v(Gj+gVFpj^WRLgKENOxOaEZ87-zAReoOcH;tP1m5QD z$CT|Uu=|n*QHBftH^Xpmej50G`NH#W3=;J7p}+DrBHjf-AkYrRE@3dt^@qmEKzOUi zA*Uq+yaopm(Yha{Tt^U-;K?$HK`&)o(cS&nv+NLRzuQ5yIR=X#Jix^9CWzV{#?wb(=stcPw`Y69BX&2;4n;wH z(^h01IEAEDk!Xs}Le+``2%fo{{k;j~oJ&Ne)^2#;+k~s(`ys%a2dnNtl!U*6R&*?y zRrbLpDjNbk&Zs|Nhw7(C;Qqk}vPTbMZATLBdLD(o%wc@=i^5&8gHZMl!gI0Ri2iE< zfe>4)?5syL?@{D`+lTBYyV3Oh2wn#G!aHd{T<7Is%Y9q?z3qXLL-A<;bsY6?;?P#< z49l5bu#!#0i+HA;J$B<;tS4TX#lysYH}cr7!4{7om zX%;Vt`ZMol6b_rk?0L)E;|0?%I^(Axu$?_aL_jMl6770Nkt4MWB^oEuV0Q>#+S5?B zG8R5A>@z4NV66Nw*qcw_E#Zsrj!dIB9mN_RUkuFhgGBXi?29@GSHD0kT)PE7$Qxl( zEb#4Q2<+nz!}UlKcCu$w#kUjb#SsXYvKO0Agu-ex8irz-;8l)63|A2B8eHLJ5m=pPiNO6wFzqF)hvV#gmN5`(jf3C6jnGz3 zg1Ojw=s0wOJJcQ5ig%%Z(RxVS>_h4DO>j%z1izL@IIk&$Q|T&v@^=M)jxW+n*WhI4 zDI_yIa&7j9U1>Mcg+t);Galwn9%vZ1MP7g|QrD!z*s>5~H3m>Fc?uopG*pbT+v_;-WUVl()kFKn&iz%7fb5wTv@E(EDWr9HY0x z!FL17m+yzpzvIZ`j7MLyIb>Jt$54y|qHlY_A~6HHmf;}32t;fQMrw{NZZe*%F?Ykf zjwpzov&0s68{{blgS*fbRm)GH@T)G;4hJGWY6FBccfozv7g&y_BI4CCR2W`Df593A zeLR2**LK3`n=cOc?n1*s2Xs5SgEzwr|E0#lWvL5pzd4RCPO&ITGJ~k#I_UAoAkNmS%%liZ@5+Z)iU*!fIf_9SUxWqu;@trQtR9I+ zMQ#EVOJcxr(jM<3?eTcYA?)qe!wJPiNJz5hxib}N8jet!h{f`zWGFY8;P;UYm^K`Y zg?|qtNZ1LQnQ;&+w}+4<-Jf5 zw1ZBIIm~TrklbyC&vOrBX^sW*#I14bfjq?H7`8mvh$r**U?5{N1RtzN>gsJ!6L*K< zzdZ=s0?0STJ2*t^GZv^`9MtPPNzN{TU-uxZ7)9sFOooz_9v4^F*9|SK3;r=>byp)WG z=)VInZ1qH(v>)WF&!Xyz1-8E4f|g}I80Lt@S#eujeBcgm_gL8L1j4z(8?w72;Bm(T z)n&Wcj9@2DuwFBH=!dcF!;sn(kNX4u$dYTpx4>}3%yvOxnJH@5Fz*t!5hGl~SU2em zza!>oUX%yL1sS-y)fQi!Okg?T$~-|2(yy0a` z8f~-Iq3o6$4%>wz$zwA@S%1CxycG#W&Zyo}3*TXPI1aJD`OO`^d$uD;JPiMtSz`6? zt@xE~1I>R4m>Ibpt}Bk}jajKDTi3@^4vMU5Bge{X@Cx)yrY zv3bKIOXTeE16S@w{2jA~&~0m>|_&q zuUcc`C);lrly$>U)E1aUS>P(4 z3ly(7Vh7{cYpkAB13WOs4-)=$7$CZ#WvxoWP6gFcugz4)X==kVhRPZ(P4KZ*u)IkHo#@oz0%DcJakD(`W ze(!>V`EDd=o5MAH9ULmP@Pl6)r#|~)a*7qszK%x#UnB-wlOPw%GK@eC><@H8yo){* zr?{XX+!*#rZpdJ`=B1f|5y8VyV#~oX%1aU5X9SOndy#Fy^ssWm!~!KGGv0GJ zW((J0OH93BiG~gp1YHY8o#F;~Z;gPQn>{pl9E8fjtyp&~5YgX6an0l)PMcd{Bu5u* z?6c}uxnf+@7{jY9;TvuMhnpK=KGPG)n>Im9jCqd>OVQPD4G#q!mY;fI)Nd;a+}*J~ z)B$Z-EAZLd28jYO7~8LltNX1mZA&_)*eF3JI0m9`ccS*{QuNNXz|c8u$UZhjYluGV zqcrfdvKYF%om%DX3>y^KJssZwsmtrZGkrJa@fyS1WDCA5vO(!?2bK$ZU>;ut zjL!uiL5uO)iOsNlV~r)3j1W_lfbEHeP}SXxv&|7`Z8CyDy&WWUyy0rF1#yiga8x!1 zcl8=5@6ks0btAZzdt+B-3^IIIW2#03+MCRgX|oLu)!yI@(ty+0VmLNCqwdu@2QWF-vUSZ-PzYKBzU@gy=%{+Wa9?cnIquV^R-N-aDbcW)(U^tWdPj3LHfi z_`{n9oh=(sm86RMiOO)@xeMRBJTci|i1$gxSUcbZ*(u8q-ns%Qd#u@<&;Ziu#z>Ns z$4fproV~-m3g2=lj68yW{6@_9mxk#wsd)5Y114>(p&qS^^q)>Re##7+7cejNV>^D! zu7buDL*zM_L0HKgVW+haowyda|LGz(Zx<%AB_KI22lq#TQ2t@SIN>WE<(fcd!&aEJ zti(rmAK1vMA}~lDp1f=DM^znq*5=?_xeX1)YPg+27)qHB*zU?BHsYR4m19&*gX|>;>a_rWi9YfafJ8%>1<)u2uRhC)xqkRi5bL zUWEvIBYe20i34vH(V)H<17wL*EkFDnG{IIccAk0z{H$FKypYCr9y9FhG{DGWZSeix zjmr!}9a7!!X|)Bm{8fc$)^aq3KZIaKBeuz|1U;}pd$2Tw@+{z%YlO@~rZd7#!Et0Y z;sY7hol=9xI_6n-yTFZ471==m|NcUFw=YBUMFPk3wTL1c%#1x!QB7`VeEXFY_T7_s^3TBI=S;hd!kof<_LBT-B0RKLq1MD0*2$U>(ccKy2z~JG(Z#d?b#MwQA$6G= z`X}QcuYVBEQARl4D2HKHQP{Kn1(i4x6koG|${K0tdm2OX`%0#vZIQ(K<4=n%0+JLl zc1(lmH7Tg?QbW$Vi?}MW3hz4-z!SR;X-#LKzhxcd1T`}t(imhKU;iagU8>Boa$B_C*a3lOVYvEU7Q+u!@Wj#vzea=M*|!bL z9hc#1n;n{x*5aD+S_u7d#0m{rn@tA)VniEw~ zx6}|V9nL6T8UYthMa=uT6sw9YU{I-px1GzNGU^2DbY1uvvD&%08WF|ekm_ECh4oGl z>(@kqCt%%V2>YW}a2Rt#g{BRTyk_^Hs0_nMV3298S}Ro?wl)Em8rx6OnhTi*J1lF` zh0>@p@Q*;d0>}R#Xrw+SKh6u<| zg2j$xB-Aa39sf~$lheVKb&*i~s}J*M;+PY^2+AqC(3rIkDOoGgR=W;e&m~}fV;OXP znEqWzkodU=B0_-1J*E}L0x*2_5aRyWVaJN&@D5SJi8-tf=V-HRe-)d-D`KmFH2Ti1 zVe@(=lx@=o|1&+zTF)>KZA+AI8ludYOa|j>z*)qSNi}i05 z@b&8&*c_eDGA2zdU+D~)TP~Q|s)y0Hi!pVXGA2CLp!Hl9<$IObUWEoGWA>x@y*?V2 z2O%g}6ICS&*cxJk!ox<85?_YZJ&U2X%MjTs6~M>7zxLBAxGh+N9LrU3X=i%*&q{dm zEJMO;DWtlYqSR9ru97B5P&fBlP*nxuOvlKb zdX7h<%nx$J{&mqp{NAB1?MGwQVE3la9{byZr;F7e*C9VZ*$954)KS`kL zzCN_Xg^}mX=DN4^ab$xDJf}*a=$;f#XiC9%qbzPdS&A|5<;XdC2=NakplG882iGO2 z3fDnc_!1as?}5t5LVRD(`r+4Nc*^P{H>nGwAHUk<#7mVv2g_n)naQTEH zf&vy``f5WgU$+d)?y$OTGKPS*K3;V$!PXfj@LwPZ$y80GRSTlwZL;3t#hz%Lzm$E5bUNpe;ekeps6k%DfgOdYN z7%5kU)zLK&(N>0rg(iC6C*h3QN=TSUFzq4-(~EWB;97-j0XMjK7%&bsz*QMJ^k0-f zbu+umd8**?F+hB_GX66Eqa5#n!emoi*6?S$VoDGSaYD_h<=|Z5ge}{&kTOf0c@+z| zE|!Jnx21S9Duz=krZ_fN3<(tsb1rXy+dDOhPwhUd=1P}m0i z7b}jO8>`@ytN^Dqi%_vm8-up15cts+8iC4aR+ELWgb9+48KUgU0(hrJqRVG1Ruem~ zoicoC)KFTz2pabnLGY$5d}df8=7}tx^=hD|Spx6&8(@OX-e#psqWZiT?icGId$lBj z)-~aH=L2}usi94I0qT=gAjvC^(zbQTUb7I_Qx+j}$6`FPR7atL9G1OMg2;CnXiPDJ zQ@RrV$!$Q)T`A14ox|!7IK}F)@5};(o;1Pd9kU^OY#v5>Wsq#Y2w^t*$V`_;n7Si8 zOmpEYuYg(ON;t*1-eN!r1CcjTHO~O9d$(ieGgIX6Q^8`}g=nwQhE~QBa2Bk`z@u2@_K!(R#of-vn1cK2-~nHv{o)y(O$PRIw;l7F_x)pR~|H<90Pn zj4wbU2O*oCf83h&|2btu+`W#vFf#<08ski#34$a9(MuX=k(r0!qJ{9>&kxrUEpSYz zVo#_#dNwV^k5vK)I;n;_eLW=2RKWEPN%$*DBGg+NoSh3`ex7NvnM(LIH3+xPDx>|I zAUd1n&~;iK_5G5VUoC~~P8o;=%ESDk5WM@O5gloSjnX$T*QgD*n@pkqd=ZkXWFa=7 z0FLwekdS8mzE2qK*F7N1&hdQbGVttG#>xm^BuuKoTUrdiUg_b>!&8{-RKbrM=D2-q zA^KaELEmfxoKGnt?wvaFLY5&&<3F|=sfwC=GT;wTgqPqFI2W4X?Pk^&x%*+iSPccg z)R2Bc9-T|2AS$#Jv;0>evt1E3ZX)=lM=)s9g!ik3SSTun0U_3VKbAw?PaJwzRDm%~ zSf1C0>J4$cUb_VGS6Q~7#Sh0CNo4EWv;7N66m3$+$-&6UM{j}>V9qk@v 1e6 or np.isinf(stats["t"]) + # level: median of the last of 20 blocks + assert stats["level"] == pytest.approx(np.median(losses[-100:])) + + +def test_loss_trend_rising_loss_has_negative_drop(): + stats = loss_trend(np.linspace(0, 100, WINDOW)) + assert stats["drop"] < 0 + + +def test_loss_trend_constant_is_zero(): + stats = loss_trend(np.full(WINDOW, 5.0)) + assert stats["drop"] == 0 + assert stats["t"] == 0 + + +def test_loss_trend_needs_three_losses(): + with pytest.raises(ValueError): + loss_trend([1.0, 2.0]) + + +def test_loss_trend_ignores_leading_partial_block(): + losses = np.concatenate([[1e9], np.full(2000, 3.0)]) + assert loss_trend(losses)["drop"] == 0 + + +@pytest.mark.parametrize("noise", ["normal", "lognormal", "student_t"]) +def test_loss_trend_flat_noise_rarely_looks_like_improvement(noise): + """A flat loss with white noise -- symmetric, right-skewed or heavy + tailed -- is called improving (t > 3) in only a few percent of windows.""" + rng = np.random.default_rng(0) + false_calls = 0 + for _ in range(300): + if noise == "normal": + eps = rng.normal(size=WINDOW) + elif noise == "lognormal": + eps = rng.lognormal(sigma=1.0, size=WINDOW) + else: + eps = rng.standard_t(df=2, size=WINDOW) + stats = loss_trend(1e5 + 1e4 * eps) + false_calls += stats["t"] > 3 + assert false_calls / 300 < 0.03 + + +def test_loss_trend_detects_decrease_well_below_step_noise(): + """A drop of half the per-step noise SD per window is still found (the + expected t is ~5): the test is against the noise of the trend, not of + a step.""" + rng = np.random.default_rng(1) + losses = (1e5 - 5000 * np.arange(WINDOW) / WINDOW + + 1e4 * rng.normal(size=WINDOW)) + assert loss_trend(losses)["t"] > 3 + + +# ----------------------------------------------------------------------------- +# param_drift / summarize_excess +# ----------------------------------------------------------------------------- + +def _block_centers(n=8, window=WINDOW): + width = window / n + return (np.arange(n) + 0.5) * width + + +def test_param_drift_linear_movement_in_sd_units(): + centers = _block_centers() + sd = np.array([0.5, 2.0]) + # moves by exactly 1 SD per window, no noise + means = (centers[:, None] / WINDOW) * sd[None, :] + drift, excess = param_drift(means, centers, WINDOW, sd, z=3) + np.testing.assert_allclose(drift, [1.0, 1.0], rtol=1e-6) + np.testing.assert_allclose(excess, [1.0, 1.0], rtol=1e-6) + + +def test_param_drift_stationary_noise_has_little_excess(): + rng = np.random.default_rng(2) + centers = _block_centers() + means = rng.normal(scale=0.3, size=(8, 5000)) + _, excess = param_drift(means, centers, WINDOW, 1.0, z=3) + assert summarize_excess(excess) < 0.3 + assert np.mean(np.asarray(excess) > 0) < 0.05 + + +def test_param_drift_floor_absorbs_optimizer_jitter(): + """Movement of a few step sizes (Adam jitter) is under the floor even + when the normalizer (a collapsed guide scale) is much smaller.""" + rng = np.random.default_rng(3) + step_size = 1e-3 + centers = _block_centers() + means = np.cumsum(rng.normal(scale=step_size, size=(8, 100)), axis=0) + floor = conv.MIN_STEP_COHERENCE * step_size * WINDOW + _, no_floor = param_drift(means, centers, WINDOW, 1e-4, z=3) + _, with_floor = param_drift(means, centers, WINDOW, 1e-4, z=3, + floor=floor) + assert summarize_excess(no_floor) > 1 + assert summarize_excess(with_floor) == 0 + + +def test_param_drift_coherent_movement_beats_floor(): + step_size = 1e-3 + centers = _block_centers() + means = (centers / WINDOW * 0.5 * step_size * WINDOW)[:, None] # 50% speed + floor = conv.MIN_STEP_COHERENCE * step_size * WINDOW + _, excess = param_drift(means, centers, WINDOW, 0.01, z=3, floor=floor) + assert summarize_excess(excess) > 1 + + +def test_param_drift_accepts_jax_arrays(): + centers = _block_centers() + means = jnp.asarray(np.outer(centers / WINDOW, [1.0, 2.0])) + drift, excess = param_drift(means, centers, WINDOW, jnp.ones(2), z=3) + np.testing.assert_allclose(np.asarray(drift), [1.0, 2.0], rtol=1e-5) + + +def test_summarize_excess_small_array_uses_max(): + assert summarize_excess(np.array([0.0, 0.0, 0.7])) == pytest.approx(0.7) + + +def test_summarize_excess_large_array_uses_quantile(): + excess = np.zeros(10000) + excess[:5] = 10.0 # 0.05% of elements in the tail + assert summarize_excess(excess) == 0.0 + excess[:500] = 10.0 # 5% + assert summarize_excess(excess) == pytest.approx(10.0) + + +def test_summarize_excess_nonfinite_is_infinite(): + assert summarize_excess(np.array([0.0, np.nan])) == np.inf + assert summarize_excess(np.array([])) == 0.0 + + +# ----------------------------------------------------------------------------- +# ConvergenceMonitor decisions +# ----------------------------------------------------------------------------- + +_FLAT = {"level": 100.0, "drop": 0.0, "drop_se": 1.0, "t": 0.0} +_IMPROVING = {"level": 100.0, "drop": 10.0, "drop_se": 1.0, "t": 10.0} + + +@pytest.mark.parametrize("kwargs", [{"step_size_cut": 1.0}, + {"step_size_cut": 0.0}, + {"patience": 0}]) +def test_monitor_rejects_bad_settings(kwargs): + with pytest.raises(ValueError): + ConvergenceMonitor(1e-3, 1e-6, **kwargs) + + +def test_monitor_cuts_after_patience_stalls(): + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + assert [m.end_window(i, _FLAT) for i in range(3)] == \ + [conv.CONTINUE, conv.CONTINUE, conv.CUT] + assert m.step_size == pytest.approx(1e-4) + assert m.plateau_count == 0 + assert m.num_cuts == 1 + + +def test_monitor_cut_ignores_moving_parameters(): + """Above the floor the loss alone decides a cut.""" + m = ConvergenceMonitor(1e-3, 1e-6, patience=2) + moving = {"p": 5.0} + m.end_window(0, _FLAT, moving) + assert m.end_window(1, _FLAT, moving) == conv.CUT + + +def test_monitor_improvement_resets_patience(): + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + m.end_window(0, _FLAT) + m.end_window(1, _FLAT) + m.end_window(2, _IMPROVING) + assert m.plateau_count == 0 + assert m.end_window(3, _FLAT) == conv.CONTINUE + + +def test_monitor_rising_loss_counts_as_stall(): + rising = {"level": 100.0, "drop": -50.0, "drop_se": 1.0, "t": -50.0} + m = ConvergenceMonitor(1e-3, 1e-6, patience=1) + assert m.end_window(0, rising) == conv.CUT + + +def test_monitor_loss_rtol_floor(): + """A significant but negligible improvement (deterministic loss) is a + stall.""" + tiny = {"level": 1e6, "drop": 0.1, "drop_se": 0.0, "t": np.inf} + m = ConvergenceMonitor(1e-3, 1e-3, patience=1, loss_rtol=1e-6) + assert m.end_window(0, tiny) == conv.CONVERGED + m = ConvergenceMonitor(1e-3, 1e-3, patience=1, loss_rtol=1e-9) + assert m.end_window(0, tiny) == conv.CONTINUE + + +def test_monitor_stop_needs_parameters_still_at_floor(): + m = ConvergenceMonitor(1e-6, 1e-6, patience=2, param_tolerance=0.05) + moving = {"a": 0.0, "b": 0.2} + for i in range(10): + assert m.end_window(i, _FLAT, moving) == conv.CONTINUE + assert m.last["worst_param"] == "b" + assert m.last["params_moving"] + still = {"a": 0.0, "b": 0.01} + m.end_window(10, _FLAT, still) + assert m.end_window(11, _FLAT, still) == conv.CONVERGED + assert m.converged + + +def test_monitor_goes_through_all_stages(): + m = ConvergenceMonitor(1e-3, 1e-6, patience=1) + decisions = [m.end_window(i, _FLAT, {"p": 0.0}) for i in range(4)] + assert decisions == [conv.CUT, conv.CUT, conv.CUT, conv.CONVERGED] + assert m.step_size == pytest.approx(1e-6) + assert m.num_cuts == 3 + + +def test_monitor_cut_clamps_at_floor(): + m = ConvergenceMonitor(1e-3, 5e-4, patience=1) + m.end_window(0, _FLAT) + assert m.step_size == pytest.approx(5e-4) + assert m.at_floor + + +def test_monitor_no_floor_means_no_cuts(): + m = ConvergenceMonitor(1e-3, None, patience=1) + assert m.at_floor + assert m.end_window(0, _FLAT) == conv.CONVERGED + + +def test_monitor_drift_floor(): + m = ConvergenceMonitor(1e-3, 1e-6) + assert m.drift_floor(2000) == pytest.approx( + conv.MIN_STEP_COHERENCE * 1e-3 * 2000) + assert ConvergenceMonitor(np.nan).drift_floor(2000) == 0.0 + + +def test_monitor_state_round_trip(): + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + m.end_window(0, _FLAT) + m.end_window(1, _FLAT) + m.end_window(2, _FLAT) # cut + m.end_window(3, _FLAT) + state = m.state_dict() + + m2 = ConvergenceMonitor(1e-3, 1e-6, patience=3) + m2.load_state_dict(state) + assert m2.step_size == pytest.approx(1e-4) + assert m2.plateau_count == 1 + assert m2.num_cuts == 1 + assert m2.last == m.last + + +def test_monitor_describe(): + m = ConvergenceMonitor(1e-3, 1e-6) + assert "no complete" in m.describe() + m.end_window(2000, _FLAT, {"theta_loc": 0.3}, {"theta_loc": 0.4}) + text = m.describe() + assert "theta_loc" in text and "step 2000" in text + + +# ----------------------------------------------------------------------------- +# Synthetic loss traces +# ----------------------------------------------------------------------------- + +def _noisy(clean, rel_sd=0.05, abs_sd=0.0, seed=0): + rng = np.random.default_rng(seed) + sd = rel_sd * np.abs(clean) + abs_sd + return clean + sd * rng.normal(size=clean.size) + + +def test_trace_monotone_decay_never_stalls_while_falling(): + """Exponential decay with noise proportional to the loss (the SVI + pattern): improving in every window while it is still falling.""" + steps = np.arange(20 * WINDOW) + trace = _noisy(1e3 + 1e6 * np.exp(-steps / 8000), rel_sd=0.25) + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + decisions = _feed(m, trace[:10 * WINDOW]) + assert conv.CUT not in decisions + assert m.last["loss_improving"] + + +def test_trace_noisy_floor_cuts_after_patience(): + steps = np.arange(30 * WINDOW) + trace = _noisy(1e5 + 1e6 * np.exp(-steps / 2000), rel_sd=0.0, + abs_sd=1e4) + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + decisions = _feed(m, trace) + first_cut = decisions.index(conv.CUT) + # decay is gone after ~6 windows; the cut follows within a few windows + assert 5 <= first_cut <= 12 + + +def test_trace_two_phase_plateau_shorter_than_patience(): + """drop, plateau of two windows, larger drop: no cut on the plateau.""" + seg = WINDOW + drop1 = np.linspace(1e6, 5e5, 2 * seg) + plateau = np.full(2 * seg, 5e5) + drop2 = np.linspace(5e5, 1e4, 4 * seg) + trace = _noisy(np.concatenate([drop1, plateau, drop2]), rel_sd=0.0, + abs_sd=2e3) + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + decisions = _feed(m, trace) + assert conv.CUT not in decisions + + +def test_trace_two_phase_plateau_longer_than_patience_cuts(): + """A plateau as long as the patience span does trigger a cut -- the + parameter test, not the loss, is what keeps a slow phase from being + called converged.""" + seg = WINDOW + trace = _noisy(np.concatenate([np.linspace(1e6, 5e5, 2 * seg), + np.full(4 * seg, 5e5)]), + rel_sd=0.0, abs_sd=2e3) + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + assert conv.CUT in _feed(m, trace) + + +def test_trace_deterministic_slow_tail(): + """A noiseless tail: improving until the per-window drop falls under + loss_rtol of the level.""" + steps = np.arange(40 * WINDOW) + trace = 1e5 + 1e3 * np.exp(-steps / 5000) + m = ConvergenceMonitor(1e-3, 1e-3, patience=3, loss_rtol=1e-6) + decisions = _feed(m, trace) + assert decisions[-1] == conv.CONVERGED + # drop per window at the stop is below 1e-6 * 1e5 = 0.1 + assert m.last["loss_drop"] < 0.1 + + +def test_trace_resume_matches_uninterrupted(): + rng = np.random.default_rng(4) + trace = 1e4 + 1e5 * np.exp(-np.arange(24 * WINDOW) / 6000) \ + + 300 * rng.normal(size=24 * WINDOW) + + whole = ConvergenceMonitor(1e-3, 1e-6, patience=2) + expected = _feed(whole, trace) + + first = ConvergenceMonitor(1e-3, 1e-6, patience=2) + half = 10 * WINDOW + got = _feed(first, trace[:half]) + resumed = ConvergenceMonitor(1e-3, 1e-6, patience=2) + resumed.load_state_dict(first.state_dict()) + got += _feed(resumed, trace[half:]) + assert got == expected + assert resumed.step_size == whole.step_size + + +# ----------------------------------------------------------------------------- +# Recorded traces +# ----------------------------------------------------------------------------- + +def test_recorded_real_data_trace_is_still_improving(): + """Real data, ~200k genotypes, batch 65,536 (4 steps per epoch). The run + was stopped by the old rule; every window, including the last, is still + a significant improvement.""" + trace = np.load(os.path.join(TRACES, "real_svi_200k_genotypes.npy")) + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + decisions = _feed(m, trace.astype(float)) + assert decisions and set(decisions) == {conv.CONTINUE} + assert m.last["loss_t"] > 10 + + +def test_recorded_simulation_trace_is_still_improving(): + """Step-3.5 anchored run 0002: the old rule stopped it at step ~8,250 + ('converged') while the loss was falling ~20% per 1000 steps.""" + trace = np.load(os.path.join(TRACES, "sim_svi_anchored_run0002.npy")) + m = ConvergenceMonitor(1e-3, 1e-6, patience=3) + decisions = _feed(m, trace.astype(float)) + assert set(decisions) == {conv.CONTINUE} + assert m.last["loss_t"] > 10 diff --git a/tests/tfscreen/tfmodel/inference/test_guide_selection.py b/tests/tfscreen/tfmodel/inference/test_guide_selection.py index 27c1aca1..4a42b445 100644 --- a/tests/tfscreen/tfmodel/inference/test_guide_selection.py +++ b/tests/tfscreen/tfmodel/inference/test_guide_selection.py @@ -65,7 +65,6 @@ def test_autoguide_round_trip(tmpdir, guide_type, guide_kwargs): _, params, _ = ri.run_optimization(svi, max_num_epochs=2, out_prefix=out_prefix, init_param_jitter=0.0, - convergence_tolerance=None, epoch_checkpoint_interval=None) with open(f"{out_prefix}_checkpoint.pkl", "rb") as f: diff --git a/tests/tfscreen/tfmodel/inference/test_initialization.py b/tests/tfscreen/tfmodel/inference/test_initialization.py new file mode 100644 index 00000000..f7e2f6c9 --- /dev/null +++ b/tests/tfscreen/tfmodel/inference/test_initialization.py @@ -0,0 +1,158 @@ +""" +Tests for inference/initialization.py: site values <-> guide parameters. + +The registry-wide test makes sure every component guide follows the +``{site}_loc(s)``/``{site}_scale(s)`` convention the pre-MAP hand-off relies +on, or is on an explicit list of exceptions. +""" + +import jax.numpy as jnp +import numpy as np +import numpyro +import numpyro.distributions as dist +import pytest + +from tfscreen.tfmodel.inference.initialization import ( + component_guide_init, + component_guide_map, + site_prior_sds, + site_values, + trace_model_sites, +) +from tfscreen.tfmodel.inference.run_inference import RunInference +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator + +from .test_batch_safety import ( + _BINDING_CSV, + _GROWTH_CSV, + _SAFE_VARIANTS, + _VARIANT_KWARGS, + _owned_by, +) + + +def _model(data=None, priors=None): + a = numpyro.sample("a", dist.Normal(1.0, 2.0)) + numpyro.sample("b", dist.HalfNormal(3.0)) + with numpyro.plate("p", 4): + numpyro.sample("c", dist.Normal(a, 0.5)) + numpyro.sample("d", dist.Cauchy(0.0, 1.0)) + numpyro.sample("obs", dist.Normal(a, 1.0), obs=0.3) + + +def _guide(data=None, priors=None): + numpyro.sample("a", dist.Normal(numpyro.param("a_loc", 0.0), + numpyro.param("a_scale", 1.0))) + numpyro.sample("b", dist.LogNormal(numpyro.param("b_loc", 0.0), + numpyro.param("b_scale", 0.5))) + with numpyro.plate("p", 4): + numpyro.sample("c", dist.Normal(numpyro.param("c_locs", jnp.zeros(4)), + numpyro.param("c_scales", + jnp.ones(4)))) + # does not follow the convention + numpyro.sample("d", dist.Normal(numpyro.param("dee", 0.0), 1.0)) + + +def test_trace_model_sites_skips_observed(): + sites = trace_model_sites(_model, None, None) + assert set(sites) == {"a", "b", "c", "d"} + + +def test_component_guide_map(): + mapping, unmatched, defaults = component_guide_map(_guide, None, None) + assert mapping["a"]["kind"] == "normal" + assert mapping["a"]["loc"] == "a_loc" and mapping["a"]["scale"] == "a_scale" + assert mapping["b"]["kind"] == "lognormal" + assert mapping["c"]["loc"] == "c_locs" and mapping["c"]["shape"] == (4,) + assert unmatched == ["d"] + assert set(defaults) == {"a_loc", "a_scale", "b_loc", "b_scale", + "c_locs", "c_scales", "dee"} + + +def test_site_values_priorities_and_shapes(): + sites = trace_model_sites(_model, None, None) + mapping, _, _ = component_guide_map(_guide, None, None) + values = site_values({"b_loc": np.log(2.0), # guide loc -> exp + "a": 5.0, "a_auto_loc": 6.0, # MAP key wins + "c": 1.5, # broadcast + "d": np.ones(3)}, # wrong shape: skipped + sites, mapping) + assert float(values["b"]) == pytest.approx(2.0) + assert float(values["a"]) == pytest.approx(6.0) + np.testing.assert_allclose(values["c"], 1.5) + assert "d" not in values + + +def test_component_guide_init(): + mapping, _, defaults = component_guide_map(_guide, None, None) + params, skipped = component_guide_init( + {"a": jnp.array(2.0), "b": jnp.array(0.0), "c": jnp.full(4, 3.0)}, + mapping, defaults, init_scale=0.2) + assert float(params["a_loc"]) == pytest.approx(2.0) + np.testing.assert_allclose(params["c_locs"], 3.0) + assert skipped == ["b"] # log of 0 is not a location + assert "b_loc" not in params + # scales capped, smaller defaults kept + assert float(params["a_scale"]) == pytest.approx(0.2) + np.testing.assert_allclose(params["c_scales"], 0.2) + assert float(params["b_scale"]) == pytest.approx(0.2) + params, _ = component_guide_init({}, mapping, defaults, init_scale=None) + assert params == {} + + +def test_site_prior_sds(): + sds = site_prior_sds(trace_model_sites(_model, None, None, + substitutions={"a": 0.0})) + assert float(sds["a"]) == pytest.approx(2.0) + np.testing.assert_allclose(sds["c"], 0.5) + assert float(sds["b"]) == pytest.approx(3.0 * np.sqrt(1 - 2 / np.pi)) + assert "d" not in sds # Cauchy: no finite variance + + +# Guide sites that do not follow the {site}_loc(s) convention, and why. +_KNOWN_UNMAPPED = { + # horseshoe_geno names its guide params activity_lambda_offset_* and + # activity_activity_offset_*; renaming them would break its checkpoints. + ("activity", "horseshoe_geno"): {"activity_global_scale", + "activity_local_scale", + "activity_offset"}, + # noise latents guided by their priors (no location parameter) + ("theta_growth_noise", "logit_normal"): {"theta_growth_noise_epsilon"}, + ("theta_binding_noise", "beta"): {"theta_binding_noise_dist"}, +} + + +@pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) +def test_component_guides_follow_loc_scale_convention(axis, variant): + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=None, + **{axis: variant}, + **_VARIANT_KWARGS.get((axis, variant), {})) + ri = RunInference(orchestrator, seed=0) + mapping, unmatched, _ = component_guide_map(orchestrator.jax_model_guide, + orchestrator.priors, + ri._trace_batch()) + unmatched = {s for s in unmatched if _owned_by(axis, s)} + assert unmatched == _KNOWN_UNMAPPED.get((axis, variant), set()) + no_scale = [s for s, e in mapping.items() + if e["scale"] is None and _owned_by(axis, s)] + assert no_scale == [] + + +def test_default_model_guide_start_round_trip(): + """Guesses -> site values -> guide params reproduce the site values.""" + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=None) + ri = RunInference(orchestrator, seed=0) + values = ri.site_values(orchestrator.init_params) + assert "dk_geno_offset" in values # keyed by site in the guesses + start = ri.component_guide_start(values, + guesses=orchestrator.init_params, + init_scale=0.1) + np.testing.assert_allclose(start["dk_geno_offset_locs"], + values["dk_geno_offset"], rtol=1e-6) + assert float(np.max(start["dk_geno_offset_scales"])) == pytest.approx(0.1) + # param-keyed guesses (not sites) are kept + assert "condition_growth_k_locs" in start diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index 646fd16c..9efc7899 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -69,116 +69,6 @@ def test_setup_svi(): svi = ri.setup_svi(guide_type="delta") assert isinstance(svi.guide, AutoDelta) -def test_run_optimization(tmpdir, mocker): - model = MockModel() - ri = RunInference(model, seed=42) - - out_prefix = os.path.join(tmpdir, "test") - - # Mock jax and svi methods to avoid actual execution - mocker.patch("jax.jit", side_effect=lambda x: x) - # Mock scan_fn or just lax.scan - mocker.patch("jax.lax.scan", return_value=("state", jnp.array([1.0, 0.9]))) - - mock_svi = mocker.Mock() - mock_svi.init.return_value = "state" - mock_svi.update.return_value = ("state", 1.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - - # Mock get_key to avoid randomness issues in tests - mocker.patch.object(ri, "get_key", return_value=jnp.array([0, 42])) - - state, params, converged = ri.run_optimization( - mock_svi, - max_num_epochs=10, - convergence_check_interval=1, - checkpoint_interval=1, - out_prefix=out_prefix, - convergence_tolerance=0.01, - patience=1 - ) - - assert state is not None - assert "p" in params - assert isinstance(converged, bool) - assert os.path.exists(f"{out_prefix}_losses.bin") - assert os.path.exists(f"{out_prefix}_losses.txt") - -def test_run_optimization_no_patch_scan(mocker): - model = MockModel() - ri = RunInference(model, seed=42) - # 228: svi_state is None - mocker.patch("jax.jit", side_effect=lambda x: x) - mock_svi = mocker.Mock() - # Use jnp array instead of string for state - state = jnp.array([0.0]) - mock_svi.init.return_value = state - mock_svi.update.return_value = (state, 1.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - - # 236-241: scan_fn - # Don't patch lax.scan, let it run - # 228: Call jitter - ri.run_optimization(mock_svi, max_num_epochs=2, convergence_check_interval=1, checkpoint_interval=1, init_params={"p": jnp.array(1.0)}) - assert len(ri._loss_deque) > 0 - -def test_run_optimization_svi_state_types(tmpdir, mocker): - model = MockModel() - ri = RunInference(model, seed=42) - mocker.patch("jax.jit", side_effect=lambda x: x) - mock_svi = mocker.Mock() - mock_svi.init.return_value = jnp.array([0.0]) - mock_svi.update.return_value = (jnp.array([0.0]), 1.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - - # 269: Passing a non-string, non-None state - ri.run_optimization(mock_svi, svi_state=jnp.array([1.0]), max_num_epochs=1) - - # 265-266: Passing an invalid string - with pytest.raises(ValueError, match="is not valid"): - ri.run_optimization(mock_svi, svi_state="invalid_path_to_svi_state", max_num_epochs=1) - -def test_run_optimization_convergence(mocker): - model = MockModel() - ri = RunInference(model, seed=42) - - mocker.patch("jax.jit", side_effect=lambda x: x) - # Return losses that decrease and then stabilize - losses = np.concatenate([np.linspace(100, 10, 50), np.ones(50) * 10]) - mocker.patch("jax.lax.scan", return_value=("state", jnp.array(losses))) - - mock_svi = mocker.Mock() - mock_svi.init.return_value = "state" - mock_svi.update.return_value = ("state", 10.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - - state, params, converged = ri.run_optimization( - mock_svi, - max_num_epochs=100, - convergence_check_interval=1, - checkpoint_interval=1, - convergence_tolerance=1e-1, - convergence_window=1, - patience=1 - ) - # It might not converge in exactly this setup due to how scan returns, - # but it covers the logic in _update_loss_deque and _check_convergence - assert converged in [True, False] - -def test_run_optimization_nan_explosion(mocker): - model = MockModel() - ri = RunInference(model, seed=42) - - mocker.patch("jax.jit", side_effect=lambda x: x) - mocker.patch("jax.lax.scan", return_value=("state", jnp.array([1.0]))) - - mock_svi = mocker.Mock() - mock_svi.init.return_value = "state" - mock_svi.get_params.return_value = {"p": jnp.array(np.nan)} - - with pytest.raises(RuntimeError, match="model exploded"): - ri.run_optimization(mock_svi, max_num_epochs=1, convergence_check_interval=1, checkpoint_interval=1) - # ============================================================================= # get_posteriors — real model + component guide, no Predictive mocking # ============================================================================= @@ -424,32 +314,6 @@ def test_concat_genotype_chunks_negative_axis(): np.testing.assert_array_equal(merged, expected) -def test_run_optimization_restore(tmpdir, mocker): - model = MockModel() - ri = RunInference(model, seed=42) - out_prefix = os.path.join(tmpdir, "test_restore") - - # Create a valid checkpoint - state = SVIState(None, None, None) if ri.get_key().size > 0 else SVIState(None, None) - try: - state = SVIState(None, None, None) - except: - state = SVIState(None, None) - - ri._write_checkpoint(state, out_prefix) - checkpoint_file = f"{out_prefix}_checkpoint.pkl" - - mocker.patch("jax.jit", side_effect=lambda x: x) - mocker.patch("jax.lax.scan", return_value=(state, jnp.array([1.0]))) - - mock_svi = mocker.Mock() - mock_svi.init.return_value = state - mock_svi.update.return_value = (state, 1.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - - # Run with checkpoint path - ri.run_optimization(mock_svi, svi_state=checkpoint_file, max_num_epochs=1, convergence_check_interval=1, checkpoint_interval=1) - def test_write_params(tmpdir): model = MockModel() ri = RunInference(model, seed=42) @@ -482,7 +346,7 @@ def test_write_losses_txt_has_header(tmpdir): assert os.path.exists(txt_path) with open(txt_path) as fh: first_line = fh.readline().strip() - assert first_line == "epoch,loss,relative_change" + assert first_line == "epoch,loss,step,step_size" def test_write_losses_txt_format(tmpdir): @@ -495,107 +359,19 @@ def test_write_losses_txt_format(tmpdir): # Simulate one interval having completed ri._current_step = ri._iterations_per_epoch # epoch 1 - ri._relative_change = 0.123 - ri._write_losses(np.array([42.0, 43.0]), out_prefix) + ri._step_size = 1e-3 + ri._write_losses(np.array([42.0, 43.0, 50.0]), out_prefix) with open(f"{out_prefix}_losses.txt") as fh: lines = [l.strip() for l in fh if l.strip()] - assert lines[0] == "epoch,loss,relative_change" - # Second line: epoch=1, loss=last value (43.0), relative_change=0.123 + assert lines[0] == "epoch,loss,step,step_size" + # Second line: epoch=1, loss=median of the block (43.0), step, step size parts = lines[1].split(",") assert int(parts[0]) == 1 assert float(parts[1]) == pytest.approx(43.0) - assert float(parts[2]) == pytest.approx(0.123) - - -def test_update_loss_deque_all_constant(): - """Constant losses produce relative_change=0 via zero numerator.""" - model = MockModel() - ri = RunInference(model, seed=42) - from collections import deque - ri._loss_deque = deque(maxlen=200) - ri._update_loss_deque(np.ones(200)) - assert ri._relative_change == 0.0 - - -def test_update_loss_deque_uses_total_improvement(): - """Metric is normalized by total improvement, not current loss magnitude.""" - model = MockModel() - ri = RunInference(model, seed=42) - from collections import deque - - # Deque of size 4; warm-up: old_half=[100,90], new_half=[80,70] - ri._loss_deque = deque(maxlen=4) - ri._update_loss_deque([100.0, 90.0, 80.0, 70.0]) - - # loss_start = mean([100,90]) = 95; loss_best = mean([80,70]) = 75 - # denom = |95 - 75| = 20; numerator = |95 - 75| = 20 → metric = 1.0 - assert ri._loss_start == pytest.approx(95.0) - assert ri._loss_best == pytest.approx(75.0) - assert ri._relative_change == pytest.approx(1.0) - - -def test_update_loss_deque_sign_change(): - """Metric is robust when the loss function crosses zero.""" - model = MockModel() - ri = RunInference(model, seed=42) - from collections import deque - - ri._loss_deque = deque(maxlen=4) - ri._update_loss_deque([10.0, 5.0, -5.0, -10.0]) - - # loss_start = 7.5; loss_best = -7.5; denom = 15; metric = 15/15 = 1.0 - assert ri._relative_change == pytest.approx(1.0) - assert ri._loss_start == pytest.approx(7.5) - assert ri._loss_best == pytest.approx(-7.5) - - -def test_update_loss_deque_loss_start_fixed_after_first_check(): - """loss_start is captured once at the end of warm-up and never updated.""" - model = MockModel() - ri = RunInference(model, seed=42) - from collections import deque - - ri._loss_deque = deque(maxlen=4) - ri._update_loss_deque([100.0, 90.0, 80.0, 70.0]) - first_loss_start = ri._loss_start - - ri._update_loss_deque([60.0, 50.0]) - assert ri._loss_start == first_loss_start - - -def test_update_loss_deque_warmup_returns_inf(): - """Returns inf while the deque is not yet full.""" - model = MockModel() - ri = RunInference(model, seed=42) - from collections import deque - ri._loss_deque = deque(maxlen=10) - ri._update_loss_deque([1.0, 2.0, 3.0]) - assert ri._relative_change == np.inf - - -def test_loss_state_reset_at_run_start(mocker): - """_loss_start and _loss_best are reset each time run_optimization begins.""" - model = MockModel() - ri = RunInference(model, seed=42) - - # Simulate stale state from a previous run - ri._loss_start = 999.0 - ri._loss_best = -999.0 - - mocker.patch("jax.jit", side_effect=lambda x: x) - mocker.patch("jax.lax.scan", return_value=("state", jnp.array([1.0]))) - mock_svi = mocker.Mock() - mock_svi.init.return_value = "state" - mock_svi.update.return_value = ("state", 1.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - - ri.run_optimization(mock_svi, max_num_epochs=1, - convergence_check_interval=1, checkpoint_interval=1) - - # After the run resets state, _loss_start must not retain the stale value - assert ri._loss_start != 999.0 + assert int(parts[2]) == ri._iterations_per_epoch + assert float(parts[3]) == pytest.approx(1e-3) def test_get_site_names(mocker): @@ -812,77 +588,6 @@ def test_restore_checkpoint_current_step(tmpdir): assert isinstance(restored, SVIState) -def test_checkpoint_round_trips_convergence_state(tmpdir): - """_write_checkpoint saves loss_start/loss_best; _restore_checkpoint loads them.""" - model = MockModel() - ri = RunInference(model, seed=42) - out_prefix = os.path.join(tmpdir, "test_conv") - - ri._loss_start = -12345.0 - ri._loss_best = -99999.0 - - try: - state = SVIState(None, None, None) - except Exception: - state = SVIState(None, None) - - ri._write_checkpoint(state, out_prefix) - - # Fresh instance simulates a restart - ri2 = RunInference(model, seed=0) - assert ri2._loss_start is None - assert ri2._loss_best == np.inf - - ri2._restore_checkpoint(f"{out_prefix}_checkpoint.pkl") - assert ri2._loss_start == pytest.approx(-12345.0) - assert ri2._loss_best == pytest.approx(-99999.0) - - -def test_checkpoint_missing_convergence_state_uses_defaults(tmpdir): - """Old checkpoints without loss_start/loss_best leave defaults intact.""" - model = MockModel() - ri = RunInference(model, seed=42) - out_prefix = os.path.join(tmpdir, "test_old") - - try: - state = SVIState(None, None, None) - except Exception: - state = SVIState(None, None) - - import dill as _dill - checkpoint_file = f"{out_prefix}_checkpoint.pkl" - with open(checkpoint_file, "wb") as f: - _dill.dump({'svi_state': state, 'main_key': ri._main_key}, f) - - ri._restore_checkpoint(checkpoint_file) - assert ri._loss_start is None # default — not present in old checkpoint - assert ri._loss_best == np.inf # default - -def test_run_optimization_1d_block_idx(mocker): - """1D block_idx is reshaped to 2D before passing to fast_scan.""" - - class MockModel1D(MockModel): - def get_random_idx(self, key=None, num_batches=1): - # Always return a 1D array regardless of num_batches - return np.array([0]) - - model = MockModel1D() - ri = RunInference(model, seed=42) - - mocker.patch("jax.jit", side_effect=lambda x: x) - mocker.patch("jax.lax.scan", return_value=("state", jnp.array([1.0]))) - - mock_svi = mocker.Mock() - mock_svi.init.return_value = "state" - mock_svi.update.return_value = ("state", 1.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - - # Should not raise; the reshape path is exercised - ri.run_optimization(mock_svi, max_num_epochs=1, - convergence_check_interval=1, - checkpoint_interval=1) - - # ============================================================================= # _map_params_to_constrained # ============================================================================= @@ -1551,173 +1256,3 @@ def test_write_epoch_checkpoint_atomic_no_tmp_left(tmpdir): tmp_path = os.path.join(ri._epoch_checkpoints_dir, "0000003_checkpoint.pkl.tmp") assert not os.path.exists(tmp_path) - - -# ============================================================================= -# run_optimization — epoch checkpoint integration -# ============================================================================= - -def _optimization_mocks(mocker): - """Shared mock setup for run_optimization epoch checkpoint tests.""" - mocker.patch("jax.jit", side_effect=lambda x: x) - mocker.patch("jax.lax.scan", return_value=("state", jnp.array([1.0]))) - mock_svi = mocker.Mock() - mock_svi.init.return_value = "state" - mock_svi.update.return_value = ("state", 1.0) - mock_svi.get_params.return_value = {"p": jnp.array(1.0)} - return mock_svi - - -def test_run_optimization_epoch_checkpoint_creates_dir(tmpdir, mocker): - """A checkpoints/ directory is created next to out_prefix when interval is set.""" - model = MockModel() - ri = RunInference(model, seed=42) - mock_svi = _optimization_mocks(mocker) - out_prefix = os.path.join(str(tmpdir), "myrun") - - ri.run_optimization( - mock_svi, - out_prefix=out_prefix, - max_num_epochs=1, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=1, - ) - - assert os.path.isdir(os.path.join(str(tmpdir), "checkpoints")) - - -def test_run_optimization_epoch_checkpoint_file_written(tmpdir, mocker): - """An epoch checkpoint file is written after the first epoch.""" - model = MockModel() - ri = RunInference(model, seed=42) - mock_svi = _optimization_mocks(mocker) - out_prefix = os.path.join(str(tmpdir), "myrun") - - ri.run_optimization( - mock_svi, - out_prefix=out_prefix, - max_num_epochs=1, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=1, - ) - - checkpoints_dir = os.path.join(str(tmpdir), "checkpoints") - pkl_files = [f for f in os.listdir(checkpoints_dir) if f.endswith(".pkl")] - assert len(pkl_files) >= 1 - - -def test_run_optimization_epoch_checkpoint_correct_epoch_number(tmpdir, mocker): - """The epoch number in the filename matches step // iterations_per_epoch.""" - model = MockModel() - ri = RunInference(model, seed=42) - mock_svi = _optimization_mocks(mocker) - out_prefix = os.path.join(str(tmpdir), "myrun") - - ri.run_optimization( - mock_svi, - out_prefix=out_prefix, - max_num_epochs=2, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=1, - ) - - checkpoints_dir = os.path.join(str(tmpdir), "checkpoints") - # MockModel: num_genotype=10, batch=1 → _iterations_per_epoch=10. - # After epoch 1: step=10, epoch=1 → 0000001_checkpoint.pkl - assert os.path.exists(os.path.join(checkpoints_dir, "0000001_checkpoint.pkl")) - - -def test_run_optimization_epoch_checkpoint_disabled_when_none(tmpdir, mocker): - """No epoch checkpoints dir is created when epoch_checkpoint_interval=None.""" - model = MockModel() - ri = RunInference(model, seed=42) - mock_svi = _optimization_mocks(mocker) - out_prefix = os.path.join(str(tmpdir), "myrun") - - ri.run_optimization( - mock_svi, - out_prefix=out_prefix, - max_num_epochs=2, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=None, - ) - - assert not os.path.isdir(os.path.join(str(tmpdir), "checkpoints")) - - -def test_run_optimization_epoch_checkpoint_disabled_when_zero(tmpdir, mocker): - """No epoch checkpoints are written when epoch_checkpoint_interval=0.""" - model = MockModel() - ri = RunInference(model, seed=42) - mock_svi = _optimization_mocks(mocker) - out_prefix = os.path.join(str(tmpdir), "myrun") - - ri.run_optimization( - mock_svi, - out_prefix=out_prefix, - max_num_epochs=2, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=0, - ) - - assert not os.path.isdir(os.path.join(str(tmpdir), "checkpoints")) - - -def test_run_optimization_epoch_checkpoint_file_exists_error(tmpdir, mocker): - """FileExistsError propagates when an epoch checkpoint already exists.""" - model = MockModel() - ri = RunInference(model, seed=42) - mock_svi = _optimization_mocks(mocker) - out_prefix = os.path.join(str(tmpdir), "myrun") - - ri.run_optimization( - mock_svi, - out_prefix=out_prefix, - max_num_epochs=1, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=1, - ) - - # A second run pointing at the same checkpoints/ directory must raise. - ri2 = RunInference(MockModel(), seed=7) - mock_svi2 = mocker.Mock() - mock_svi2.init.return_value = "state" - mock_svi2.update.return_value = ("state", 1.0) - mock_svi2.get_params.return_value = {"p": jnp.array(1.0)} - - with pytest.raises(FileExistsError, match="checkpoint.pkl"): - ri2.run_optimization( - mock_svi2, - out_prefix=out_prefix, - max_num_epochs=1, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=1, - ) - - -def test_run_optimization_epoch_checkpoint_dir_alongside_out_prefix(tmpdir, mocker): - """checkpoints/ is placed in the same directory as out_prefix, not the cwd.""" - subdir = tmpdir.mkdir("subdir") - model = MockModel() - ri = RunInference(model, seed=42) - mock_svi = _optimization_mocks(mocker) - out_prefix = os.path.join(str(subdir), "run") - - ri.run_optimization( - mock_svi, - out_prefix=out_prefix, - max_num_epochs=1, - convergence_check_interval=1, - checkpoint_interval=1, - epoch_checkpoint_interval=1, - ) - - assert os.path.isdir(os.path.join(str(subdir), "checkpoints")) - assert not os.path.isdir(os.path.join(str(tmpdir), "checkpoints")) diff --git a/tests/tfscreen/tfmodel/inference/test_run_optimization.py b/tests/tfscreen/tfmodel/inference/test_run_optimization.py new file mode 100644 index 00000000..8dbfa0ed --- /dev/null +++ b/tests/tfscreen/tfmodel/inference/test_run_optimization.py @@ -0,0 +1,400 @@ +""" +RunInference.run_optimization end to end on a small real model: windows, +step-size cuts, convergence, checkpoints/resume, output files, and the +parameter normalizers for each guide family. +""" + +import os + +import dill +import numpy as np +import pytest +import jax.numpy as jnp +import numpyro +import numpyro.distributions as dist +import optax +from flax import struct +from numpyro import handlers + +from tfscreen.tfmodel.inference.run_inference import RunInference + +NUM_GENOTYPE = 12 +NUM_OBS = 6 + + +@pytest.fixture(autouse=True) +def _run_in_tmp_path(tmp_path, monkeypatch): + monkeypatch.chdir(tmp_path) + + +@struct.dataclass +class ToyData: + batch_idx: jnp.ndarray + y: jnp.ndarray + num_genotype: int = struct.field(pytree_node=False, default=NUM_GENOTYPE) + + +def toy_model(priors, data): + mu = numpyro.sample("mu", dist.Normal(0.0, 10.0)) + sigma = numpyro.sample("sigma", dist.HalfNormal(1.0)) + with numpyro.plate("toy_genotype_plate", data.num_genotype): + theta = numpyro.sample("theta", dist.Normal(mu, 1.0)) + theta = theta[..., data.batch_idx] + y = data.y[data.batch_idx] + batch = data.batch_idx.shape[0] + with handlers.scale(scale=data.num_genotype / batch): + with numpyro.plate("toy_obs_plate", batch): + numpyro.sample("y", dist.Normal(theta[:, None], sigma).to_event(1), + obs=y) + + +def toy_guide(priors, data): + mu_loc = numpyro.param("mu_loc", 0.0) + mu_scale = numpyro.param("mu_scale", 1.0, + constraint=dist.constraints.positive) + numpyro.sample("mu", dist.Normal(mu_loc, mu_scale)) + sigma_loc = numpyro.param("sigma_loc", 0.0) + sigma_scale = numpyro.param("sigma_scale", 1.0, + constraint=dist.constraints.positive) + numpyro.sample("sigma", dist.LogNormal(sigma_loc, sigma_scale)) + theta_locs = numpyro.param("theta_locs", jnp.zeros(data.num_genotype)) + theta_scales = numpyro.param("theta_scales", jnp.ones(data.num_genotype), + constraint=dist.constraints.positive) + with numpyro.plate("toy_genotype_plate", data.num_genotype): + numpyro.sample("theta", dist.Normal(theta_locs, theta_scales)) + + +class ToyModel: + """RunInference-compatible wrapper around toy_model/toy_guide.""" + + def __init__(self, batch_size=None, seed=0): + rng = np.random.default_rng(seed) + theta = 3.0 + rng.normal(size=NUM_GENOTYPE) + y = theta[:, None] + 0.5 * rng.normal(size=(NUM_GENOTYPE, NUM_OBS)) + self.data = ToyData(batch_idx=jnp.arange(NUM_GENOTYPE), + y=jnp.asarray(y)) + self.priors = {} + self.jax_model = toy_model + self.jax_model_guide = toy_guide + self.init_params = {} + self._batch = batch_size or NUM_GENOTYPE + + def get_batch(self, data, idx): + return data.replace(batch_idx=jnp.asarray(idx)) + + def get_random_idx(self, batch_key=None, num_batches=1): + if batch_key is not None: + self._rng = np.random.default_rng(batch_key) + if not hasattr(self, "_rng"): + self._rng = np.random.default_rng(0) + idx = np.stack([self._rng.permutation(NUM_GENOTYPE)[:self._batch] + for _ in range(num_batches)]) + return idx[0] if num_batches == 1 else idx + + +def _optimizer_step_size(svi): + """Adam's first step from a fresh state moves each parameter by exactly + the step size, whatever the gradient.""" + params = {"x": jnp.zeros(1)} + state = svi.optim.init(params) + state = svi.optim.update({"x": jnp.array([0.3])}, state) + return abs(float(svi.optim.get_params(state)["x"][0])) + + +def _fit(ri, svi, out_prefix="toy", **kwargs): + opts = dict(convergence_window_steps=400, patience=2, + max_num_epochs=40000, epoch_checkpoint_interval=None, + checkpoint_interval=100) + opts.update(kwargs) + return ri.run_optimization(svi, out_prefix=out_prefix, **opts) + + +# ----------------------------------------------------------------------------- +# Convergence and step-size cuts +# ----------------------------------------------------------------------------- + +def test_component_svi_converges_through_cuts(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + state, params, converged = _fit(ri, svi, final_step_size=1e-4) + + assert converged + assert ri._monitor.num_cuts == 2 + assert ri._monitor.step_size == pytest.approx(1e-4) + # the optimizer really runs at the final step size + assert _optimizer_step_size(svi) == pytest.approx(1e-4, rel=1e-3) + # sensible posterior: mu near the mean of the theta estimates + assert float(params["mu_loc"]) == pytest.approx( + float(np.mean(params["theta_locs"])), abs=0.5) + + # convergence.csv: a row per window, ending in "converged" + with open("toy_convergence.csv") as f: + rows = [line.strip().split(",") for line in f] + header, rows = rows[0], rows[1:] + assert header[0] == "step" and "decision" in header + decisions = [r[header.index("decision")] for r in rows] + assert decisions.count("cut") == 2 + assert decisions[-1] == "converged" + + with open("toy_losses.txt") as f: + assert f.readline().strip() == "epoch,loss,step,step_size" + + +def test_minibatched_svi_converges(): + model = ToyModel(batch_size=4) + ri = RunInference(model, seed=1) + assert ri._iterations_per_epoch == 3 + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _, _, converged = _fit(ri, svi, final_step_size=1e-4) + assert converged + + +def test_map_converges_and_uses_prior_sds(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="delta") + _, params, converged = _fit(ri, svi, final_step_size=1e-4) + assert converged + assert "mu_auto_loc" in params + + +def test_max_epochs_reports_not_converged(capsys): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=1e-3, guide_type="component") + _, _, converged = _fit(ri, svi, final_step_size=1e-6, max_num_epochs=500) + assert not converged + assert "without converging" in capsys.readouterr().out + + +def test_no_final_step_size_keeps_step_size(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _, _, converged = _fit(ri, svi) + assert converged + assert ri._monitor.num_cuts == 0 + + +def test_schedule_with_cuts_is_refused(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=optax.constant_schedule(1e-3), + guide_type="component") + with pytest.raises(ValueError, match="constant step"): + _fit(ri, svi, final_step_size=1e-6) + + +def test_schedule_without_cuts_runs(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=optax.constant_schedule(1e-2), + guide_type="component") + _fit(ri, svi, max_num_epochs=1000) + + +# ----------------------------------------------------------------------------- +# Resume, step counter, checkpoints +# ----------------------------------------------------------------------------- + +def test_resume_continues_stage_and_step(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri, svi, final_step_size=1e-5, max_num_epochs=6000, + checkpoint_interval=10) + saved_step = ri._current_step + saved_step_size = ri._monitor.step_size + assert saved_step_size < 1e-2 # at least one cut happened + + with open("toy_checkpoint.pkl", "rb") as f: + ckpt = dill.load(f) + assert ckpt["step_size"] == pytest.approx(saved_step_size) + assert ckpt["convergence"]["step_size"] == pytest.approx(saved_step_size) + rows_before = sum(1 for _ in open("toy_convergence.csv")) + + ri2 = RunInference(ToyModel(), seed=0) + svi2 = ri2.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri2, svi2, svi_state="toy_checkpoint.pkl", final_step_size=1e-5, + max_num_epochs=400) + assert ri2._current_step == saved_step + 400 + assert _optimizer_step_size(svi2) <= saved_step_size * (1 + 1e-3) + # resumed runs append to the convergence record + assert sum(1 for _ in open("toy_convergence.csv")) > rows_before + + +def test_resume_old_checkpoint_without_convergence_state(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri, svi, max_num_epochs=50) + with open("toy_checkpoint.pkl", "rb") as f: + ckpt = dill.load(f) + del ckpt["convergence"], ckpt["step_size"] + ckpt["loss_start"], ckpt["loss_best"] = 1.0, 0.5 + with open("old_checkpoint.pkl", "wb") as f: + dill.dump(ckpt, f) + + ri2 = RunInference(ToyModel(), seed=0) + svi2 = ri2.setup_svi(adam_step_size=1e-3, guide_type="component") + _fit(ri2, svi2, svi_state="old_checkpoint.pkl", max_num_epochs=50) + assert ri2._monitor.step_size == pytest.approx(1e-3) + + +def test_fresh_run_resets_step_counter(): + """A pre-MAP followed by SVI on the same RunInference: SVI's counters, + loss file and epoch checkpoints start at zero.""" + model = ToyModel() + ri = RunInference(model, seed=0) + ri._current_step = 777 + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri, svi, max_num_epochs=100) + assert ri._current_step == 100 + with open("toy_losses.txt") as f: + lines = f.read().splitlines() + assert lines[0] == "epoch,loss,step,step_size" + assert int(lines[1].split(",")[2]) < 100 + + +def test_invalid_checkpoint_path(): + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(guide_type="component") + with pytest.raises(ValueError, match="is not valid"): + _fit(ri, svi, svi_state="missing.pkl", max_num_epochs=1) + + +def test_nan_explosion(): + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + with pytest.raises(RuntimeError, match="model exploded"): + _fit(ri, svi, init_params={"mu_loc": jnp.array(np.nan)}, + init_param_jitter=0.0, max_num_epochs=50) + + +def test_epoch_checkpoints(tmp_path): + sub = tmp_path / "sub" + sub.mkdir() + prefix = str(sub / "run") + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri, svi, out_prefix=prefix, max_num_epochs=100, + epoch_checkpoint_interval=50) + ckpt_dir = sub / "checkpoints" + assert ckpt_dir.is_dir() + assert not (tmp_path / "checkpoints").exists() + names = sorted(os.listdir(ckpt_dir)) + assert "0000050_checkpoint.pkl" in names + + ri2 = RunInference(ToyModel(), seed=1) + svi2 = ri2.setup_svi(adam_step_size=1e-2, guide_type="component") + with pytest.raises(FileExistsError, match="checkpoint.pkl"): + _fit(ri2, svi2, out_prefix=prefix, max_num_epochs=100, + epoch_checkpoint_interval=50) + + +@pytest.mark.parametrize("interval", [None, 0]) +def test_epoch_checkpoints_disabled(interval): + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri, svi, max_num_epochs=60, epoch_checkpoint_interval=interval) + assert not os.path.isdir("checkpoints") + + +# ----------------------------------------------------------------------------- +# Parameter normalizers +# ----------------------------------------------------------------------------- + +def _specs(guide_type, **guide_kwargs): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(guide_type=guide_type, guide_kwargs=guide_kwargs) + idx = model.get_random_idx() + state = svi.init(ri.get_key(), priors=model.priors, + data=model.get_batch(model.data, idx)) + unconstrained = svi.optim.get_params(state.optim_state) + specs = ri._param_normalizer_specs(svi, state, unconstrained) + return ri, svi, state, specs + + +def test_normalizers_component_guide(): + _, _, _, specs = _specs("component") + assert specs["theta_locs"] == ("scale", "theta_scales") + assert specs["mu_loc"] == ("scale", "mu_scale") + # LogNormal location (log space) paired with its log-space scale + assert specs["sigma_loc"] == ("scale", "sigma_scale") + assert specs["theta_scales"] == ("unit",) + + +def test_normalizers_auto_normal(): + _, _, _, specs = _specs("auto_normal") + assert specs["theta_auto_loc"] == ("scale", "theta_auto_scale") + assert specs["theta_auto_scale"] == ("unit",) + + +def test_normalizers_delta_use_prior_sd(): + _, _, _, specs = _specs("delta") + kind, sd = specs["mu_auto_loc"] + assert kind == "prior" + assert float(sd) == pytest.approx(10.0) + assert specs["theta_auto_loc"][0] == "prior" + # positive site: tracked in log units + assert specs["sigma_auto_loc"] == ("unit",) + + +@pytest.mark.parametrize("guide_type,kwargs", [ + ("auto_diagonal_normal", {}), + ("auto_multivariate_normal", {}), + ("auto_low_rank_multivariate_normal", {"rank": 2}), +]) +def test_normalizers_auto_continuous(guide_type, kwargs): + ri, svi, state, specs = _specs(guide_type, **kwargs) + assert specs["auto_loc"] == ("auto_continuous",) + assert not any("scale_tril" in k or "cov_factor" in k for k in specs) + norm = ri._normalizer(specs["auto_loc"], svi.get_params(state)) + assert norm.shape == (NUM_GENOTYPE + 2,) + assert np.all(np.asarray(norm) > 0) + + +# ----------------------------------------------------------------------------- +# Starting points +# ----------------------------------------------------------------------------- + +def test_site_values_and_component_guide_start(): + model = ToyModel() + ri = RunInference(model, seed=0) + guesses = {"mu": 2.5, "theta": np.full(NUM_GENOTYPE, 1.5), + "sigma_loc": np.log(0.7)} + values = ri.site_values(guesses) + assert float(values["mu"]) == pytest.approx(2.5) + assert float(values["sigma"]) == pytest.approx(0.7) # exp of guide loc + assert values["theta"].shape == (NUM_GENOTYPE,) + + start = ri.component_guide_start(values, guesses=guesses, init_scale=0.1) + assert float(start["mu_loc"]) == pytest.approx(2.5) + assert float(start["sigma_loc"]) == pytest.approx(np.log(0.7)) + np.testing.assert_allclose(start["theta_locs"], 1.5) + np.testing.assert_allclose(start["theta_scales"], 0.1) + assert float(start["mu_scale"]) == pytest.approx(0.1) + + +def test_site_values_from_map_result(): + model = ToyModel() + ri = RunInference(model, seed=0) + values = ri.site_values({"mu_auto_loc": 4.0, "mu": 1.0, + "unknown_auto_loc": 3.0}) + assert float(values["mu"]) == pytest.approx(4.0) # MAP key wins + assert "unknown" not in values + + +def test_delta_init_values_start_the_map(): + model = ToyModel() + ri = RunInference(model, seed=0) + svi = ri.setup_svi(guide_type="delta", init_values={"mu": 7.0}) + state = svi.init(ri.get_key(), priors=model.priors, + data=model.get_batch(model.data, model.get_random_idx())) + params = svi.get_params(state) + assert float(params["mu_auto_loc"]) == pytest.approx(7.0) + # sites without a value fall back to the prior median (as AutoDelta + # does), here given the substituted mu + assert float(params["theta_auto_loc"][0]) == pytest.approx(7.0, abs=1.0) diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py index aaeba58b..9b0138ba 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py @@ -270,28 +270,114 @@ def test_guide_options_resolved_and_forwarded(self, mocker): assert kwargs["guide_type"] == "auto_low_rank_multivariate_normal" assert kwargs["guide_kwargs"] == {"rank": 4, "init_scale": 0.05} + @staticmethod + def _patch_ri(mocker, guesses=None): + """RunInference whose site_values strips ``_auto_loc`` (like the + real one does for a MAP result) and keeps site-keyed values.""" + ri = MagicMock(_iterations_per_epoch=1) + ri.site_values.side_effect = lambda values: { + (k[:-len("_auto_loc")] if k.endswith("_auto_loc") else k): v + for k, v in values.items()} + mocker.patch(f"{_CLI}.RunInference", return_value=ri) + mocker.patch(f"{_CLI}.read_configuration", + return_value=(MagicMock(), dict(guesses or {}))) + return ri + def test_autoguide_starts_from_premap_solution(self, mocker): _patch_common(mocker) + self._patch_ri(mocker, guesses={"dk_geno_offset": jnp.zeros(3)}) map_params = {"dk_geno_offset_auto_loc": jnp.ones(3), "theta_hyper_auto_loc": jnp.array(2.0)} - mocker.patch(f"{_CLI}._run_map", - return_value=(MagicMock(), map_params, True)) + run_map_mock = mocker.patch(f"{_CLI}._run_map", + return_value=(MagicMock(), map_params, + True)) run_svi_mock = self._patch_run_svi(mocker) fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=5, guide_type="auto_normal") + # the pre-MAP starts from the guesses + premap = run_map_mock.call_args.kwargs + assert set(premap["init_values"]) == {"dk_geno_offset"} + assert premap["max_num_epochs"] == 5 init_values = run_svi_mock.call_args.kwargs["init_values"] assert set(init_values) == {"dk_geno_offset", "theta_hyper"} assert float(init_values["theta_hyper"]) == 2.0 + # the MAP value replaces the guess + assert float(init_values["dk_geno_offset"][0]) == 1.0 def test_autoguide_without_premap_starts_from_guesses(self, mocker): _patch_common(mocker) - guesses = {"dk_geno_offset": jnp.zeros(3)} - mocker.patch(f"{_CLI}.read_configuration", - return_value=(MagicMock(), guesses)) + self._patch_ri(mocker, guesses={"dk_geno_offset": jnp.zeros(3)}) run_svi_mock = self._patch_run_svi(mocker) fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=0, guide_type="auto_normal") - assert set(run_svi_mock.call_args.kwargs["init_values"]) == {"dk_geno_offset"} + kwargs = run_svi_mock.call_args.kwargs + assert set(kwargs["init_values"]) == {"dk_geno_offset"} + assert kwargs["init_params"] is None + + @pytest.mark.parametrize("scale,expected", [(None, 0.1), (0.02, 0.02)]) + def test_component_guide_starts_from_premap(self, mocker, scale, + expected): + _patch_common(mocker) + guesses = {"dk_geno_offset": jnp.zeros(3)} + ri = self._patch_ri(mocker, guesses=guesses) + ri.component_guide_start.return_value = {"dk_geno_offset_locs": 1} + mocker.patch(f"{_CLI}._run_map", + return_value=(MagicMock(), + {"dk_geno_offset_auto_loc": jnp.ones(3)}, + True)) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=5, + guide_init_scale=scale) + args = ri.component_guide_start.call_args + assert float(args.args[0]["dk_geno_offset"][0]) == 1.0 + assert args.kwargs["guesses"] == guesses + assert args.kwargs["init_scale"] == expected + kwargs = run_svi_mock.call_args.kwargs + assert kwargs["init_params"] == {"dk_geno_offset_locs": 1} + assert kwargs["init_values"] is None + assert kwargs["guide_kwargs"] == {} + + def test_map_starts_from_guesses(self, mocker): + _patch_common(mocker) + self._patch_ri(mocker, guesses={"mu": 1.0}) + run_map_mock = mocker.patch(f"{_CLI}._run_map", + return_value=(MagicMock(), {}, True)) + fit_model(config_file="dummy.yaml", seed=1, analysis_method="map") + assert run_map_mock.call_args.kwargs["init_values"] == {"mu": 1.0} + + def test_resume_skips_start_translation(self, tmp_path, mocker): + ckpt = tmp_path / "ckpt.pkl" + with open(ckpt, "wb") as f: + dill.dump({"guide_type": "component"}, f) + _patch_common(mocker) + ri = self._patch_ri(mocker) + run_map_mock = mocker.patch(f"{_CLI}._run_map") + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", checkpoint_file=str(ckpt)) + run_map_mock.assert_not_called() + ri.site_values.assert_not_called() + assert run_svi_mock.call_args.kwargs["checkpoint_file"] == str(ckpt) + + def test_convergence_options_forwarded(self, mocker): + _patch_common(mocker) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=0, + convergence_window_steps=500, patience=4, + convergence_z=2.5, loss_rtol=1e-7, param_tolerance=0.1, + adam_final_step_size=1e-5, adam_step_size_cut=0.5) + kwargs = run_svi_mock.call_args.kwargs + assert kwargs["convergence_window_steps"] == 500 + assert kwargs["patience"] == 4 + assert kwargs["convergence_z"] == 2.5 + assert kwargs["loss_rtol"] == 1e-7 + assert kwargs["param_tolerance"] == 0.1 + assert kwargs["final_step_size"] == 1e-5 + assert kwargs["step_size_cut"] == 0.5 + + def test_guide_init_scale_must_be_positive(self, mocker): + _patch_common(mocker) + with pytest.raises(ValueError, match="positive"): + fit_model(config_file="dummy.yaml", seed=1, guide_init_scale=0.0) @pytest.mark.parametrize("method", ["map", "nuts"]) def test_guide_options_rejected_outside_svi(self, method, mocker): diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py index 66740f07..5362f80e 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py @@ -4,6 +4,7 @@ import dill from tfscreen.tfmodel.scripts.fit_model_cli import ( + _optimization_kwargs, _run_svi, _run_map, _run_nuts, @@ -47,7 +48,7 @@ def test_run_svi_flow_converged(mock_run_inference): ri, init_params=None, out_prefix="test_root", - max_num_epochs=500, + **_optimization_kwargs(max_num_epochs=500, patience=4), ) ri.setup_svi.assert_called_once() @@ -57,10 +58,13 @@ def test_run_svi_flow_converged(mock_run_inference): init_params=None, out_prefix="test_root", svi_state=None, - convergence_tolerance=ANY, - convergence_window=ANY, - patience=ANY, - convergence_check_interval=ANY, + convergence_window_steps=2000, + patience=4, + convergence_z=ANY, + loss_rtol=ANY, + param_tolerance=ANY, + final_step_size=1e-6, + step_size_cut=0.1, checkpoint_interval=ANY, max_num_epochs=500, init_param_jitter=ANY, @@ -100,31 +104,25 @@ def test_run_svi_not_converged_stdout(mock_run_inference, capsys): def test_run_map_flow(mock_run_inference): """Test MAP execution flow.""" _, ri = mock_run_inference - init_params = {"p": 10} + init_values = {"p": 10} state, params, converged = _run_map( ri, - init_params=init_params, + init_values=init_values, out_prefix="test_map", max_num_epochs=1000, ) - # 1. Setup MAP + # 1. Setup MAP: an AutoDelta starting at the given site values ri.setup_svi.assert_called_once() + assert ri.setup_svi.call_args.kwargs["guide_type"] == "delta" + assert ri.setup_svi.call_args.kwargs["init_values"] == init_values # 2. Run Optimization ri.run_optimization.assert_called_once_with( "mock_svi_obj", - init_params=init_params, out_prefix="test_map", svi_state=None, - convergence_tolerance=ANY, - convergence_window=ANY, - patience=ANY, - convergence_check_interval=ANY, - checkpoint_interval=ANY, max_num_epochs=1000, - init_param_jitter=ANY, - epoch_checkpoint_interval=ANY ) ri.write_params.assert_called_once_with({"p": 1}, out_prefix="test_map") @@ -136,7 +134,7 @@ def test_run_map_not_converged(mock_run_inference, capsys): """Test MAP not converged message.""" _, ri = mock_run_inference ri.run_optimization.return_value = ("state", {"p": 1}, False) - _run_map(ri, init_params={"p": 1}) + _run_map(ri, init_values={"p": 1}) captured = capsys.readouterr() assert "MAP run converged" not in captured.out assert "MAP run has not yet converged" in captured.out diff --git a/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py b/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py index d2f41e67..c2117bcb 100644 --- a/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_prefit_calibration_cli.py @@ -1514,28 +1514,30 @@ def test_optimizer_kwargs_forwarded(self, tmp_path, mocker): seed=1, adam_step_size=2.5e-3, adam_final_step_size=2.5e-7, + adam_step_size_cut=0.5, adam_clip_norm=2.0, elbo_num_particles=5, - convergence_tolerance=1e-4, - convergence_window=20, + convergence_window_steps=500, patience=4, - convergence_check_interval=3, + convergence_z=2.0, + loss_rtol=1e-8, + param_tolerance=0.1, checkpoint_interval=25, max_num_epochs=500, - init_param_jitter=0.0, ) kwargs = mock_run_map.call_args.kwargs assert kwargs["adam_step_size"] == 2.5e-3 assert kwargs["adam_final_step_size"] == 2.5e-7 + assert kwargs["adam_step_size_cut"] == 0.5 assert kwargs["adam_clip_norm"] == 2.0 assert kwargs["elbo_num_particles"] == 5 - assert kwargs["convergence_tolerance"] == 1e-4 - assert kwargs["convergence_window"] == 20 + assert kwargs["convergence_window_steps"] == 500 assert kwargs["patience"] == 4 - assert kwargs["convergence_check_interval"] == 3 + assert kwargs["convergence_z"] == 2.0 + assert kwargs["loss_rtol"] == 1e-8 + assert kwargs["param_tolerance"] == 0.1 assert kwargs["checkpoint_interval"] == 25 assert kwargs["max_num_epochs"] == 500 - assert kwargs["init_param_jitter"] == 0.0 def test_default_out_prefix_is_prefit(self, tmp_path, mocker): cfg, _, _ = self._write_yaml_and_csvs(tmp_path) @@ -1550,12 +1552,15 @@ def test_custom_out_prefix_is_honored(self, tmp_path, mocker): out_prefix="my_runA") assert mock_run_map.call_args.kwargs["out_prefix"] == "my_runA" - def test_default_init_param_jitter_is_zero(self, tmp_path, mocker): - """Pre-fit should be deterministic given a seed; default jitter is 0.""" + def test_map_starts_from_calibration_guesses(self, tmp_path, mocker): + """The calibration MAP starts from the calibration model's guesses + (as site values), not from AutoDelta's prior medians.""" cfg, _, _ = self._write_yaml_and_csvs(tmp_path) - _, mock_run_map = self._patch_pipeline(mocker) + mock_ri, mock_run_map = self._patch_pipeline(mocker) + mock_ri.site_values.return_value = {"site": 1.0} run_prefit_calibration(config_file=cfg, seed=1) - assert mock_run_map.call_args.kwargs["init_param_jitter"] == 0.0 + mock_ri.site_values.assert_called_once() + assert mock_run_map.call_args.kwargs["init_values"] == {"site": 1.0} def test_hessian_called_after_map(self, tmp_path, mocker): """compute_hessian_sigmas must be called exactly once after MAP.""" From 56045e62e37d4c957d5b0e52a9552c3693938e11 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 13:39:43 -0700 Subject: [PATCH 035/208] Record converged 3.5 fits: transient confirmed, lambda pulled up Resuming anchored runs 0001, 0002 and 0005 to convergence (~70,000 epochs; losses 5.2-5.4e4 vs 1.7-1.9e5 at the old stops) confirms the convergence review: the lambda-0 mixture matches single (growth_k at the truth; bulk theta RMSE 0.131 vs 0.129). Converging halves theta RMSE (0.23 to 0.13) but leaves 95% coverage at 0.55-0.66. Still open on converged fits: lambda is pulled up with tight intervals (0.043 at a true 0; 1.30 at a true 1.0 under a 1.0 +/- 0.05 prior). Also notes in the convergence study that the library enumeration bug behind the 39% wt co-resident pool is fixed (bff2c51), and that these grids used the old enumeration on both sides. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 9 +++ .../README.md | 11 ++- .../studies/congression-calibration/README.md | 69 ++++++++++++++++--- 3 files changed, 78 insertions(+), 11 deletions(-) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 33cefe0a..8196ed1f 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -634,6 +634,15 @@ checked with `tfs-summarize-calibration`. superseded. Next (user): resume anchored runs 0001/0002/0005 to convergence (`resume.srun`); fixing the SVI stop rule and warm-up goes to its own session, since it affects every `tfs-fit-model` fit. + Resumed to convergence (2026-09-25): the lambda-0 mixture matches + `single` (k at the truth, theta RMSE 0.131 vs 0.129), confirming the + transient; converging halves theta RMSE (0.23 to 0.13) but leaves + coverage low (0.55-0.66). Still open on converged fits: lambda pulled + up (0.043 at truth 0; 1.30 at truth 1.0 under a 1.0 +/- 0.05 prior). + The library enumeration bug behind the 39% wt pool is fixed + (bff2c51); new grids simulate the corrected library. Next: converged + `single` at lambda 1 (resume run 0004); then, after the convergence + fix, a lambda profile and the coverage question. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration-convergence/README.md b/planning/studies/congression-calibration-convergence/README.md index 52a9c129..6a25b8d7 100644 --- a/planning/studies/congression-calibration-convergence/README.md +++ b/planning/studies/congression-calibration-convergence/README.md @@ -188,8 +188,15 @@ in tile 2's 37, so each single sub-library gets one wt entry per non-degenerate codon. For example, `single-1` has 30 wt entries plus the 16 NNT codons at site 42. The simulator and the fit share the enumerator, so this is not a sim/fit mismatch. It does make this simulation unrepresentative -of a library whose tiles are fully degenerate. Whether the enumeration is -intended is an open question. +of a library whose tiles are fully degenerate. + +**Resolved 2026-09-25 (bff2c51):** it was a bug. A site is now a codon whose +designed sequence differs from wt. Fully degenerate designs (the real +library, the examples) enumerate as before; this study config goes from +46/67/3082 sequences (30/36/1080 wt) to 16/32/512 (0/1/0 wt), and wt's +co-resident share from 0.39 to 0.003. Every grid in the calibration study +was simulated and fit under the old enumeration (consistently on both +sides); new grids from this config simulate a different library. ### 6. Status of the earlier diagnoses diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 59de42a4..ef1d87cd 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -312,12 +312,63 @@ What stands from the earlier sections: the read-count floor bias (0 reads +1.26 ln) and the binding weight's dominance of the objective, as facts about the data and the objective. Their effect on converged fits is open. -## Next: resume to convergence (resume.srun) - -Route 1 of the review: resume anchored runs 0001 (`single`), 0002 (mixture, -lambda 0) and 0005 (mixture, lambda 1) from their checkpoints, in copies -(`_resumed/`), with the default max_num_epochs, then trace them with -`../congression-calibration-convergence/trace_checkpoints.py`. If the -mixture's k returns to the truth, the transient explanation is confirmed. -Fixing the stop rule and the warm-up is a separate piece of work (general -to `tfs-fit-model`). +## Resumed to convergence (resume.srun, 2026-09-25) + +Anchored runs 0001 (`single`, lambda 0), 0002 (mixture, matched prior, +lambda 0) and 0005 (mixture, matched prior, lambda 1.0), resumed from their +checkpoints for the full default 100,000 epochs. Traced with +`../congression-calibration-convergence/trace_checkpoints.py`: all three +stop moving after ~70,000 epochs, at losses of 5.2e4 to 5.4e4 (1.7e5 to +1.9e5 at the old stops). The resumed stop rule never fired, as expected. + +| growth_k | kanR+kan | kanR-kan | pheS+4CP | pheS-4CP | +|---|---|---|---|---| +| truth | 0.0107 | 0.0154 | 0.0214 | 0.0286 | +| `single`, lambda 0 | 0.0102 | 0.0139 | 0.0212 | 0.0286 | +| mixture, lambda 0 | 0.0109 | 0.0145 | 0.0220 | 0.0294 | +| mixture, lambda 1 | 0.0120 | 0.0170 | 0.0226 | 0.0295 | + +| run | fit | lambda (95%) | k offset | dk offset | bulk theta RMSE | bulk theta 95% coverage | +|---|---|---|---|---|---|---| +| 0001 `single`, lambda 0 | stopped | | -0.0004 | +0.0020 | 0.230 | 0.75 | +| | converged | | -0.0005 | +0.0014 | 0.129 | 0.66 | +| 0002 mixture, lambda 0 | stopped | 0.004 (0.003-0.005) | +0.083 | -0.095 | 0.261 | 0.70 | +| | converged | 0.043 (0.039-0.048) | +0.0002 | +0.0003 | 0.131 | 0.66 | +| 0005 mixture, lambda 1 | stopped | 0.98 (0.92-1.04) | +0.021 | -0.031 | 0.227 | 0.73 | +| | converged | 1.30 (1.29-1.32) | +0.0013 | -0.0029 | 0.173 | 0.55 | + +- **The transient explanation is confirmed.** Converged, the lambda-0 + mixture matches `single` (k, dk_geno, theta RMSE 0.131 vs 0.129). The k + drift, the abandoned wt and the worse theta were artifacts of stopping + early. +- **Converging halves the theta error** (bulk, no binding: 0.23 to 0.13). +- **Coverage got worse** as the guide scales shrank (0.66, and 0.55 for the + lambda-1 mixture): converged mean-field SVI is overconfident here. +- **Lambda is still pulled up, now with tight intervals that exclude the + truth:** 0.043 at a true 0, and 1.30 at a true 1.0 under a 1.0 +/- 0.05 + prior (six prior SDs). Open. +- Growth-noise nu at convergence: 61 (`single`), 28 (mixture lambda 0), + 6.5 (mixture lambda 1). The lambda-1 mixture needs much heavier tails. + +These grids used the library enumeration from before bff2c51 (wt 39% of the +co-resident pool; see the convergence study, result 5). Simulation and fit +shared it, so these comparisons stand; new grids from `simulate_config.yaml` +simulate a different library. + +## Next + +1. `single` on the lambda-1 data, converged (resume anchored run 0004 with + `resume.srun`; no new code needed), to see whether the mixture beats it + where congression is real. + +Items 2 and 3 need new fits, so they wait for the convergence work +(separate session): + +2. Why lambda is pulled up on converged fits: profile lambda (fixed lambda + on a grid, everything else converged) on the lambda-0 and lambda-1 data, + then test candidate causes one at a time (the read-count floor, which + curves dying trajectories the way a mixture does; realized vs design + library composition in the simulator's transformation, including + `lib_assembly_skew_sigma`; the fixed co-resident sets). +3. Coverage: why converged fits are overconfident (guide family, the + binding weight). From a2d344121712f3219760daffd251cd01a29d4743 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 14:04:10 -0700 Subject: [PATCH 036/208] Set up baseline and lambda-profile grids (step 3.5) Record converged single at lambda 1: the mixture beats it on fit (loss 5.40e4 vs 5.59e4) and dk_geno (RMSE 0.0049 vs 0.0105) but not bulk theta (0.173 vs 0.155), with lambda at 1.30 against a true 1.0. New grids on the noise-referenced convergence code (5bf5b78) and the corrected library (bff2c51), with the anchored settings: grid_baseline.yaml (lambda 0 and 1 x single / mixture x 2 seeds, 8 runs) checks that runs stop cleanly and that the converged results hold; grid_profile.yaml holds lambda at 0.6-1.4 on the lambda-1 simulation (5 runs) to see whether the data prefer lambda > 1 and whether theta is recovered at the true lambda. Adds lam_prior "fixed" (lam_fixed) to run.srun. The overhaul removed --convergence_tolerance, which run.srun and resume.srun passed; both now omit it. Restores the study's hill_params.csv (a required input that the c6b75d4 cleanup removed) and narrows the study's .gitignore from *.csv and *.json to the grid-setup strays (grid_summary.json, inputs/). Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 8 ++- .../congression-calibration/.gitignore | 7 ++- .../studies/congression-calibration/README.md | 49 ++++++++++++--- .../grid_baseline.yaml | 53 +++++++++++++++++ .../congression-calibration/grid_profile.yaml | 59 +++++++++++++++++++ .../congression-calibration/hill_params.csv | 5 ++ .../congression-calibration/resume.srun | 8 +-- .../studies/congression-calibration/run.srun | 9 ++- 8 files changed, 178 insertions(+), 20 deletions(-) create mode 100644 planning/studies/congression-calibration/grid_baseline.yaml create mode 100644 planning/studies/congression-calibration/grid_profile.yaml create mode 100644 planning/studies/congression-calibration/hill_params.csv diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 8196ed1f..9c64d28f 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -640,9 +640,11 @@ checked with `tfs-summarize-calibration`. coverage low (0.55-0.66). Still open on converged fits: lambda pulled up (0.043 at truth 0; 1.30 at truth 1.0 under a 1.0 +/- 0.05 prior). The library enumeration bug behind the 39% wt pool is fixed - (bff2c51); new grids simulate the corrected library. Next: converged - `single` at lambda 1 (resume run 0004); then, after the convergence - fix, a lambda profile and the coverage question. + (bff2c51); new grids simulate the corrected library. Converged at + lambda 1, the mixture beats `single` on fit (loss 5.40e4 vs 5.59e4) + and dk_geno (RMSE 0.0049 vs 0.0105) but not theta (0.173 vs 0.155), + with lambda at 1.30. The convergence overhaul (5bf5b78) is in; next: + a lambda profile and the coverage question, on new grids. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index 91dedc2b..df0652e4 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -7,6 +7,9 @@ congression_calibration_bw1/ congression_calibration_anchor/ congression_calibration_controls/ fetch.sh -*.csv -*.json congression_calibration_anchor_resumed/ +# Written by tfs-setup-sim-grid next to a grid set up here; not inputs. +grid_summary.json +inputs/ +congression_calibration_baseline/ +congression_calibration_profile/ diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index ef1d87cd..a29b50b7 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -350,6 +350,26 @@ stop moving after ~70,000 epochs, at losses of 5.2e4 to 5.4e4 (1.7e5 to - Growth-noise nu at convergence: 61 (`single`), 28 (mixture lambda 0), 6.5 (mixture lambda 1). The lambda-1 mixture needs much heavier tails. +`single` on the lambda-1 data (run 0004), resumed the same way, also +converged (parameters flat after ~70,000 epochs). Against the lambda-1 +mixture (run 0005), same data: + +| lambda 1, converged | `single` (0004) | mixture (0005) | +|---|---|---| +| final loss | 5.59e4 | 5.40e4 | +| dk_geno RMSE | 0.0105 | 0.0049 | +| growth_m RMSE | 0.0012 | 0.0009 | +| bulk theta RMSE | 0.155 | 0.173 | +| log_hill_K RMSE | 1.03 | 1.17 | +| bulk theta 95% coverage | 0.58 | 0.55 | +| lambda | | 1.30 (truth 1.0) | + +The mixture fits the data better and halves the dk_geno error (the 3.0 +study's main congression channel, dk dilution) but does not recover theta: +`single`'s theta RMSE rises from 0.129 at lambda 0 to 0.155 at lambda 1, +and the mixture's is 0.173. The overestimated lambda may be +over-correcting theta; the lambda profile tests that. + These grids used the library enumeration from before bff2c51 (wt 39% of the co-resident pool; see the convergence study, result 5). Simulation and fit shared it, so these comparisons stand; new grids from `simulate_config.yaml` @@ -357,18 +377,31 @@ simulate a different library. ## Next -1. `single` on the lambda-1 data, converged (resume anchored run 0004 with - `resume.srun`; no new code needed), to see whether the mixture beats it - where congression is real. +The convergence work has landed (5bf5b78: noise-referenced stop rule, +step-size cuts on stalls, SVI started from a converged pre-MAP with guide +scales capped at 0.1; `--convergence_tolerance` is gone and `run.srun` / +`resume.srun` no longer pass it). New grids use it and simulate the +corrected library (bff2c51). -Items 2 and 3 need new fits, so they wait for the convergence work -(separate session): - -2. Why lambda is pulled up on converged fits: profile lambda (fixed lambda +1. Why lambda is pulled up on converged fits: profile lambda (fixed lambda on a grid, everything else converged) on the lambda-0 and lambda-1 data, then test candidate causes one at a time (the read-count floor, which curves dying trajectories the way a mixture does; realized vs design library composition in the simulator's transformation, including `lib_assembly_skew_sigma`; the fixed co-resident sets). -3. Coverage: why converged fits are overconfident (guide family, the +2. Coverage: why converged fits are overconfident (guide family, the binding weight). + +Set up (2026-09-25), anchored settings (binding weight 1, prefit +`--k_scale_ceiling 0.005`), corrected library (483 genotypes as before; +wt's co-resident share 0.0026, from 0.39): + +- `grid_baseline.yaml`: lambda 0 and 1.0 x {`single`, mixture with the + matched prior} x seeds 1 and 2 (8 runs). Does the new stop rule end runs + cleanly, and do the converged results above hold on the corrected + library? +- `grid_profile.yaml`: the mixture with lambda held at 0.6, 0.8, 1.0, 1.2, + 1.4 (`lam_prior: fixed`, prior SD 0.1% of the value) on the lambda-1, + seed-1 simulation (5 runs). Loss against lambda says whether the data + prefer lambda > 1; theta error against lambda says whether theta is + recovered at the true lambda. diff --git a/planning/studies/congression-calibration/grid_baseline.yaml b/planning/studies/congression-calibration/grid_baseline.yaml new file mode 100644 index 00000000..99ccffdb --- /dev/null +++ b/planning/studies/congression-calibration/grid_baseline.yaml @@ -0,0 +1,53 @@ +# --------------------------------------------------------------------------- +# Baseline on the new convergence code and corrected library (congression +# calibration, step 3.5) +# +# tfs-setup-sim-grid grid_baseline.yaml --out_prefix congression_calibration_baseline +# for d in congression_calibration_baseline/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Checks that the noise-referenced stop rule (5bf5b78) ends runs cleanly on +# its own, and whether the converged anchored results (README "Resumed to +# convergence") hold on the corrected library enumeration (bff2c51). +# Anchored settings: binding_weight 1, prefit k_scale_ceiling 0.005. +# 2 lambda x 2 fits x 2 seeds = 8 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + - transformation_poisson_lambda: 1.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + + +template: + + - name: fit + variants: + - fit: single + lam_prior: "off" + - fit: mixture + lam_prior: matched + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 diff --git a/planning/studies/congression-calibration/grid_profile.yaml b/planning/studies/congression-calibration/grid_profile.yaml new file mode 100644 index 00000000..a3a5270b --- /dev/null +++ b/planning/studies/congression-calibration/grid_profile.yaml @@ -0,0 +1,59 @@ +# --------------------------------------------------------------------------- +# Lambda profile on the lambda-1 simulation (congression calibration, +# step 3.5) +# +# tfs-setup-sim-grid grid_profile.yaml --out_prefix congression_calibration_profile +# for d in congression_calibration_profile/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Converged mixture fits put lambda at 1.30 on data simulated at 1.0 (README +# "Resumed to convergence"). Hold lambda fixed (lam_prior "fixed", prior SD +# 0.1% of the value) at five values and fit everything else, on the same +# simulation as grid_baseline.yaml's lambda-1 seed-1 runs. The loss against +# lambda says whether the data prefer lambda > 1; theta error against lambda +# says whether theta is recovered at the true lambda. Anchored settings as in +# grid_baseline.yaml. 5 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}{{ lam_fixed }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 1.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + + +template: + + - name: fit + variants: + - fit: mixture + lam_prior: fixed + + - name: lam_value + variants: + - lam_fixed: 0.6 + - lam_fixed: 0.8 + - lam_fixed: 1.0 + - lam_fixed: 1.2 + - lam_fixed: 1.4 + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 diff --git a/planning/studies/congression-calibration/hill_params.csv b/planning/studies/congression-calibration/hill_params.csv new file mode 100644 index 00000000..a3568471 --- /dev/null +++ b/planning/studies/congression-calibration/hill_params.csv @@ -0,0 +1,5 @@ +genotype,log_hill_K,hill_n,theta_high,theta_low +wt,-4.1,2,0.01,0.99 +M42I,-2.2104779610300698,1.5156149571654287,0.5054105302329879,0.9538933267956679 +H74A,-5.872705439673401,1.2001278450518955,0.05,0.7115380202706272 +K84L,-5.755115159475512,1.0593068151944411,0.1,0.856776050040223 diff --git a/planning/studies/congression-calibration/resume.srun b/planning/studies/congression-calibration/resume.srun index 4be1cc0b..48b9702f 100644 --- a/planning/studies/congression-calibration/resume.srun +++ b/planning/studies/congression-calibration/resume.srun @@ -19,9 +19,8 @@ # # The copy goes to _resumed/. Resuming overwrites # tfs_fit_model_checkpoint.pkl and tfs_fit_model_losses.txt, hence the copy. -# A resumed fit re-bases the stop rule on its own improvement, so it will -# probably run the full default max_num_epochs (100,000; keep the default, -# which also sets the step-size decay horizon). +# Written for fits from before the noise-referenced stop rule (5bf5b78), +# whose stop rule fired early; the current rule stops on its own. # Swap lines if on cluster (module load) or local (XLA_FLAGS to use CPU) module load cuda/12.4.1 @@ -50,8 +49,7 @@ echo ">>> Resume fit (${METHOD}) from ${SRC}" tfs-fit-model tfs_configure_config.yaml \ --seed "${SEED}" \ --analysis_method "${METHOD}" \ - --checkpoint_file tfs_fit_model_checkpoint.pkl \ - --convergence_tolerance 0.0001 + --checkpoint_file tfs_fit_model_checkpoint.pkl echo ">>> Sample posterior" tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 45892b4c..729d8ade 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -35,6 +35,8 @@ BINDING_WEIGHT="{{ binding_weight | default('') }}" K_SCALE_CEILING="{{ k_scale_ceiling | default('') }}" # tfs-fit-model --analysis_method (svi or map). grid_controls.yaml sets map. ANALYSIS_METHOD="{{ analysis_method | default('svi') }}" +# Lambda value for lam_prior "fixed" (grid_profile.yaml). +LAM_FIXED="{{ lam_fixed | default('') }}" # The simulated lambda and the seed live in tfs_sim_config.yaml. read -r SEED LAM_SIM < <(python -c " @@ -67,6 +69,10 @@ if [[ "${FIT}" == "single" ]]; then else if [[ "${LAM_PRIOR}" == "matched" ]]; then LAM_MEAN=$(python -c "print(max(${LAM_SIM}, 0.01))") + elif [[ "${LAM_PRIOR}" == "fixed" ]]; then + # lambda held at LAM_FIXED (prior SD 0.1% of the value). + LAM_MEAN=${LAM_FIXED} + LAM_PRIOR_SD=$(python -c "print(${LAM_FIXED} * 1e-3)") elif [[ "${LAM_PRIOR}" == "fixed0" ]]; then # lambda pinned essentially at zero: the mixture is then single. LAM_MEAN=1e-6 @@ -118,8 +124,7 @@ tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" "${PREFIT_ARGS echo ">>> Fit model" tfs-fit-model tfs_configure_config.yaml \ --seed "${SEED}" \ - --analysis_method "${ANALYSIS_METHOD}" \ - --convergence_tolerance 0.0001 + --analysis_method "${ANALYSIS_METHOD}" echo ">>> Sample posterior" tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl From 96669511aef0f35a3e83f2fff6fff28349dbf9c8 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 17:55:29 -0700 Subject: [PATCH 037/208] Stop clipping Adam gradients; gate convergence on loss skew Every step-3.5 baseline and lambda-profile fit ran to max_num_epochs, and the lambda-1 seed-1 fits jumped to 4-5x their best loss. The cause was ClippedAdam's elementwise clip at 1.0: gradients here are 1e3-1e6 per element, so every element was clipped every step and Adam followed each draw's gradient sign, settling where signs balance rather than where the expected gradient vanishes. One binding genotype (hill_n 24.6, measured with SD 0.001) costs ~2.4e5 nats whenever a guide draw crosses its step; at the sign-balance point 5-90% of draws crossed it, independent of step size. The "blow-ups" were block medians flipping once that share passed 50%. Adam is now unclipped by default for SVI, MAP, pre-MAP and prefit (--adam_clip_norm opts back in; cuts keep the choice; checkpoints record it and old ones resume). At the final step size a window whose mean sits more than 3 robust SDs above its median is no longer a plateau, and each window records loss_mean, loss_skew and loss_skewed (older convergence files are rewritten on resume). Posterior SDs used to measure parameter movement are floored at 1% of the prior SD, since the mean-field guide collapses hierarchical scales' SDs to ~4e-4. site_prior_sds no longer drops every site when one variance divides by zero (the horseshoe slab), which had silently removed MAP prior-SD units on hill_mut epistasis fits. Resumed unclipped from the blown-up checkpoints, the crossings fall to ~0 and the loss below the clipped best; a fresh unclipped fit of the same data converges at step 46,000. Clipped fits on these grids are biased and should be rerun. Verified: unit suite with --runslow (4897 passed) and smoke suite (42 passed), run against this tree's src; new tests cover a toy model of the clip bias, recorded clipped and unclipped traces, skew statistics, the prior-SD floors per guide type and convergence-file migration. Reproduction: planning/studies/congression-calibration/diagnosis/. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 56 +++++ CLAUDE.md | 12 +- docs/source/analysis.rst | 39 +++- .../studies/congression-calibration/README.md | 62 ++++++ .../diagnosis/diag_clip.py | 148 ++++++++++++++ src/tfscreen/tfmodel/inference/convergence.py | 126 ++++++++++-- .../tfmodel/inference/initialization.py | 66 +++++- .../tfmodel/inference/run_inference.py | 193 +++++++++++++++--- src/tfscreen/tfmodel/scripts/fit_model_cli.py | 28 ++- .../tfmodel/scripts/prefit_calibration_cli.py | 10 +- .../sim_svi_clipped_events_run0003.npy | Bin 0 -> 48128 bytes .../sim_svi_unclipped_converged_run0005.npy | Bin 0 -> 48128 bytes .../tfmodel/inference/test_convergence.py | 122 +++++++++++ .../tfmodel/inference/test_initialization.py | 36 ++++ .../inference/test_run_optimization.py | 163 ++++++++++++++- 15 files changed, 982 insertions(+), 79 deletions(-) create mode 100644 planning/studies/congression-calibration/diagnosis/diag_clip.py create mode 100644 tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_clipped_events_run0003.npy create mode 100644 tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_unclipped_converged_run0005.npy diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fc5d2fa..97f6685b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -114,6 +114,53 @@ fall into two kinds: ### Changed +- **Gradient clipping is off by default in `tfs-fit-model` and + `tfs-prefit-calibration` (SVI, MAP, pre-MAP, prefit).** Every + congression-calibration fit on the step-3.5 grids ran to `max_num_epochs`, + and the lambda-1 seed-1 fits "blew up" to 4-5 times their best loss. + numpyro's `ClippedAdam` (the only optimizer, `adam_clip_norm=1.0`) clips each + gradient *element*. These losses have gradients of 1e3-1e6 per element, so + every element was clipped every step and each update followed the sign of + one draw's gradient; the fit settled where those signs balance, not where + the expected gradient vanishes. The ELBO was heavy-tailed: one binding + genotype (a step-like curve, `hill_n` 24.6, measured with SD 0.001) cost + ~2.4e5 nats whenever a guide draw crossed its step. At the sign-balance + point 5-90% of draws crossed it, depending on the run, and a step-size cut + cannot move such a point. The "blow-ups" were the block medians flipping + once that share passed 50%; the parameters barely moved. Resumed unclipped + from the blown-up checkpoints, the crossings fall to ~0 and the loss to + below the clipped runs' best, and a fresh unclipped fit converges (46k + steps). Study: `planning/studies/congression-calibration/diagnosis/`. + - The default optimizer is numpyro `Adam` (`inference/run_inference.py`, + `adam_optimizer`). `--adam_clip_norm` still selects `ClippedAdam`. + Step-size cuts keep whichever was chosen. Both share their state, so + checkpoints written under clipping resume unclipped. Checkpoints now + record `adam_clip_norm`. + - Results of fits made with the clip, notably the step-3.5 baseline and + lambda-profile grids, are biased toward whatever the clipped + equilibrium favored, and should be rerun. +- **The convergence stop also needs an unskewed loss, and posterior SDs used + to measure parameter movement are floored at 1% of the prior SD.** + - The loss test reads block medians, which ignore rare large penalties that + dominate the mean, the actual objective. Each window now also reports its + mean and its skew, `(mean - median) / (1.4826 MAD)` about the trend line + (`convergence.loss_skew`). At the final step size a window with skew above + `MAX_LOSS_SKEW` (3) is not a plateau, so such a run is reported rather + than called converged. Skew never forces a step-size cut. Benign ELBO noise + stays below ~1 (at most 0.4 on every recorded clean trace); the clipped + calibration runs gave 29-37. The statistic cannot see penalties carried + by most steps, but then the loss level shows them. + - The mean-field component guide collapses the guide SDs of hierarchical + scales (hill_mut `theta_sigma_d_*`, `theta_epi_tau`) to ~4e-4, far below + any honest posterior width. Measured in those units, a location creeping + ~2e-4 per window read as 0.3-0.5 SDs of movement at step size 1e-6 + forever. The SD used is now at least `PRIOR_SD_FLOOR` (0.01) times the + site's prior SD in the location's unconstrained units + (`initialization.site_unconstrained_prior_sds`), for the component guide, + AutoNormal and the AutoContinuous guides. + - `{out_prefix}_convergence.csv` gains `loss_mean`, `loss_skew` and + `loss_skewed`. A resume rewrites an older file under the new columns. + - **Breaking: convergence and step size in `tfs-fit-model` and `tfs-prefit-calibration`.** The stop rule divided the window-to-window loss change by the improvement since the start of the run. On the step-3.5 @@ -257,6 +304,15 @@ fall into two kinds: ### Fixed +- **MAP parameter movement silently lost all its prior-SD units on models with + a horseshoe slab.** `initialization.site_prior_sds` did not catch the + `ZeroDivisionError` numpyro raises for the variance of an `InverseGamma` + with Python-float concentration 2 (the slab prior with the default + `slab_df` 4). The whole calculation then fell back to unconstrained units + for every parameter ("Could not compute prior SDs for MAP parameter + movement" in the pre-MAP log of every hill_mut epistasis fit). An undefined + variance now skips only its own site. + - **Library enumeration counted every codon of a tile as a site, flooding partially degenerate libraries with wt.** `LibraryManager._prepare_indexes` (`genetics/library_manager.py`) indexed every block in a tile, so each diff --git a/CLAUDE.md b/CLAUDE.md index 44498e29..e4274d38 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,7 +45,7 @@ tfs-process-counts # counts → ln_cfu DataFrames tfs-process-presplit # Process pre-split count files tfs-configure-model # Generate YAML config template (+ library composition snapshot) tfs-prefit-calibration # Pre-fit linking function via MAP -tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut) +tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut; --adam_clip_norm opts back into elementwise gradient clipping, off by default) tfs-fit-genotypes # Per-genotype MLE fits of the growth model (no congression correction) tfs-sample-posterior # Draw posterior samples from fitted model tfs-sample-prior # Draw prior predictive samples @@ -158,10 +158,12 @@ The hierarchical Bayesian inference engine. Key files: `RunInference.run_optimization` is the one optimization loop (SVI, MAP, the SVI pre-MAP warm-up, `tfs-prefit-calibration`). It runs in tumbling **windows** of `convergence_window_steps` optimizer steps (default 2000; raised to ≥ `MIN_WINDOW_EPOCHS` = 10 epochs so mini-batched genotypes are each visited several times; split into `PARAM_BLOCKS` = 8 blocks). `inference/convergence.py` holds the decisions as host-side numpy, testable on synthetic traces (`tests/tfscreen/tfmodel/inference/test_convergence.py`, including a recorded real-data and a simulated trace in `loss_traces/`). - **Loss test** (`loss_trend`): OLS line through the medians of 20 blocks of the window's per-step losses → drop per window ± SE. *Improving* iff `drop > z·SE` and `drop > loss_rtol·|loss|`. Judged against the loss's own noise: never against the start-up transient (the old rule's `|Δ|/(loss_start − loss_best)` stopped runs ~500× above their final loss and never stopped after a resume) nor against `|loss|` (the rule before that, which never fired on a noisy ELBO). A rising or oscillating loss is *not* improving. -- **Parameter test** (`param_drift`): each tracked param's block means (accumulated on the device inside the `lax.scan` carry — no per-step host transfer) → per-element trend over the window, in **normalizer** units (`RunInference._param_normalizer_specs`): paired guide scale for a location (`_loc`/`_locs`/`_auto_loc` ↔ `_scale`/`_scales`/`_auto_scale`; the posterior SD), derived SD for AutoContinuous `auto_loc`, prior SD for an AutoDelta location on a real site, and 1 for positive/bounded params (log/logit units, so relative). Excess = `|drift| − z·SE − floor`, where `floor = MIN_STEP_COHERENCE (0.01) · step_size · window` is the optimizer's resolution (Adam moves ~step size per step whatever the gradient; without the floor, jitter of a location whose guide scale collapsed below the step size reads as hundreds of SDs of drift). Summarized per array (max if ≤ 100 elements, else 99th percentile); *moving* iff any summary > `param_tolerance` (0.05). `scale_tril`/`cov_factor` are not tracked. -- **Decisions** (`ConvergenceMonitor.end_window`): above the floor step size, `patience` consecutive windows without loss improvement → cut (`step_size_cut`, default 0.1). **Parameters never block a cut**: some directions never settle (a horseshoe local scale's MAP drifts to 0 forever at ~no loss change) and holding the step size high for them only wastes time. At `final_step_size`, `patience` consecutive windows with neither loss improvement nor parameter movement → converged; a still-moving parameter keeps the run going and is named in the log, so a slide or degenerate direction is reported, never called converged. `max_num_epochs` is only a cap. A hierarchical MAP generally has no finite optimum (hyper-scale funnel), so MAP/pre-MAP runs often end at the cap — the honest outcome. -- **Step-size cuts** swap `svi.optim` for a new `ClippedAdam` at the smaller constant step (the optimizer state is step-size independent) and re-trace the scan (a fresh closure, so no stale compiled step size). `setup_svi` records `_step_size`/`_adam_clip_norm`; a step-size *schedule* is still accepted but refuses cuts. The old `optax.exponential_decay` over `max_num_epochs` is gone (it collapsed the pre-MAP's step size within its 1000 epochs and tied resumes to `max_num_epochs`). -- **Records**: `{out_prefix}_convergence.csv` (one row per window: loss, drop ± SE, t, worst param and its excess/drift, step size, plateau count, decision); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). +- **Loss skew** (`loss_skew`, reported by `loss_trend`): `(mean − median) / (1.4826·MAD)` of the window's losses about the trend line. Medians hide rare huge penalties that dominate the mean (the objective); benign ELBO noise, skewed or heavy-tailed, stays < ~1 (all recorded clean traces ≤ 0.4), rare penalties give 10–40. At the floor a window with skew > `MAX_LOSS_SKEW` (3) is not a plateau; skew never forces a cut (a smaller step size does not remove penalties). Blind once penalized steps are the majority (median and MAD follow them) — then the loss level shows it instead. +- **Parameter test** (`param_drift`): each tracked param's block means (accumulated on the device inside the `lax.scan` carry — no per-step host transfer) → per-element trend over the window, in **normalizer** units (`RunInference._param_normalizer_specs`): paired guide scale for a location (`_loc`/`_locs`/`_auto_loc` ↔ `_scale`/`_scales`/`_auto_scale`; the posterior SD), derived SD for AutoContinuous `auto_loc`, prior SD for an AutoDelta location on a real site, and 1 for positive/bounded params (log/logit units, so relative). Excess = `|drift| − z·SE − floor`, where `floor = MIN_STEP_COHERENCE (0.01) · step_size · window` is the optimizer's resolution (Adam moves ~step size per step whatever the gradient; without the floor, jitter of a location whose guide scale collapsed below the step size reads as hundreds of SDs of drift). The posterior SD is floored at `PRIOR_SD_FLOOR` (0.01) × the site's prior SD in the location's unconstrained units (`initialization.site_unconstrained_prior_sds`: exact SD for real sites, robust MC `IQR/1.349` of prior draws otherwise; `RunInference._posterior_sd_floors` maps component-guide locations via `{site}_loc(s)`, AutoNormal via `{site}_auto_loc`, and AutoContinuous `auto_loc` via numpyro's `_ravel_dict` latent order): the mean-field component guide collapses hierarchical scales' guide SDs to ~4e-4 (hill_mut `theta_sigma_d_*_scale`, `theta_epi_tau_scale`), and in those units a negligible creep never settles. Summarized per array (max if ≤ 100 elements, else 99th percentile); *moving* iff any summary > `param_tolerance` (0.05). `scale_tril`/`cov_factor` are not tracked. +- **Decisions** (`ConvergenceMonitor.end_window`): above the floor step size, `patience` consecutive windows without loss improvement → cut (`step_size_cut`, default 0.1). **Parameters and skew never block a cut**: some directions never settle (a horseshoe local scale's MAP drifts to 0 forever at ~no loss change) and holding the step size high for them only wastes time. At `final_step_size`, `patience` consecutive windows with no loss improvement, no parameter movement and no loss skew → converged; a still-moving parameter or a skewed loss keeps the run going and is named in the log, so a slide, degenerate direction or hidden penalty is reported, never called converged. `max_num_epochs` is only a cap. A hierarchical MAP generally has no finite optimum (hyper-scale funnel), so MAP/pre-MAP runs often end at the cap — the honest outcome. +- **Optimizer** (`run_inference.adam_optimizer`): plain numpyro `Adam` by default; `adam_clip_norm` (every CLI and `setup_svi`) opts into `ClippedAdam`. **Do not re-enable clipping by default.** `ClippedAdam` clips each gradient *element* to ±`clip_norm`; these losses have gradients of 1e3–1e6 per element, so every element is clipped every step and Adam follows each draw's gradient *sign* — its fixed point is where the per-draw signs balance, not where the expected gradient is zero. With a heavy-tailed ELBO (step-like binding curve M42C/K84N, `hill_n` 24.6, measured with SD 0.001; a guide draw crossing it costs ~2.4e5 nats) that held 5–90% of draws in violation on every congression-calibration run (2026-09-25; the "blow-ups" were block medians flipping once the rate passed 50%, and step-size cuts cannot move a sign-balance point). Unclipped, the same fits drop to ~0 violations and converge (`planning/studies/congression-calibration/diagnosis/`). The two optimizers share their state, so old checkpoints resume unclipped. +- **Step-size cuts** swap `svi.optim` for a new optimizer of the same kind (clipped or not, read off the current `svi.optim`) at the smaller constant step (the optimizer state is step-size independent) and re-trace the scan (a fresh closure, so no stale compiled step size). `setup_svi` records `_step_size`/`_adam_clip_norm` (the latter written to checkpoints); a step-size *schedule* is still accepted but refuses cuts. The old `optax.exponential_decay` over `max_num_epochs` is gone (it collapsed the pre-MAP's step size within its 1000 epochs and tied resumes to `max_num_epochs`). +- **Records**: `{out_prefix}_convergence.csv` (one row per window: loss (median), drop ± SE, t, `loss_mean`/`loss_skew`/`loss_skewed`, worst param and its excess/drift, step size, plateau count, decision; a resume rewrites an older file under the current columns, `_migrate_convergence_columns`); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). **Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (default 0.1 for the component guide, `DEFAULT_COMPONENT_INIT_SCALE`). `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. diff --git a/docs/source/analysis.rst b/docs/source/analysis.rst index 9d8c9f60..1f48c27e 100644 --- a/docs/source/analysis.rst +++ b/docs/source/analysis.rst @@ -129,7 +129,7 @@ Convergence ``tfs-fit-model`` (SVI, MAP and the SVI warm-up) and ``tfs-prefit-calibration`` decide when to stop the same way. Optimization runs in windows of ``--convergence_window_steps`` optimizer steps (default 2000, and at least 10 -epochs). At the end of each window two questions are asked: +epochs). At the end of each window three questions are asked: * **Is the loss still improving?** A line through the medians of 20 blocks of the window's losses gives the drop per window and its standard error. The @@ -138,22 +138,43 @@ epochs). At the end of each window two questions are asked: The loss is judged against its own noise, so a noisy ELBO (few particles, mini-batches) neither stops early nor runs forever. * **Is any parameter still moving?** Each parameter's trend over the window is - measured in units of its posterior SD (the guide scale; for MAP the prior - SD, and log units for positive parameters). Movement explained by noise, or - smaller than the optimizer can resolve at the current step size, does not - count; anything left above ``--param_tolerance`` (default 0.05) does. + measured in units of its posterior SD (the guide scale, but never less than + 1% of the prior SD; for MAP the prior SD, and log units for positive + parameters). Movement explained by noise, or smaller than the optimizer can + resolve at the current step size, does not count; anything left above + ``--param_tolerance`` (default 0.05) does. The 1% floor matters for a + mean-field guide, which can shrink a hierarchical scale's guide SD far below + any honest posterior width; measured in those units, a negligible creep + would never count as settled. +* **Does the median loss represent the mean?** The loss being minimized is the + mean over guide draws. If rare draws carry a huge penalty (for example a + steep binding curve measured very precisely, crossed by an occasional draw), + the block medians ignore them. The window's skew, how many robust SDs its + mean sits above its median, exposes this; benign ELBO noise stays below + about 1. After ``--patience`` (default 3) windows in a row without loss improvement, the step size is multiplied by ``--adam_step_size_cut`` (default 0.1), down to ``--adam_final_step_size``. At that floor the run stops after ``--patience`` -windows in which the loss has not improved *and* no parameter has moved. +windows in which the loss has not improved, no parameter has moved *and* the +skew is at most 3. Skew never triggers a cut: a smaller step size does not +remove rare penalties. ``--max_num_epochs`` is only a cap. A run that reaches it says so, and names the largest remaining movement. Resuming from a checkpoint continues at the checkpoint's step size. -``{out_prefix}_convergence.csv`` records every window: the loss, its drop and -standard error, the parameter moving most, the step size and the decision -(``continue``, ``cut`` or ``converged``). +``{out_prefix}_convergence.csv`` records every window: the loss (median and +mean), its drop and standard error, the skew, the parameter moving most, the +step size and the decision (``continue``, ``cut`` or ``converged``). + +The optimizer is Adam without gradient clipping. ``--adam_clip_norm`` restores +numpyro's ``ClippedAdam``, which clips each gradient *element*. When gradients +are much larger than the clip, as they are for these models, that makes each +update follow the sign of the gradient of a single draw, and the fit settles +where those signs balance rather than where the expected gradient is zero. +With rare large penalties that point can sit on the wrong side of a +constraint: on the congression-calibration grids it held 5-90% of draws in +violation of one binding curve. Step 4: Sample Posterior (``tfs-sample-posterior``) ---------------------------------------------------- diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index a29b50b7..a969bc45 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -375,6 +375,68 @@ co-resident pool; see the convergence study, result 5). Simulation and fit shared it, so these comparisons stand; new grids from `simulate_config.yaml` simulate a different library. +## Baseline and profile grids on 5bf5b78: the gradient clip (2026-09-25) + +All 13 runs of `grid_baseline.yaml` and `grid_profile.yaml` ran to 100,000 +steps without converging, and the lambda-1 seed-1 fits (baseline 0005/0006, +profile 0.8-1.4) jumped to 4-5 times their best loss and stayed there +through three step-size cuts. Neither is a convergence-rule problem at +root; both come from `ClippedAdam`'s elementwise gradient clip at 1.0 +(`adam_clip_norm`, older than 5bf5b78). + +- **The per-step loss is quantized**: 41k + n x 243k (n = 0-5) on run 0005. + Each quantum is one binding point of M42C/K84N (from `hill_params.csv`, so + in every simulation): true `hill_n` 24.6, K between the 0.001 and 0.003 + grid points, measured with SD 0.001. A guide draw that shifts the step + across a grid point flips theta 0.99 <-> 0.007 there (`diagnosis/diag_clip.py`, + part 1). +- **Every run carries these penalties at a steady share of steps**, old code + and new: ~5% (the resumed anchored runs), 5-15% (seed 2), 27-32% (lambda-0 + seed 1), 46-89% (lambda-1 seed 1). The "blow-ups" are the 250-step block + medians flipping to the penalized level once the share passes 50%; guide + parameters moved by at most ~0.4 across the jump. +- **The share is set by the clip.** Gradients here are 1e3-1e6 per element, + so every element is clipped every step and Adam follows each draw's + gradient sign; it settles where the signs balance, not where the mean + gradient vanishes. At checkpoint 40000 of run 0005, mutation 1's + `theta_d_logit_delta_offset_locs` has mean gradient -7.9e3 +/- 0.9e3 (away + from the penalty) and mean clipped gradient -0.04; for + `theta_d_logit_low_offset_locs` the clip reverses the sign (-1.2e3 raw, + +0.14 clipped). The balance point does not depend on the step size (48% + at 1e-3 and at 1e-6), so the cuts locked it in. +- **Resumed from run 0005's checkpoints** (`diag_clip.py` part 3, local CPU): + +| from | clip | step size | penalized share per 2000 steps | mean loss | +|---|---|---|---|---| +| step 8000 (before the jump) | 1.0 | 1e-3 | 0.17, 0.42, 0.57, 0.77, 0.97 | 96k -> 485k | +| step 8000 | none | 1e-3 | 0.01, 0.00 | 47k -> 38k | +| step 40000 (after) | none | 1e-3 | 0.21, 0.07, 0.04, 0.02, 0.00 | 102k -> 40k | +| step 40000 | 1.0 | 1e-4 | 0.48 throughout | ~200k | + +- **Fresh fits of run 0005's data** (`tfs-fit-model`, CPU): unclipped, the + penalties vanish by step 8000 and SVI **converges at step 46,000** (3 cuts, + loss 38.5k, below the clipped run's best of 41k). With the clip and the old + start (`--pre_map_num_epoch 0`) it settles at 8-11% penalized (mean loss + 68k), not 48%: 5bf5b78's pre-MAP start only picked a worse clipped + equilibrium on this simulation. +- **The non-stop (failure 1) is the same clip, plus a yardstick problem.** + At 1e-6 the flagged locations crept in one direction at ~10% of Adam's top + speed for 60k steps (clipped dynamics), measured against guide SDs that had + collapsed to ~4e-4 (hill_mut `theta_sigma_d_*`, `theta_epi_tau`). The + collapse itself is the mean-field ELBO (it happens unclipped too; the raw + and clipped gradients agree on shrinking), so those reported widths are + not honest posterior SDs. Unclipped, the worst movement at 1e-6 was + 0.02-0.03 SDs and the rule stopped the run. + +Fixed in the optimizer (CHANGELOG, "Gradient clipping is off by default"): +plain Adam by default (`--adam_clip_norm` opts back in); at the final step +size a window whose mean sits more than 3 robust SDs above its median (rare +penalties the median hides) is not a plateau; posterior SDs used to measure +parameter movement are floored at 1% of the prior SD. Every result on these +two grids, and any clipped fit with this binding set, is biased and should +be rerun. Separately, binding noise 0.001 on step-like curves is much tighter +than real assays; to be loosened in the simulation config. + ## Next The convergence work has landed (5bf5b78: noise-referenced stop rule, diff --git a/planning/studies/congression-calibration/diagnosis/diag_clip.py b/planning/studies/congression-calibration/diagnosis/diag_clip.py new file mode 100644 index 00000000..3e6d8e92 --- /dev/null +++ b/planning/studies/congression-calibration/diagnosis/diag_clip.py @@ -0,0 +1,148 @@ +""" +Why the step-3.5 baseline/profile fits never converged and "blew up": the +per-step loss is 41k + n * 243k (n = draws crossing one binding step), and +ClippedAdam's elementwise clip makes Adam settle where gradient *signs* +balance, holding a large share of draws across the step. + +Three checks at one checkpoint, from inside a run directory: + + cd congression_calibration_baseline/run_0005_lam1_0_seed1_single_off + python ../../diagnosis/diag_clip.py checkpoints/0040000_checkpoint.pkl + +1. events: per-draw binding log-likelihood; which observations carry the + penalty, and the predicted theta there. +2. gradients: mean raw vs mean clipped (+/-1) gradient of the loss for the + parameters that differ most between penalized and clean draws. +3. resume: --steps optimizer steps from the checkpoint with and without the + clip (--lr, default 1e-3); share of penalized steps and mean loss per + 2000 steps. + +Needs this worktree's src on PYTHONPATH (the editable install may point at +another checkout). +""" + +import argparse + +import jax +import jax.numpy as jnp +import numpy as np +from numpyro import handlers + +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.inference.run_inference import ( + RunInference, + adam_optimizer, +) + +parser = argparse.ArgumentParser() +parser.add_argument("checkpoint") +parser.add_argument("--draws", type=int, default=40) +parser.add_argument("--steps", type=int, default=8000) +parser.add_argument("--lr", type=float, default=1e-3) +args = parser.parse_args() + +orch, init_params = read_configuration("tfs_configure_config.yaml") +ri = RunInference(orch, seed=1) +svi, state = ri.restore_svi_from_checkpoint(args.checkpoint, + init_params=init_params) +params = svi.get_params(state) +data = jax.device_put(orch.data) +# The training index (binding genotypes first, the rest shuffled); the +# library-ordered data.batch_idx pairs genotypes with the wrong rows. +batch = orch.get_batch(data, jnp.asarray(ri.model.get_random_idx())) + + +def penalized(losses): + """Steps carrying at least one step-crossing penalty (~2.4e5).""" + return losses > np.percentile(losses, 1) + 1.2e5 + + +# --- 1. events ------------------------------------------------------------- + +lp, loc = [], [] +for i in range(args.draws): + key = jax.random.PRNGKey(i) + g = handlers.trace(handlers.seed( + handlers.substitute(orch.jax_model_guide, data=params), key) + ).get_trace(priors=orch.priors, data=batch) + m = handlers.trace(handlers.replay(handlers.seed(orch.jax_model, key), g) + ).get_trace(priors=orch.priors, data=batch) + site = m["binding_obs"] + fn = site["fn"] + lp.append(np.asarray(fn.log_prob(site["value"])).ravel()) # masked + loc.append(np.broadcast_to(np.asarray(fn.base_dist.loc), + site["value"].shape).ravel()) +lp, loc = np.array(lp), np.array(loc) +obs = np.asarray(batch.binding.theta_obs).ravel() +shape = batch.binding.theta_obs.shape +print("\n1. binding log-likelihood per draw:", + np.round(lp.sum(1)).astype(int).tolist()) +for j in np.where(lp.min(0) < -1e4)[0]: + idx = tuple(int(i) for i in np.unravel_index(j, shape)) + hit = lp[:, j] < -1e4 + print(f" obs {idx} theta_obs {obs[j]:.4f}: penalized in {hit.mean():.0%} " + f"of draws, predicted theta {np.round(loc[hit, j], 3)[:4]} " + f"(clean draws ~{np.median(loc[~hit, j]):.4f})") + +# --- 2. gradients ---------------------------------------------------------- + +u = svi.optim.get_params(state.optim_state) + + +def loss(p, key): + return svi.loss.loss(key, svi.constrain_fn(p), orch.jax_model, + orch.jax_model_guide, priors=orch.priors, data=batch) + + +vg = jax.jit(jax.value_and_grad(loss)) +L, G = [], [] +for i in range(4 * args.draws): + v, g = vg(u, jax.random.PRNGKey(1000 + i)) + L.append(float(v)) + G.append(g) +L = np.array(L) +ev = penalized(L) +print(f"\n2. {ev.mean():.0%} of {L.size} draws penalized; mean loss " + f"{L.mean():.4g}, median {np.median(L):.4g}") +rows = [] +for k in u: + g = np.stack([np.asarray(x[k]).ravel() for x in G]) + if ev.all() or not ev.any(): + continue + diff = np.abs(g[ev].mean(0) - g[~ev].mean(0)) + j = int(np.argmax(diff)) + rows.append((diff[j], k, j, g[:, j].mean(), + g[:, j].std() / np.sqrt(len(g)), + np.clip(g[:, j], -1, 1).mean(), + np.mean(np.abs(g) > 1))) +rows.sort(reverse=True) +print(f" {'parameter[element]':44s} {'raw mean':>10s} {'+/- se':>8s} " + f"{'clipped':>8s} array's |grad| > 1 (clipped)") +for _, k, j, raw, se, clipped, frac in rows[:10]: + print(f" {k + f'[{j}]':44s} {raw:10.3g} {se:8.2g} {clipped:8.3f} " + f"{frac:.0%} of elements x draws") + +# --- 3. resume with and without the clip ------------------------------------- + +for clip in (1.0, None): + _, st = ri.restore_svi_from_checkpoint(args.checkpoint, + init_params=init_params) + svi.optim = adam_optimizer(args.lr, clip) + + def step(s, idx): + return svi.update(s, priors=orch.priors, + data=orch.get_batch(data, idx)) + + scan = jax.jit(lambda s, idx: jax.lax.scan(step, s, idx)) + losses = [] + for _ in range(args.steps // 250): + st, lb = scan(st, jnp.asarray(ri.model.get_random_idx(num_batches=250))) + losses.append(np.asarray(lb)) + losses = np.concatenate(losses) + ev = penalized(losses) + w = 2000 + print(f"\n3. resume, clip {clip}, step size {args.lr:g}:") + print(" penalized share per 2000:", + [round(float(ev[a:a + w].mean()), 2) for a in range(0, ev.size, w)]) + print(" mean loss per 2000: ", + [int(losses[a:a + w].mean()) for a in range(0, ev.size, w)]) diff --git a/src/tfscreen/tfmodel/inference/convergence.py b/src/tfscreen/tfmodel/inference/convergence.py index 418e9543..7dc21f21 100644 --- a/src/tfscreen/tfmodel/inference/convergence.py +++ b/src/tfscreen/tfmodel/inference/convergence.py @@ -17,13 +17,34 @@ trend, and blocks of many steps make the standard error robust to short-range autocorrelation. +**Loss skew.** The loss being minimized is the *mean* of the per-step +losses, which the block medians can hide: an ELBO estimate that is usually +near its typical value but occasionally carries a huge penalty (a rare guide +draw that violates a razor-sharp likelihood) has a median that ignores the +penalties however much of the mean they make up. The window's ``skew`` is +``(mean - median) / (1.4826 * MAD)`` of the losses after removing the fitted +trend line -- how many robust standard deviations the mean sits above the +median. It is roughly the penalized fraction of steps times the penalty, in +per-step noise SDs. Benign Monte Carlo noise, including the right skew of an +ELBO estimate, stays below ~1; penalties that move the mean by more than +``max_loss_skew`` noise SDs are flagged (on the congression-calibration runs, +5-30% of steps carrying ~200 noise SDs gave 20-40). The statistic only sees +penalties that are a minority of steps: once most steps carry one, the median +(and the robust spread) follow them, but then the loss level itself shows the +problem. + **Parameter test.** Each tracked parameter is averaged over ``param_blocks`` blocks of the window. The same line fit through the block means gives each element's projected movement over one window and its standard error, both divided by a *normalizer*: the parameter's posterior SD (its guide scale) for a variational location, the prior SD for a MAP location, and 1 for a parameter already in log or logit units (positive or bounded parameters, so -the movement is relative). An element's *excess* is the part of its movement +the movement is relative). A posterior SD is floored at ``PRIOR_SD_FLOOR`` +times the site's prior SD (both in the location's own, unconstrained units): +a mean-field guide can collapse a scale far below any honest posterior width +(a hierarchical scale's guide SD reaching 1e-4 of its prior SD), and in those +units a location creeping at a negligible absolute rate reads as moving +indefinitely. An element's *excess* is the part of its movement not explained by noise or by the optimizer's resolution, ``max(|drift| - z * se - floor, 0)``, where ``floor`` is ``MIN_STEP_COHERENCE * step_size * window_steps`` (normalized the same way). @@ -49,12 +70,15 @@ directions never settle under a given objective (a MAP of a horseshoe local scale drifts toward zero forever, at almost no change in loss), and holding the step size high for them helps nothing. -- Once the step size is at its floor, a window that is a stall *and* has no - moving parameter is a *plateau*, and ``patience`` consecutive plateaus are - convergence. A parameter that is still moving therefore keeps the run - going (and is named in the log) until it stops or ``max_num_epochs`` is - reached, so a slow slide or a degenerate direction is reported, never - mistaken for convergence. +- Once the step size is at its floor, a window that is a stall, has no + moving parameter *and* has a loss skew within ``max_loss_skew`` is a + *plateau*, and ``patience`` consecutive plateaus are convergence. A + parameter that is still moving therefore keeps the run going (and is named + in the log) until it stops or ``max_num_epochs`` is reached, so a slow slide + or a degenerate direction is reported, never mistaken for convergence; so + does a skewed loss, whose median plateau says nothing about the objective. + Skew never forces a cut: a smaller step size does not remove rare + penalties. Because a parameter's systematic drift and its step-to-step jitter both scale with the step size, the significance part of the tests does not depend on the @@ -75,6 +99,16 @@ # excess; larger (per-genotype, per-mutation) arrays by a quantile. SMALL_ARRAY_SIZE = 100 +# A posterior SD used as a normalizer is floored at this fraction of the +# site's prior SD (see the module docstring). +PRIOR_SD_FLOOR = 0.01 + +# Largest loss skew, (mean - median) / robust SD, of a window that can count +# as a plateau at the floor step size. Clean traces (recorded real-data and +# simulated SVI, MAP, synthetic exponential/lognormal noise) stay below ~1; +# windows with rare large penalties reach 17-150. +MAX_LOSS_SKEW = 3.0 + # Convergence decisions returned by ConvergenceMonitor.end_window. CONTINUE = "continue" CUT = "cut" @@ -124,10 +158,11 @@ def loss_trend(losses, num_blocks=20): Returns ------- dict - ``level`` (median of the last block), ``drop`` (loss decrease over the - window predicted by the fitted line; positive when the loss falls), - ``drop_se`` and ``t`` (``drop / drop_se``; ``inf`` when the block - medians lie exactly on the line). + ``level`` (median of the last block), ``mean`` (mean of the last + block), ``drop`` (loss decrease over the window predicted by the + fitted line; positive when the loss falls), ``drop_se``, ``t`` + (``drop / drop_se``; ``inf`` when the block medians lie exactly on the + line) and ``skew`` (``loss_skew`` of the window about the line). """ losses = np.asarray(losses, dtype=float).ravel() @@ -138,7 +173,8 @@ def loss_trend(losses, num_blocks=20): ) block = losses.size // num_blocks used = losses[losses.size - num_blocks * block:] - medians = np.median(used.reshape(num_blocks, block), axis=1) + blocks = used.reshape(num_blocks, block) + medians = np.median(blocks, axis=1) centers = (np.arange(num_blocks) + 0.5) * block slope, se = _line_fit(medians, centers) @@ -150,10 +186,50 @@ def loss_trend(losses, num_blocks=20): else: t = np.inf if drop != 0 else 0.0 + # Residuals about the fitted line, so a falling loss is not read as skew. + line = (medians.mean() + + float(slope) * (np.arange(used.size) + 0.5 - centers.mean())) + return {"level": float(medians[-1]), + "mean": float(blocks[-1].mean()), "drop": drop, "drop_se": drop_se, - "t": float(t)} + "t": float(t), + "skew": loss_skew(used - line, level=medians[-1])} + + +def loss_skew(residuals, level=0.0, rtol=1e-6): + """ + How far the mean of ``residuals`` sits above their median, in robust SDs. + + Parameters + ---------- + residuals : 1-D array + Per-step losses with any trend removed. + level : float, optional + Typical loss; ``rtol * |level|`` floors the robust SD so an exactly + constant (deterministic) loss has skew 0 rather than 0/0. + rtol : float, optional + Relative floor on the robust SD (default 1e-6, the default + ``loss_rtol``: differences below it are not resolved anyway). + + Returns + ------- + float + ``(mean - median) / max(1.4826 * MAD, rtol * |level|)``; 0 when the + spread and the floor are both zero. + """ + + r = np.asarray(residuals, dtype=float).ravel() + if r.size == 0: + return 0.0 + med = np.median(r) + sd = max(1.4826 * float(np.median(np.abs(r - med))), + rtol * abs(float(level))) + gap = float(np.mean(r) - med) + if sd <= 0: + return 0.0 + return gap / sd def param_drift(block_means, block_centers, window_steps, normalizer, z, @@ -238,6 +314,9 @@ class ConvergenceMonitor: param_tolerance : float, optional Largest allowed parameter excess per window, in normalizer units (default 0.05). + max_loss_skew : float, optional + Largest loss skew (``loss_skew``) of a window that can be a plateau at + the floor step size (default ``MAX_LOSS_SKEW``). """ def __init__(self, @@ -247,7 +326,8 @@ def __init__(self, patience=3, z=3.0, loss_rtol=1e-6, - param_tolerance=0.05): + param_tolerance=0.05, + max_loss_skew=MAX_LOSS_SKEW): if not 0 < step_size_cut < 1: raise ValueError( @@ -265,6 +345,7 @@ def __init__(self, self.z = float(z) self.loss_rtol = float(loss_rtol) self.param_tolerance = float(param_tolerance) + self.max_loss_skew = float(max_loss_skew) self.plateau_count = 0 self.num_cuts = 0 @@ -321,10 +402,16 @@ def end_window(self, step, loss_stats, param_excess=None, param_drift=None): worst_param, worst_excess = name, value params_moving = worst_excess > self.param_tolerance - # Cuts follow the loss alone; the stop also needs the parameters. + # A median plateau says nothing about the mean when rare penalties + # dominate it (see the module docstring). + loss_skew = float(loss_stats.get("skew", 0.0)) + loss_skewed = not loss_skew <= self.max_loss_skew + + # Cuts follow the loss alone; the stop also needs the parameters and + # an unskewed loss. at_floor = self.at_floor if at_floor: - plateau = not (loss_improving or params_moving) + plateau = not (loss_improving or params_moving or loss_skewed) else: plateau = not loss_improving self.plateau_count = self.plateau_count + 1 if plateau else 0 @@ -346,10 +433,13 @@ def end_window(self, step, loss_stats, param_excess=None, param_drift=None): "step": int(step), "step_size": step_size, "loss": loss_stats["level"], + "loss_mean": float(loss_stats.get("mean", np.nan)), "loss_drop": loss_stats["drop"], "loss_drop_se": loss_stats["drop_se"], "loss_t": loss_stats["t"], "loss_improving": bool(loss_improving), + "loss_skew": loss_skew, + "loss_skewed": bool(loss_skewed), "worst_param": worst_param, "worst_param_excess": float(worst_excess), "worst_param_drift": float(param_drift.get(worst_param, np.nan)) @@ -368,6 +458,10 @@ def describe(self): r = self.last loss = (f"loss {r['loss']:.6g}, drop/window {r['loss_drop']:.4g} " f"+/- {r['loss_drop_se']:.3g} (t={r['loss_t']:.3g})") + skew = r.get("loss_skew", 0.0) + if r.get("loss_skewed"): + loss += (f"; loss skewed ({skew:.3g} robust SDs of mean above " + f"median: rare large penalties)") if r["worst_param"] is None: params = "no parameters tracked" else: diff --git a/src/tfscreen/tfmodel/inference/initialization.py b/src/tfscreen/tfmodel/inference/initialization.py index db2f4176..7b04c3e4 100644 --- a/src/tfscreen/tfmodel/inference/initialization.py +++ b/src/tfscreen/tfmodel/inference/initialization.py @@ -272,10 +272,74 @@ def site_prior_sds(model_sites): try: sd = jnp.sqrt(jnp.asarray(site["fn"].variance, dtype=float)) sd = jnp.broadcast_to(sd, jnp.shape(site["value"])) - except (NotImplementedError, ValueError, TypeError, AttributeError): + except (NotImplementedError, ValueError, TypeError, AttributeError, + ArithmeticError): + # ArithmeticError: e.g. an InverseGamma with Python-float + # concentration 2 divides by zero in its variance. continue sd = np.asarray(sd) if sd.size == 0 or not np.all(np.isfinite(sd)) or not np.all(sd > 0): continue out[name] = sd return out + + +def site_unconstrained_prior_sds(model_sites, seed=0, num_draws=64): + """ + Prior spread of each site in its unconstrained coordinates. + + Guide locations live in unconstrained space (a LogNormal guide's location + is ``log`` of a positive site, an AutoNormal location is the site mapped + through ``biject_to(support).inv``), so this is the prior width in the + same units. A real-valued site with a finite prior variance uses the + exact SD; every other site uses a robust Monte Carlo estimate, ``IQR / + 1.349`` of ``num_draws`` prior draws mapped to unconstrained space (the SD + for a normal, finite for heavy-tailed priors such as a half-Cauchy). + + Parameters + ---------- + model_sites : dict + ``trace_model_sites`` output (ideally traced with the current site + values substituted, so hierarchical priors reflect them). + seed : int, optional + PRNG seed for the Monte Carlo draws. + num_draws : int, optional + Draws per site for the Monte Carlo estimate (default 64). + + Returns + ------- + dict + ``{site: array}`` broadcast to the site's shape, for sites whose + spread is finite and positive everywhere. Other sites are left out. + """ + + import jax + from numpyro.distributions.transforms import biject_to + + exact = site_prior_sds(model_sites) + key = jax.random.PRNGKey(seed) + + out = {} + for name, site in model_sites.items(): + fn = site["fn"] + shape = jnp.shape(site["value"]) + try: + real = _unwrap(fn).support is dist.constraints.real + except (NotImplementedError, AttributeError): + real = False + if real and name in exact: + out[name] = exact[name] + continue + try: + key, sub = jax.random.split(key) + draws = fn.sample(sub, (num_draws,)) + u = biject_to(fn.support).inv(draws) + q25, q75 = jnp.quantile(u, jnp.array([0.25, 0.75]), axis=0) + sd = np.asarray(jnp.broadcast_to((q75 - q25) / 1.349, shape)) + except (NotImplementedError, ValueError, TypeError, AttributeError, + ArithmeticError): + continue + if sd.size == 0 or not np.all(np.isfinite(sd)) or not np.all(sd > 0): + continue + out[name] = sd + return out diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index 4fb3abf7..079bf843 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -17,7 +17,7 @@ init_to_uniform, ) from numpyro.distributions.transforms import IdentityTransform -from numpyro.optim import ClippedAdam +from numpyro.optim import Adam, ClippedAdam import numpy as np import dill from functools import partial @@ -33,6 +33,7 @@ component_guide_init, component_guide_map, site_prior_sds, + site_unconstrained_prior_sds, site_values, trace_model_sites, ) @@ -87,6 +88,27 @@ _DENSE_GUIDE_WARN_GB = 4.0 +def adam_optimizer(step_size, clip_norm=None): + """ + The optimizer for SVI/MAP: plain Adam, or ClippedAdam when ``clip_norm`` + is given. + + ClippedAdam clips every gradient *element* to ``[-clip_norm, + clip_norm]``. On a loss whose gradients are far larger than the clip + (thousands of nats per unit parameter), nearly every element is clipped + every step, so the update follows the sign of each draw's gradient: the + optimizer then settles where the per-step signs balance, not where the + expected gradient vanishes. With a heavy-tailed ELBO estimate (rare + draws carrying a huge penalty) that point is biased toward the penalties, + so clipping is off by default. Adam's own normalization already bounds + each step to a few times the step size. Both optimizers keep the same + state, so a checkpoint from either resumes under the other. + """ + if clip_norm is None: + return Adam(step_size=step_size) + return ClippedAdam(step_size=step_size, clip_norm=clip_norm) + + def _init_to_value_or(site=None, values=None, fallback=init_to_uniform): """ ``init_to_value`` with a choice of strategy for sites missing from @@ -206,7 +228,7 @@ def __init__(self,model,seed): def setup_svi(self, adam_step_size=1e-6, - adam_clip_norm=1.0, + adam_clip_norm=None, elbo_num_particles=2, guide_type="delta", guide_kwargs=None, @@ -217,10 +239,12 @@ def setup_svi(self, Parameters ---------- adam_step_size : float or callable, optional - Step size for the ClippedAdam optimizer. Can be a fixed float or - a callable (e.g., an optax schedule). - adam_clip_norm : float, optional - Gradient clipping norm for the ClippedAdam optimizer. + Step size for the Adam optimizer. Can be a fixed float or a + callable (e.g., an optax schedule). + adam_clip_norm : float or None, optional + Clip each gradient element to ``[-adam_clip_norm, + adam_clip_norm]`` (numpyro ``ClippedAdam``). None (default) + disables clipping; see ``adam_optimizer`` for why. elbo_num_particles : int, optional Number of particles for ELBO estimation. guide_type : str, optional @@ -287,8 +311,7 @@ def setup_svi(self, self._step_size = adam_step_size self._adam_clip_norm = adam_clip_norm - optimizer = ClippedAdam(step_size=adam_step_size, - clip_norm=adam_clip_norm) + optimizer = adam_optimizer(adam_step_size, adam_clip_norm) svi = SVI(self.model.jax_model, guide, @@ -361,9 +384,10 @@ def run_optimization(self, is still moving (relative to its posterior or prior width). After ``patience`` consecutive windows without loss improvement the step size is cut by ``step_size_cut``; once it has reached - ``final_step_size``, ``patience`` consecutive windows with neither - loss improvement nor parameter movement are convergence. Every window - is recorded in ``{out_prefix}_convergence.csv``. + ``final_step_size``, ``patience`` consecutive windows with no loss + improvement, no parameter movement and no loss skew (a mean well above + the median: rare large penalties the median hides) are convergence. + Every window is recorded in ``{out_prefix}_convergence.csv``. Parameters ---------- @@ -396,9 +420,9 @@ def run_optimization(self, only for (near-)deterministic losses. param_tolerance : float, optional Parameter movement per window, beyond noise, that still counts as - a plateau (default 0.05), in posterior SDs (guide scale), prior SDs - (MAP locations), or log/logit units (positive or bounded - parameters). + a plateau (default 0.05), in posterior SDs (guide scale, floored + at ``PRIOR_SD_FLOOR`` of the prior SD), prior SDs (MAP locations), + or log/logit units (positive or bounded parameters). final_step_size : float or None, optional Smallest step size. None (default) or a value >= the current step size disables cuts: the first sustained plateau is convergence. @@ -676,8 +700,8 @@ def build_scan(): if converged: print(f"Converged at step {self._current_step} (step size " f"{monitor.step_size:.3g}, {monitor.num_cuts} cut(s)): " - f"no significant loss improvement or parameter movement " - f"for {patience} windows.", flush=True) + f"no significant loss improvement, parameter movement " + f"or loss skew for {patience} windows.", flush=True) else: print(f"Stopped at step {self._current_step} " f"(max_num_epochs) without converging. Last window: " @@ -690,16 +714,15 @@ def build_scan(): def _set_step_size(self, svi, step_size): """ - Give ``svi`` a ClippedAdam with a new constant step size. + Give ``svi`` the same kind of optimizer (clipped or not) with a new + constant step size. The optimizer state (step count, parameters, Adam moments) does not depend on the step size, so the existing state carries over. """ - clip_norm = self._adam_clip_norm - if clip_norm is None: - clip_norm = getattr(svi.optim, "clip_norm", 10.0) - svi.optim = ClippedAdam(step_size=step_size, clip_norm=clip_norm) + clip_norm = getattr(svi.optim, "clip_norm", None) + svi.optim = adam_optimizer(step_size, clip_norm) self._step_size = step_size @staticmethod @@ -719,20 +742,27 @@ def _param_normalizer_specs(self, svi, svi_state, unconstrained): - ``("unit",)``: movement taken as is -- parameters on a positive or bounded support (tracked in log/logit units, so relative), and real parameters with no better reference; - - ``("scale", scale_name)``: a guide location divided by its paired - guide scale (posterior SD); - - ``("auto_continuous",)``: an AutoContinuous ``auto_loc`` divided by - the posterior SD derived from its scale parameters; + - ``("scale", scale_name, floor)``: a guide location divided by its + paired guide scale (posterior SD); + - ``("auto_continuous", floor)``: an AutoContinuous ``auto_loc`` + divided by the posterior SD derived from its scale parameters; - ``("prior", sd)``: a MAP (AutoDelta) location divided by the prior SD of its site. + + ``floor`` (an array broadcastable to the location, or None) is + ``conv.PRIOR_SD_FLOOR`` times the site's prior SD in unconstrained + units; the posterior SD is never taken to be smaller. """ transforms = self._param_transforms(svi) shapes = {k: jnp.shape(v) for k, v in unconstrained.items()} prior_sds = {} + floors = {} if self._guide_type == "delta": prior_sds = self._delta_prior_sds(svi, svi_state) + else: + floors = self._posterior_sd_floors(svi, svi_state, shapes) specs = {} for name in unconstrained: @@ -745,7 +775,7 @@ def _param_normalizer_specs(self, svi, svi_state, unconstrained): continue if name == "auto_loc": - specs[name] = ("auto_continuous",) + specs[name] = ("auto_continuous", floors.get(name)) continue partner = None @@ -759,7 +789,7 @@ def _param_normalizer_specs(self, svi, svi_state, unconstrained): site = (name[:-len(AUTO_LOC_SUFFIX)] if name.endswith(AUTO_LOC_SUFFIX) else None) if partner is not None: - specs[name] = ("scale", partner) + specs[name] = ("scale", partner, floors.get(name)) elif site is not None and site in prior_sds \ and jnp.shape(prior_sds[site]) == shapes[name]: specs[name] = ("prior", prior_sds[site]) @@ -767,6 +797,77 @@ def _param_normalizer_specs(self, svi, svi_state, unconstrained): specs[name] = ("unit",) return specs + def _posterior_sd_floors(self, svi, svi_state, shapes): + """ + ``{location param: PRIOR_SD_FLOOR * prior SD}`` for variational + guides, in the location's unconstrained units ({} on failure). + + Component-guide locations are matched to their sites through the + ``{site}_loc(s)`` convention, AutoNormal's through ``{site}_auto_loc``, + and an AutoContinuous ``auto_loc`` is assembled from the per-site + floors in the guide's own latent order (sites without a finite prior + spread get no floor). + """ + + try: + constrained = svi.get_params(svi_state) + batch = self._trace_batch() + sites = trace_model_sites(self.model.jax_model, self.model.priors, + batch) + guide = svi.guide + if isinstance(guide, autoguide.AutoGuide): + guide_map = None + current = guide.median(constrained) + else: + guide_map, _, _ = component_guide_map(guide, + self.model.priors, + batch) + current = site_values(constrained, sites, guide_map) + sites = trace_model_sites(self.model.jax_model, self.model.priors, + batch, substitutions=current) + sds = site_unconstrained_prior_sds(sites) + except Exception as err: # pragma: no cover - defensive + print(f"Could not compute prior SDs to floor posterior SDs for " + f"parameter movement ({err}); guide scales are used as " + f"they are.", flush=True) + return {} + + frac = conv.PRIOR_SD_FLOOR + floors = {} + if guide_map is not None: + for site, entry in guide_map.items(): + loc = entry["loc"] + if site in sds and loc in shapes: + try: + floors[loc] = frac * jnp.broadcast_to(sds[site], + shapes[loc]) + except ValueError: + pass + elif isinstance(guide, autoguide.AutoContinuous): + init_locs = getattr(guide, "_init_locs", None) + if init_locs and "auto_loc" in shapes: + from numpyro.infer.autoguide import _ravel_dict + parts = {} + for site, value in init_locs.items(): + shape = jnp.shape(value) + if site in sds and jnp.size(sds[site]) == jnp.size(value): + parts[site] = frac * jnp.reshape( + jnp.asarray(sds[site], dtype=float), shape) + else: + parts[site] = jnp.zeros(shape) + flat, _ = _ravel_dict(parts) + if flat.shape == shapes["auto_loc"]: + floors["auto_loc"] = flat + else: + for site, sd in sds.items(): + loc = site + AUTO_LOC_SUFFIX + if loc in shapes: + try: + floors[loc] = frac * jnp.broadcast_to(sd, shapes[loc]) + except ValueError: + pass + return floors + def _delta_prior_sds(self, svi, svi_state): """Prior SD of each site at the current MAP point ({} on failure).""" try: @@ -858,9 +959,12 @@ def component_guide_start(self, values, guesses=None, init_scale=None): def _normalizer(spec, constrained): """Evaluate one normalizer spec at the current constrained params.""" kind = spec[0] + floor = None if kind == "scale": norm = constrained[spec[1]] + floor = spec[2] if len(spec) > 2 else None elif kind == "auto_continuous": + floor = spec[1] if len(spec) > 1 else None if "auto_scale_tril" in constrained: tril = constrained["auto_scale_tril"] norm = jnp.sqrt(jnp.sum(tril * tril, axis=-1)) @@ -876,7 +980,10 @@ def _normalizer(spec, constrained): norm = spec[1] else: norm = 1.0 - return jnp.maximum(jnp.asarray(norm, dtype=float), 1e-12) + norm = jnp.asarray(norm, dtype=float) + if floor is not None: + norm = jnp.maximum(norm, floor) + return jnp.maximum(norm, 1e-12) def _end_window(self, svi, svi_state, monitor, specs, losses, block_means, block_centers, window_steps): @@ -1342,7 +1449,8 @@ def _write_checkpoint(self,svi_state,out_prefix): "step_size": self._checkpoint_step_size(), "convergence": self._convergence_state(), "guide_type":self._guide_type, - "guide_kwargs":self._guide_kwargs} + "guide_kwargs":self._guide_kwargs, + "adam_clip_norm":self._adam_clip_norm} tmp_checkpoint_file = f"{out_prefix}_checkpoint.tmp.pkl" @@ -1387,7 +1495,8 @@ def _write_epoch_checkpoint(self, svi_state, epoch): "step_size": self._checkpoint_step_size(), "convergence": self._convergence_state(), "guide_type": self._guide_type, - "guide_kwargs": self._guide_kwargs} + "guide_kwargs": self._guide_kwargs, + "adam_clip_norm": self._adam_clip_norm} tmp_file = f"{epoch_file}.tmp" with open(tmp_file, "wb") as f: @@ -1534,6 +1643,7 @@ def _write_losses(self,losses,out_prefix): _CONVERGENCE_COLUMNS = ("step", "epoch", "step_size", "loss", "loss_drop", "loss_drop_se", "loss_t", "loss_improving", + "loss_mean", "loss_skew", "loss_skewed", "worst_param", "worst_param_excess", "worst_param_drift", "params_moving", "plateau", "plateau_count", "decision") @@ -1552,6 +1662,8 @@ def _write_convergence(self, record, out_prefix): if self._current_step == 0 or not os.path.exists(path): with open(path, "w") as f: f.write(",".join(self._CONVERGENCE_COLUMNS) + "\n") + else: + self._migrate_convergence_columns(path) return row = dict(record) @@ -1562,6 +1674,27 @@ def _write_convergence(self, record, out_prefix): f.flush() os.fsync(f.fileno()) + def _migrate_convergence_columns(self, path): + """ + Rewrite a resumed run's convergence file under the current columns + (a file written by an older version lacks some), keeping every value + under its column name and leaving new columns empty. + """ + + import csv + with open(path, newline="") as f: + rows = list(csv.DictReader(f)) + f.seek(0) + header = next(csv.reader(f), []) + if tuple(header) == self._CONVERGENCE_COLUMNS: + return + with open(path, "w", newline="") as f: + writer = csv.DictWriter(f, fieldnames=self._CONVERGENCE_COLUMNS, + extrasaction="ignore", restval="", + lineterminator="\n") + writer.writeheader() + writer.writerows(rows) + def _checkpoint_step_size(self): """Current constant step size, or None for a schedule/unknown.""" if self._monitor is not None and np.isfinite(self._monitor.step_size): diff --git a/src/tfscreen/tfmodel/scripts/fit_model_cli.py b/src/tfscreen/tfmodel/scripts/fit_model_cli.py index b85ab831..6e083f0e 100644 --- a/src/tfscreen/tfmodel/scripts/fit_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/fit_model_cli.py @@ -46,7 +46,7 @@ def _run_map(ri, checkpoint_file=None, out_prefix="tfs", adam_step_size=1e-3, - adam_clip_norm=1.0, + adam_clip_norm=None, elbo_num_particles=2, label="MAP", **optimization_kwargs): @@ -66,8 +66,11 @@ def _run_map(ri, Output file root for checkpoints and results (default "tfs"). adam_step_size : float, optional Starting step size for the Adam optimizer (default 1e-3). - adam_clip_norm : float, optional - Gradient clipping norm for Adam optimizer (default 1.0). + adam_clip_norm : float or None, optional + Clip each gradient element to +/- this value (numpyro ClippedAdam). + None (default) disables clipping: when gradients are much larger + than the clip, an elementwise clip makes Adam follow the gradient's + sign, and its fixed point is biased by rare large ELBO penalties. elbo_num_particles : int, optional Number of particles for ELBO estimation during MAP (default 2). label : str, optional @@ -121,7 +124,7 @@ def _run_svi(ri, checkpoint_file=None, out_prefix="tfs", adam_step_size=1e-3, - adam_clip_norm=1.0, + adam_clip_norm=None, elbo_num_particles=2, guide_type="component", guide_kwargs=None, @@ -143,8 +146,11 @@ def _run_svi(ri, Output file root for checkpoints and results (default "tfs"). adam_step_size : float, optional Starting step size for the Adam optimizer (default 1e-3). - adam_clip_norm : float, optional - Gradient clipping norm for Adam optimizer (default 1.0). + adam_clip_norm : float or None, optional + Clip each gradient element to +/- this value (numpyro ClippedAdam). + None (default) disables clipping: when gradients are much larger + than the clip, an elementwise clip makes Adam follow the gradient's + sign, and its fixed point is biased by rare large ELBO penalties. elbo_num_particles : int, optional Number of particles for ELBO estimation during SVI (default 2). guide_type : str, optional @@ -291,7 +297,7 @@ def fit_model(config_file, adam_step_size=1e-3, adam_final_step_size=1e-6, adam_step_size_cut=0.1, - adam_clip_norm=1.0, + adam_clip_norm=None, elbo_num_particles=2, convergence_window_steps=2000, patience=3, @@ -366,8 +372,11 @@ def fit_model(config_file, for a constant step size. adam_step_size_cut : float, optional Factor applied to the step size at each cut (default 0.1). - adam_clip_norm : float, optional - Gradient clipping norm for Adam optimizer (default 1.0). + adam_clip_norm : float or None, optional + Clip each gradient element to +/- this value (numpyro ClippedAdam). + None (default) disables clipping: when gradients are much larger + than the clip, an elementwise clip makes Adam follow the gradient's + sign, and its fixed point is biased by rare large ELBO penalties. elbo_num_particles : int, optional Number of particles for ELBO estimation (default 2). convergence_window_steps : int, optional @@ -583,6 +592,7 @@ def fit_model(config_file, def main(): return generalized_main(fit_model, manual_arg_types={"config_file":str, + "adam_clip_norm":float, "seed":int, "checkpoint_file":str, "guide_rank":int, diff --git a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py index 61375915..e2ff7135 100644 --- a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py +++ b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py @@ -1157,7 +1157,7 @@ def run_prefit_calibration(config_file, adam_step_size=1e-3, adam_final_step_size=1e-6, adam_step_size_cut=0.1, - adam_clip_norm=1.0, + adam_clip_norm=None, elbo_num_particles=2, convergence_window_steps=2000, patience=3, @@ -1218,8 +1218,11 @@ def run_prefit_calibration(config_file, the run converges at the first plateau at this size. adam_step_size_cut : float, optional Factor applied to the step size at each cut (default 0.1). - adam_clip_norm : float, optional - Gradient clipping norm for the Adam optimizer (default 1.0). + adam_clip_norm : float or None, optional + Clip each gradient element to +/- this value (numpyro ClippedAdam). + None (default) disables clipping: when gradients are much larger + than the clip, an elementwise clip makes Adam follow the gradient's + sign, and its fixed point is biased by rare large ELBO penalties. elbo_num_particles : int, optional Number of particles for ELBO estimation (default 2). convergence_window_steps : int, optional @@ -1404,6 +1407,7 @@ def main(): return generalized_main( run_prefit_calibration, manual_arg_types={"config_file": str, + "adam_clip_norm": float, "seed": int, "checkpoint_file": str, "k_scale_floor": float, diff --git a/tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_clipped_events_run0003.npy b/tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_clipped_events_run0003.npy new file mode 100644 index 0000000000000000000000000000000000000000..5b41c52ff418bfec0dd295d5ce7dbc4684343c3a GIT binary patch literal 48128 zcmbSzhhL5V|9-gd`^@&xIHx6*BuTP&TrVWq**hf3UI{rR2_Y-lBzt9t%(s!OWF_0% z%=XUyT|VFc;P-w!-Vf9{_qp%a>-oH{>v=t&ud_J3Yx{^E70f1>P4yW(WbB|ZJ`LP` z8bt;B_`CZ=jT$p<%z)T_qs9y#^7rSh2gHmW!k>>FHXv>Y|Lt2VC@?V4znZ`MH243{ z|Fn@>3v}^UFmt&I*ITIYJ3>aK@e=;j7wA+Xq4ZcUWZY8FWr2c9b}D2(kg@3STSTlf zM_dIBg1>8Fb=?!gt4i>m7KqzVB>b8yA;CtAabG2f&l*fQE#slHj30yM;kdPetdnJmqQ8$Pn0ljtb(%88YsHc9w(|B#0(o1;QvQAWxn8!^=+!}stpL@ZRn@wPv#ja|gE3Q1z*?|(3X_gst5qW>c!b+Zi5%46W$ zPr`328S~35(P_OJ(Uvkk=gNr63&-1?3Wn)qZ2Tdk^o@+Rd+iXNqk?ikg*NLYxc7`j z$PzW|?#nO@lyLjMmDpY;!(z7w6 zn&ZuTKkO?|;LPU`EfrYI^+bfXj-RQ*?L--yXUSOoSqz_QHsD{H%^LI-CC^M%V6y4?R6_ zXgA+;)Ix0jpy2x;#?xZ%g@X-JMwo=<2*zvye|9bwkD43ANR0-K=SgT=U50mm842Sp zU>K+1Py;m*EAn}oZNX2Cz1R|<#-yEEY}sceUj31$-QV3PZ2SSUNlydz{SSx`%NVuAp$J3RMQFaB#nb zR{!ln7)jO00jl_Bn0l;hfmzc zPR!xfl_m?*cL{Oax<3vQ4~M8QsnI&T;QfywW(@Z;3H1v#n(bx$gvfa1 zror_x32S>wToa>sm|BX-?In15s`2={8ad8ZFke;+j=l7-7%gE#A5RDq*Ki|qkt%tT4IPof>vj8M3GwxoU~C;XOaqr?&dI`C*#t%`l4e> zlJNPaAR|nN*Ja*#H%7t~#_*XJ60WC8Fk?RSdSMceo*6`3QWmC|t6{9CV5c?nu|txm zcG@7m|L1^3|0;OFJ=0}yZMlw93ngfNDv0l*!PBpfa2UhqY|m$N;xqcnSo^Fu9$Yet zsj>qNPMvA`Vu z{E};USdEDKjO#_jif0lWh*wqeD#J9=7W!Y6;8LeG(wN)9OLbV@nY=XGRYcU2(0?N_ zg3lP>?;%oZ$uPt(MzD_9{jLt;-pvrtJIoT#|B(?#tc$Gr3a={H#@>a&Vp9-5_q-+A z+A!{{>WJP_XR)yxW10A#+e(YttGq=d@o>Tc8QI&omQ7Z{{JjjbF)D0SEU>eJ3Vy3p zSTxog-Fs+I$op@&Ed|OZYdjvTK^3mm*D2$1{2<>`e;6iIv%{4b8O1s+c1*BE$Zh7; zX9-!iB^>8#w|}03ZWGkFc|?a;N27TBg?#u$!PnCg%I%q3{iow@!zQ@9NP-pPt>+gl z+FWOj%;CMIg^Kxw2JugljNj?ppNBU1(EcitM{D3WvNhJLJkWBsj4LZnh_x;X_5}DK zwz(ZjKN&>+ME;$hv2~0qM)%-nu930adlO9iW%T1-H?%N_PcLM+#@mVG<8^4X%^-3% zOZa$ho=8ZxK}a8!Cq@ba=$8A$T(0@M$S_1aW{d{eb@a386{uo-HET-KoArVL3%P9;~l6FW7HDz-g>vb7P10R2741tEN-P>-$RvHmY|@XUPkq)3QD=wLmQCO?m9s_!8PPM zTzhE}#gXKp06kvSk+7tf3-;2q&D&q8|Au;lIFzx&e2iwS z)ovSzDm^WbyvZEPxwlQou}d2`pi{U7zI$pBny5nbEO)fcW=uC`EKuu>$o56aa7S4C z@cp~V#oPmDlLp!*PPqDSb$G`sh+QG!E7S}IaA$L9baSQ+V(!&<^VtYp` zw7;stx?ASr0@v>24GBGuX|X?Bf=`MBnX$i}d|L3R5JC5d>1TDwTPWjCxZ=W#=8Kf>65e0&MhVw4Y$>(%Ss4LO%th20CuA%n=56PD zw=mu#4aodno!p^d?M4ZEiG7FGS)#`;ji@ocj@a8E1!XM^qJ*Cte}MR4#Xl#?=(x{9 zRQy^A!^lTz$9T^T$ax3M@snJgynOtg2T*YEKzA++>VvEMwSo=Foi^KMxU8cbG7F zn-2LsEn#=H4NjLchQ4|ruc`vELP6pMUTaHbgtnuWIA@MgPhv5Su@Mx(7%P)8^BsA+ zl7iizTcdEF0{IHH1UdA`AT5^psW5*|0<_H6zT3$Y6E*Of$Y*4{?lrT)5Er9pU8=?h z#Riw_^XJ`}CybwFjCIR9{$g^enJDfkV|c%4;X|$Gdec=nq_d6~q=7Ga>94Jc$%XnQ(?pbMzK(6uH4OSS|LdNS) z)M{}ODnD!{E}T{&;2#M&)WtdD6@>az%e8hAbGhfOduVaqQIFM6x%b4Ll0G(QLOpYe z&;E7~b$@OJaUj(w?hMdk{BsH4i2Y6W>ahN$f(i*TlDUrg+^2Xi>ML6{ZuL`;S{NeY zN6Xl=mG#7Ma|}3l2>W_i3sG0Wk&ik!Ge@;U=*(?-?o=-zYKKb`! z1LPi4@R2pg-7ZGq#d!F}yjfu;!*4t_&}>_Tb+0O(##a!DyNRRGGRoi9#n?FV-yJnN zjqfFL#~VZ^a=O_A1sik7*Q^nK7gWVm?<=S=g?P}H`S^%>)~JTHqc0qPJ%dZlZJ6$E zC)WJ7LR&3$Nr*W@vxCtzlW{RYi?>Ut_qwVPzgI#t2aQ;sDcQ?E8ukf$RD z?^D5@G4i#$n}{SY4&*Z*^&I?fD| zFz^@kfvkaD=_n*ncUzNZhyTNRphhx&Q@2ZhW4s!3bm0)3(J9cATW$my#SBw>lrhIn z&F6kn`+(T;?+0IaL55egGnll2G4H^7l^8#yeTw)ul(9yQxvkPM;mEaU$vp}A=7=k` zn&H)mEhu*Egbn|g#BypOU)CIBiD~&wD#Pfiz~>}iKf)jellRN3s}V)sTX{bNQA5cg z^?i{-p1SF6EB2EkEbq9BG9!7N>o@oU@5xq3dX^_X zQPamzdoyza2^BM_;R(fT3l-ft^J+b%M0 z-P|rFk?XcB=X%yi5m8*9q1&os)Iu!=PUc>%(P8q10O2=PLZ5dgaVS)W-wmj1BDiL` zDg^$G|E^WVwW0JR#(3e&XD6|QSarA~^Qoln8@{fPy3fH~M&&>WYkpXYyxn#f$9>2fr$Xx!GOXuL!1bmLVRxfF zeCjwc52}eJ)WeO*VOCal7;Ph?=2{8bnKCB#VqWaAN8b%v%vnp^EYv|i*8xwftNy2j zU5~Pk?<3>f(NXXtHuavZpatJkSj2jWy6^`%IH81o3w39UY1GT-2SZDaKfl=xO9xW3 z?l*{!%k+4A%oV25BZbouEwqccw~Wm!H)_1f63*CaP)t0%UML}DJFqI9xZ9YR$^4zc zTsC#^f^$Ra*O9EhlB{7f#vL)ta}zaz&nF2N=+8{z9yh%=UHrSesyLrD98+puf^{Y8 zyv@V{^3TR6_M$WQ!9cBCo3Rr)#Dv0b5}s7kB6^h!w+b>Yds?7iy%E{(PKY(k1uw74 z@c&Q?!T+eS^r$29z7a?28O1Q(ON;reg_xi2PI~m@=NNLI;yHQ#2)XI`M-5UKBR*~U zn!XyO-d>KupLj0qTY@sH@>N)!S)#{w75VWwOB^QJPDhVG(XTC}p#u&(X!TRO9jp)*fy6AcnL^mZ4EP03U6^H3Lj72Jc9=x+E_A*9eH>r?w z-yEI0>kxjA8hJ!R#9UR=zf|yOF?|E-`IumGGI7Q5rJYD7KJQIeV=eI}=qPLA$;6If zf%x#$Boe(1B9lD*^AhXR!xre7-dY50p~me=UF@sI)bV;8Uu=X^CmB^rh>a>W>XR#` za}US)q~e~79U`VO2KbpkB`>t2^&5vYP4J>OU5Cee-S`}#6<2i+-!JH|nGuJ5C$jG7=_(rS;5z&^iQ0^(Vq%$XJbj}zTJ-I=7(+&f;&_09<%fpj z2iLRWG-~E%tKomeAU3jo4kyOvGA?H%5_g`f@wpx2c=2M9_*=rVuO>0<-?yT$wFSH$ zxWkKi^9C#g@U|v-<)I3Vh;RDmrN}W7uk>2@UZuA*rz4(wQgd!r zVd!*nke7_v)MC3^k#D))OD9f3${GtyVthFAGqXlb5!bpg4w`cvDtd{}BQ&sphcLWR z5Sh>db~!TEKc^lDP+{;A6qzG9 zgBaM!3E0CmZ16@#pDJ!5{oE-;pCvcl)gb?dgfBC<;{~h16IN5hx*Ww8IhJ4Zg&I%DheA~FQiinG^41IIr2)Sd|N0UekB)7cNiqCxgt1d(F zz^@)$rpU0FHW=gkvHqz;EPlmWfY17CQZeQ^Q@6y~VfPOe!nrqFYNd#Fkr@ z?87=7Et2u;SiX31PQv~vC1}E!%&QohTB-@BwwNcy%rS@JcW59iP-9}>cw*}}nILGd63?~@daar4CmwG(buYK@}MWR%p_;6Ru)ioC55Il&DD zRjY`;U|cbF=Jqg&2IPQ>W&t?FYu%UVr4+cMxS~-U%3ywP&>`y}H5GC2#a7n0)Z8`g zxJRs)9#cn^^5+W%@IEddM$M)4mKY26BiPe%C$IDiMj^f3>#50N)BaF={-naFNUrNy zYVg}m;`ex0#(oWwke;p?v~L%po-xcycInfiCkUXv)_uEvlbv&7N)7RWup+J@Mp z4{e9GUz|`<(*eCdyn$e@?xe2B8Ky#EnF|J-9)qWIsKZ+*cr(f%l9@Lp)Iss*Q;>1e z6MP=_4TyO`QA+lZD9=Ez^ep3zw?GP@c@FUGl@+6vpVM~dElu43gpgXqOviaQ>Q zVRtmt$ugYs-G$>LG?BVF)l^gR4@ zWlxX%>HC}b!Dkkk)OTz6x=GeZIvb320~!1L_c*oC0kP}a_oT2!7y4`KRvObKGVlGCcz(2JYR zFJbrdbmTIIkGEw{!%T}=jTG!ZL|vXWRy6NY8TpSD^d(QOBKPNQvqHLTfiKLj^>$Un zlyR2$N}dm*epuUqJ(Dpqw$@P4O=Ay-DJm2Y7bglW&b6ry$BXnHSo=F(+JmxrwjzPp zVizal;!O7OxMoKg!=lWqF?Wz!|_2f?7r)8fcP<3zYaagYjw*s7^u~u*8w-U2Uw$w_^VW8 zyw%krM@^m^LLZiOa+5p@Ji6V`#Z0Y?mIy^6h+<8-INSdP_CcsP==k-sDEe=6(AzM!s@i1IT~<+VR<` zC6_v>;6xAQ3~O?$5;w7Nuoi|oY9u8vhhIu)Q09P#K1Q*9IoD#r4t&isihfPV={CT) z)2#m(zimgvp|GL`pXM0FxiJzdk=In_-B7l{Q8eqtdSDne0zdEkE(wob8ARnN=Gdc9 zKkjiBTZzxFZ)*_ks=|M)GgH4)v$0RIGgihI^5)hft+84|9pr0`p$8Q_y)YbqTIx_a z(J034rKZZKM>~Pu;Cm+wd}=@{Yqz_5=HL`Hb3}z;v~JG+-4YodS9MtFK;JrzHF-!F zmeLbDzE+Ee0o3kInuv;SGD839kM+J1-tDZ5NvG%ITqEj~1@v(ru(ws71!Rite?DbFuWdSks(8 zszHOh^n0dy<4Zp)k(pKdf86ng_;T?c`(#CZh1(1T^Uc)wd4fKG(@QkrbBETYzMNSZ zk*rI?vLt+9u9!VEAma}EJmm3BK^DjyN8a7Sx{rB!oO$Qo!b0qJ)nhX8@kXqka|Bvg z@aJ2Yhs`!oH_Y0E+%xQl$?3>j`u9528|+6<9InO##+2Q8*46DlKuwM`e5S^V494%> zU12koTs+n&Hs=?>TOp6K?q2;|fp)qI9y#>LSCY4yFo#%k87%la*0-nDS-_%hv?#b& z7ZYq4V|Sk*JA9_dxyUu{QX)=|nT@?+!$tmN^6G0FMEg-^e+!|{CZSF(H9Uy{dajR} zc~DC3o9RP8qJ|1P%3W~YuRC`8%UI04ywCj}USt&R=UFEnV!hYXACZ?7^cemE*G9Su z!P=((Q$0QwtC8z52R|1(V8l5!4rRBb2OvRBENei{E+#g#V(m0OdJru3{q4)Lw(C(< z%z8&Y;5|7LGlIzne`BxzJTKw8jlEPp_vbFuF6?vX{Hwz8VmskajEH7lKb!Li1{Zs% z5~hin*VsSVHtsn4^L6Y{0x8@xmWv(p7Co5WBSq0PFW%r4SF`Z=WEzIfZPn_d~BMT+Ozn&%hmL!Yp#xlCvBnyZ45@G`!;mdq0y0u>H z%$ISUc)52E^+9b*EWbytdbbA7#O)aFzeoE3@xBe`RVGQ8L_Knsexy@gV~lCK2YJC& z@wB}bPe+nNwvr=e%Ay|kB`b9f-Yl3UoShUjYNdz&NODdOIPBCM7k+6U+1y@z$b z1>^D=dmP6#sJ>GrY`K=^sWL9u(mVNA!YFE#ms2qO+J06!uMXSah=+3Kt~OJ%EZhCCNXJvCnOFeRx*$L=rOM*wv=zShZ$r1{If_L zuUZrSr5ZzcqTu=Dxh0q6j?<9WmJzmso*E1{QDYfhEljL*aSKdHRc(OiD zucyP|nw7biI`m$xMMycZbuQyBg*?Gnx-##uxHgsb3;he{J+@fOdj4wFNF*PXaWKFQ zXW6?B&x%Co0S_ok?2z^`8)>aH=uNCVLY+CLf*MUOwS#uQf__~4N!uNfP{dm2p@M_& zTyUhO1`oRW;W4>;M?V$RqZ?xoantF%Nd#2viK{c&mt~!pLho=dHEP&ma{5fh>bqRA zn6X^?S%uUndUNqDaXp#)&U^27R*i&Xj4`g^EbqJUZD>T)P5O3CHOL_rxo*+JTu0x5 zT%Ueg4=dI&4si~s-F1dA8$yqZcqchB&bh8xRoJ@@NfVoFov^%JS2$kddmhoJZLh$y zmGr+g&EVfnv1SalIOlK7RuO|(Cr0_w!?{gg zmbjkB+9Tu~YcuA~$1*hnYuSpe9duZ`A`lMK$U_HM`%NP@da~9aetpek-rVFmu44_z zc&S~L{mCSqSjlI-KiwegxUbp7({iq{lBUIOsUPCn8bqS~-)A<6Gu!8h+^fBi-=Ax5 zV}nfUg6+h+uvrG-Z&)kVR zCE*ln`xwTBCw+*_8XkDa&wl@w+`E&!W^fUkDzN969n_kpmf6jYxUdtLO2g1eAx%5R=xrj`@x72l>_}QO60sGCL z8E5T2C|F0ox$RUvYBgpb{ERhPHJFlhAPV7g&_7M4; z>-B~|yIah@!Z-zMb}5)aZ6R}RI>~F=8AW$$kRHdUVVCOw2%QZ+6Gxsg z*2`A1wwMzw2Im^ZhU{k|bqaIj8s`$2`)91{q6RTx%6kd_JoH2d-g_hBX77wC_#PQA z7MJqcappK*m)d6y_1{r70_d~(>zYB!T>QG5GXS|Jk)NSP<~kYs8#cn22{VMA*ilMc zF!bd0+OQtXV$IrvYf0RD8cF_Y&AvO=!P-{^Q=%odcN&5aYkEYt4WgYt>;3`>4cn0` zK1!JB+8e3F=vBjsX&rTFb-@x7S95MNW(BU_RPZ0yMMloQJ?}ZT$m1FmP)GHwViXathl%%cGBS^9 zkyV{sYDF)&-YLnYH{7mLS1bMyh32J}t zZ;Pf*n6Kfp+bQ@--(>w(_RB`i6e};VpGW|}?2W&dG3at#>PiKj82b-dqm+0sCb&Moi4mpA)Kwd* z;arzkVR<1Gr@Gr?1fP5EK9hJF(Hx#T*@GVEDF#ktuf&Xfd*aOr`mIlo8pPhYUD1s> z`+bXqdero9xCY0&Ou&VUM&Ug<98;J}*U1%Aay3ZW$$E^uVzG~X-~{?lyjI_z?3?GS z@G+Zs&)PO(coi%hA;X-#!$!oOy`71<^wWnmsw>9Qk22_uu$xSLAr3q4bP1#4i!eYpGoVhr_ zJQ*F5Bx1=KF5fxRGJtboZ|UWIBL*yF(gSLGy_qU0JTJu_oqR}c;rWgD@jq{;HZ1AdvI~MtB|EDF!WiW29 z8}R_A(E2#F?M52}+_1x;FFNcnbRX)S=_qzjG!UNPO0z`D%n#YlXK%**l4L z!>>9D(nop1y**=bCh>M3`%$F^(L2l>1=Q`Pww!efqV}QxG(C@XWt2fIY)}I}d*_HR z?2`q%keldvtyL+gSzC>R#kL~I!vo*wW31b32QQgCvOP&WB#v()7XR%pY~;0`dr?Z$qpyEP!SE%5b(l34{-*cHXU#pxy2D@;7C%|@cQoO41qmJh;*AUWaTv@18A*J&T%TFoh1fX+hH|p)}qU5yn0+oG>Y~RG33e_TpQC* z_C+KGQ;(}LVI_5x=M}`-c0fT7ddBP>d)smS%(#{lRj}z`i(F#W-a3E+n@^ll2S(*^LWi8t>~k$KVUXn zgNt2RuXg2p*$m?5MH2?*ux4RQttTG)##o_Q1#?^+$osEkgY(4lg8DinueHG0&g>~M zH!Gg#k380^Q5Jl@5<9W+B(L{~7?xjMXp)n}kt7M#ImgvK(-TH&?uKPaoI40bq4{8F z=+RZIzYw*$5Km&+r&?)+fWPrVoXq^en#q%RFup1hFDtmHS1>Vpmbe_wTn**@i4c?% z+r3^j6At;DxuXt=nxeqpPr+e#y@;7w746CWpXfn%enGsQu3#JS?B7&sFuv~H0DfM3 z2mHv<<4-|#tYtmB#Q7KwkzYS0G2iAgj;RS=cD2L3Z6?wB31iWu#aR1>2tR9u)vWtw zRB41V^1zJNoC%_4=(Jpekq=bj>k9TEbqXG&GOnFfc**)bg<5Ok&+e$Q%$&N-95!J_ zF^4?+na?gU557@9-@Qq^WiP!&bNazg7?*s`gB6IM{T#&4)Bc#l^-{Ap9_b#|uv3rMtclI&U*)yuS~6Y+oH`{=Ime=2Ipcv^t^w=6D%q@i zkGhE7;p}O$rZs#q;w!Pbb@Np83$YYI-o#Jh{6lJ~UM&=;dH>;)+8~2D?jB)>r+fJ` zZ)(BYoaO6He0<0`BViKZHLY>=kOeGRKOFkPeB&Pd`Hyv-XDFV8YH?%({h6)g@q>}@ zCzhXN-5A4KVmkL`=Day5j+~Ju`67)Q($;g1gBsyuWA-;P z>ESU~`)N62O&lAvLxXD>tevRqoT(MB1Urf%uIb_`mRLl5?84bs@9J-%`Qj#uXVSay zF^S7%(eQjm52U3HIx?TP&LYM$M-rB^=SvM2_Ktpt_U{~H5ki^I4T-5|PU#`YK|`5) zHuTI3G%D1NT`a=)Q?FK{7eyS`GFN6&Gj+J;z!^s?blF1Bi+a`mJ@ZPe#7FYgF2+FcHK8K${ zB-za%52^6ewgs$sPvw27m)=pg(NEDUoP{H1KVq-(X^X8W#2DQ=k>tVk+WcRmvxIP_pv4QA9LjD6LNFpKy>5h-#F$hEd7jP z4KX%K?IIp;^n&eigK+KYjy%@F7CBs((s1~9N)?6N0|#=f>k8gq5V3EWB`#Gkik+`i zIAYG{IHCwg)@Z4q*MFcMd^-4H&+j?n^8yVjF?MUKS7KZ^xt*9M=h?xG*Dku%07d)B zyUgkN)Z(Kg&b@UfZuh$yI9!sTH#7#*i=^` z=q1;?Cu^^T2H_W=VDqvRoN{AtXAI}Gu3mySwd+gY*`oB_EMaz=b^8dTNaR{N*mF%| zh>c^+alD2%w2j%9&M=AB#P*8+n&Ufp{~Yr*PiFszI%&LxIYOp$R>Gjd*0Jo5z{G-4ZCpt3OhLA*CjXc&Z8xQsR{l~qjyETYcXm9Tsd11no^EJ zXM=D!N-U&a{oIoEb;x}_)D?Re3;z+{=24%X*CC{_o47lXTIwYG`$GfK zYpy#|o3m%p*A{b*riYk#lmYgq1#@H*Y5$EbTC$ER^Vhv7y@xXlkzD8&*pi7b{AePyY-_~c2 z5pi7q<@I=WZvE~5dF7p)ti<5@vk*6w8hahRiJcO5)$@UYIe591+@`^EoV6Zd#L_qvrm0%R4w4p8G7{Y4w*@jK$o)PZwwl^V(D?1$#rv&8%( zEpU#pk(kdKoi*JL?q4mFB|Hn+`{SAwL{CRT%Q?dR347uzfMCXLF7dh(d-y?%Soa38 zhM`spdejQ*lQqalsUwc7WDK>}A%R@kX|e`c#48*6(`T0lVRVriD+&#GoY+eYPA3jz$0^f)+R_yp^Yf%|6sZ81zk)7p$k~tz|M_g4ERA#Dfxr zy%fgz^D8R!AFW63Q#U*u#CqX+70hVyA2NtB?d=>P_!^r>YNT<`UoieQQct{ELp>ku zAhMYcOAE=EOnLtkDW)WWa6^hc*k)TLAF;|zOOHeAQVgT(x6X`(G_hoH~I zv_d`Ja8EYznsLP8_^~!{;2LDdkh_-#)#&TCxZ4mX zh{?Z*J$tiQXIEsNc+M0T8``4Gj(){P1AMmyKe1X+`nz7(HgrFjydL zytvwgx{lm(bTqw9>Zign)TdF5=XmyzUTLAanSzA6R;WjRtW$(Jy2exE{&d2XcI-||4hP}cu|r2>R+nCxK!@lgL=4q zT#L;O)tDdQD!j8+O+f;`xgIxW^r8 z^9&#Hi~GOxP6jrfvW8!8&M;Z3ki9xde3(m3%DSZm_xb!V_DQI}EQlXw#MV*6>Y@6H zk8qw$yu4?R7T3ZtjF|9;{1`gA0VWaO4rdxgvkYoQVn_mYRksSA#eoCFJLYE?|KHNq zN?dzCM;xiZ9=pX9bl&VHEI-e{nj7S$@dFX&S5Lf{P5nH?4F*9CwfS!kka2$74=K|f zM0s!KL1pT2dVv#}dwImWox~UeJ)^5rlSI`8JX6BBP9N?jwx4EgL%*Vb9p+myd1hHO zjvXl%z3wsw$uE6tx55DC{5jrl3HRjI#vS<7n0cAd8~)^?duOX4qqc=;_;)@l!zk*} zla1fwfV*6aXY|n{>FF;Y#NI?1dnV-JH%3R8YLCNtVxjF>&L7<}h%ji(!W7+rM zeSJ8?Igq2&sjO$#FJvrq<;-%gn&|hgInwBTNz~gLnb)iNnR?YyB$sHBv74S`Kbtns z7#j{V$-6Un&ajZNn<}B^G4|(e6^xGJTmiAuI8%c^FP4Z${x*2de$#o@ZZqVmK*_Ns$44rtWh0S9U;xJ10l;XKTcBg3(UxLf>yK3G?S z==^PwxI96Is&yZ6eVaK3H|5!5);pO!IcpO65WoA9+ZktOT~3IgA2#A|zxMB$XlI{O z*j9~x1~u4s#+A%_J}{rp(t&-9M+On`ycY)cp$|cAXxPo(sHDT=H;!1XmGR$O;@ zjILZ&}W#2`GcL^$V z@H5AguO6bA70+_%RJ@ncwE*#v|23(P}v7^wv8Ipl+U%$?>qZ5SIWhNPc9;c z@mlpJi!-86W+)11-wnO7v z)Z_ge;KaOX&A)fq&VJBS>fvfjafat5_uM4*T^%8^lJ!_Wnl&)j+p(>Sh`7UZ7JKRQ zY@oMevO*QcdYli>MjadyO%QNdmN+3 z!T4|-%3hBn`#O!1FyTsP{K{eOG7c8U2OyC99=D=8avJh%2eI`Rad^F3W$}}kv}~IN ztol)BF5`W2Uap*;|2uO_XuGI+et^6%e2|#?5B;NFYjNbNgq4pgh@u&`cw82Yph0dp zz*?sPvE71u+^>8TeEuoizuKvZ!qH?Buc)bqv)=RlB0&|-nwK1YU}RG?8N$3NV}4Fb!1Y_+m~oxw z`9jSRzkz2O|D`9zoD06z5J&eIMDR_Z(LL4^kExleTjOFA&W6^bR_4AIFRF>F%$bi3 zG+0WmzEm$se7naP`e6ZL+$VAowfdXdRp2t(MXdk9+~V^*G`WZ!t&E~-$46N5o*u|d z8x#_QHuR-mvR?;#Y7{r&DuOuo*sP*8I#5@wN+Lc`pQ!tAHs>&VEZnE;)zqQH)#4b5 z=L1c`egVC&u3Fr1qQ0PqwY_qGl#&}=m>heQ>=U0fir!4W|l}T(Vqer)%ykc7&as_9E z)Yo7_k^#p@kZ(rvJr*sI)_=7K9LV*ES3x|Y4%$h+e^P{CD+M0&orU8&^6o!&xY*c) znC{F`e=TAMTZrD|1+VX%Nxo+*3aC#OZ6XFcvYu?sdu3eo39t}%>bk`ChX?Xja>zJm-f{=1?mL5?obLG|TICQFIi&rb?nXk~GXgkj| zg%TI?SBZ1;$REd9mwE6k%$6T9>O{qtD-Ol8~;DAt>3!Ym=jU4Cfqw)fOV0TJGGTdhlsOP3vC|`$p3fY|H1dCzkf9%cEV+ZZ=zs zFFa>|=wE{G7U9btDEUL(c}5{#S-u7^?FgmB-f^Yz?#Eqss*H{#F>?caqM6ECG_x{ zjWdbNPPQmmT??PpoYy(h2a6^4Zk}t<;=VJ|`MT><83$Y^*R~4WR;&K!-(IJdG!@mv z2rtfrc<4nJ>eGZ}?6X}r$Bf>bX(h&d-9S;mSzhb6oD05I&T~PlabBm#Oy=Rvg~VprA8qIh zN_&_q71bza9!Er5B4k8$&L&E@+u#(6%^sebG?E;b3@)BHY$xltJ7(Hd*l-^9@i zI;`0lf*i(LhV>9cywG54upXhQ{+v;!UuUa^G?w`JhQ6Pq;5l=){R~?%=??3QY@XXH zFbMq-o>if&=8$)B(AbQ1esJTE<^kYe4 zN>(M|o-e~EqAAkNwb)542~#xK-zN?^r|9wgrneqo5^*+qd}d6VF%LUeVE>P~>p#Vc zy*<{Q-zq`jY*3F%eC9{2i6YpuW<8L(pPuDW)``P3@U6+S231|4;m-#)Vt-*@B0~7{ zsLs@dO%{oxJpV9;dd-_XiB40myatY2q?_l$!@$@VBER`egs z?<7d4w{wXedoH#0Am(rg=hp8U@#LgAo{wTIC#cb7E9Y)cvL2?-XO%?Wp-#BUesy}b z3CRY2KI@lu#GIjwXUlWcO87h5Y7`EKsBzp_liGyfVQ)1qQY$33Z;Rf|HJHi2?|wi{ zN3C0V-WlBfrox#9)zGok0ukcvh#vGdF3xA4_o9bzjN!caEFbJ{rpA$LV}>c=r5Cfo0aZUFiN|5Au^78APgr7HQ8j!WqQNSzNmze! zy{85doFn<1Y|9?33U#*;<2SSS!L`b|VSzUth|k3N=bRC9ZA(9pHSxLW2`DeJLUND} zK3OL5o&4IKK9S8*erJ;feJA2WJ?fadlV*wGjJbAPqeE5M2Rp}Ft-Dc-r5Et~IQz=& zEfMj-h@UTsTLtXd%=tbe1)-A2a3i?({m+Z*6EuiedVjwpLu zL4?0#T{fPW&+qK%y`OP9oH}~~ef=jEs8k_IbU5yfBI09Z=IP|9(ZacmnxMoMRXM}$ zRpuvpGaiacScebfymcb`Qj4f(YT3bR!U=xYMF##Xa1aBjt?Pxk0yajRp+4To9r4ByBJfHdZOb&JU7CT&G?#0nZYZy(OpQXie z)*AUkSYLGHJYvy7e5tkt-KacDA;`-fL%kPii{b4BrRn$VW*uUjx1rD{uTjJiL zGy|Se`>gJu!5wPtmxHN`ir5F>45K;wDx=)>=p90@C6Reo&hG$XE_HICZac-brjL21 zn~YWldoe9ZBNEE>{9dRzBL73G74{|5{TSXZCjxINMBw?`GW=@d-ug>|675;>fp;>+{TQFK`};csPt+*m!#svELm? zEj;0ObJ#Q{@2}G#_&PNPId=P016FugLa<)B_lA8DgAPwxkblRJ`(M{b?l~2DkmDXR z7Cmb!*frWHK5~D2Sg)%sh@-^PHE~8Ukb0#vap++x&q>%ch6Ay9Y8UpUzE8)#!>2^r zEc!Idh<&~2H`JaZLMQvcna`vm*Mv{f;5_f|WCHiK2K%VB*pHfBDD<2YX-)s^81J>; zyApA99KEqk{#O>(IkoUEE$a1gXS1gybE31dLWjwEnQgC1UKT0h2LpJyVDn% zM9g>KckO(tj{BX|I3D~Gy+=R7`gzRZ%z+}-it{YTO`_FIVkXZ#C39Bj<2craJf9LX z-U+3|shH|o^t|MT*qN;{nDZK*)on3ueG4(E(hVG$ZH0ds2j|(hy-i&;?gMMTFl%8O zeMv}+p;bfOL^E>Z*(1}%dw+N0ib-6J7Y+o4`8 z=NcQEL@DdGQts24|2&YrleoI%Jn#-pao8mPd5Ei3ud=;q8sas zYaQ!iKKZtMYXUwdvd6_(O1NhdBg)Ig?-h2aIwnwbQs|Mi`}W*(SXMqgl>lPyRXe;)nv3sTQ;X>T`wp<>#Nk?MH9j>Y z?lA8o!#Ok0`HFmEnU?kCi>ejG(sI_ujEgS+s-adHCfjyyNhNJgEj^gU1TjK*c+ zIr|((Svz_LarT*eHtZL_BcRjVJPXBpy|{$u z?-~>L_cMp5Dfm*N!nFFFse5J;Q(Dq9;(nBP5hIv)Y2=50xPGQ$*7bXdiG|d~%##xO z(RqyXo$I*L(z_1|<4l^fxHFEJyxAb8yxb04VyyY_Gi_OG)z%{MkV%+MQTs6F z&+)tWrmn3lcExxhk!zFxJwePM7B0VOg|%Flc%G|?9IxOBW2TTgwf44I!o7kHi&_PV z+w+2v`;h$^?zIiIZ5MjzL7uKS2aq{^=`YLw(ek=p)33AhmCwh_l(TLh9 zoB`Nrg^T34TCBCQ=d#zySR0aQCq9!4Zklu7xRy)lIV%nLeJ(G^m1dkRSZR)V-uw=M zooaL+Zxa2f85Z}ZR({L=kx7Lg1IG*d-6o+*zK5(}&VcW>z;*gy2bx*p+A!|lYWl5X z`F#=Ol~l&t@vqdP)K=bO>mZO`jKc4~81$UJ(0}yXX7anKzL0C8cs8;V>oZ3O#QwwB z?@EXp+9j2+kOOISLML-)mj@ zQWP$=3`3;ob`ABtt%DLn!e;y#J(l> z^yImML;MF{%uLvtSskUxfGsj)v9DTypQ;P?y2?DK1!XnD!{&eWvAuUplJeG{)GYd> z9u>oXjiPSK=asTQfo|Yl@=mu2#KlpD>Szdi$6l}CnHGL>6XWgXvTy8km4;vL`?XBF zga5);&JW=%y)}~TlBrS-oYHemfQoB6OLkJTY?95p#`RXIaP;O+m=(9rP$n*Bb|yG} zdU+T1mi(^nO3v>Q_>@QwS+;DtSSC=bUZRmNJXZ^Fs;Ulddo)qyxwcm2ml{eq_^UakN3pULIEgC!i?_8xmSA@6hkh(0DG zSN4!&+9so?FQT`iG5bdxwj$;QZ)Tq204Js0oFvxeIYY$B4QF-56HH$)%vFr=X`#LA z%FHcKG9Rt1Mo&J#=pBt46)`o^WnZaIjMFdQ`EW$=BG?VtJ)D;8f73&!FiVKLF$ZZa&|gvq4_Pn zU!bkK7x|LXQvF;R=kmM(YpWzL+q%bF^ zy`-3+8)Pr%w}a!~u2qkmh_mm>hs8!#M(9dEYGsyt=<)LLQb#LB$@LrX1^)ONL;5Ow z!BCeu8!>j03MNWB%Z!g@#DamkavVLZX;uRXV~()34w{5SDs%6#%g(1|E4hyw&*b{7 zh4Sl1&ocX9vw^x$G`?elk=z9v^<$k64MVfs+eK|{Rb65#fqy?Z%Vzp{;+N2~I5u4R z%sHT9x;Tl&1bV1jPy_7dB>C_pza>kqGfUPMO#Z14nuR{eYL!|mpNZLN4e&!1Ib)o+ z?bhV&wJjvrYk*AZMg6fFwd0_%lD?Jq4l#ERuT59Wi|s=9aK*H?j|IyWBC+VB?N+1r`w2|^nF&U{NBMU4ZwdiFcrI9{(I8rSf~GjbztLl!CPe(rPt)8@P5^0yvoU>w?XP zFCexZY$wSVIpf5MYn}9EVK21#I!1E62X?bhtHzFXRJl4{^1}!F!spoGe}7G>E_&dR zK-MsPJvEL3@Ckcy$fAnW^&g~~PGH^}`s%_bXc_3q($yUy5ndYcZeT8^{n)#yPEtgU z*UO%|KREUgK06^0-QQ&TR$I}Nwm*q}czSGkt`3K{Qm4W;uyw`zhh}S4>w!^fJU&kU z4bSY4rb7eQa)w@wPxyB*TX8S+ZbO|_>qf+>H27isfnO5&@FXAk1)kQ;W+p~Tb1^Mo zR*f%wQ*T45IuNb(4~@JzL%ck&Mh>xWdldbs>-@wPe;8tf|MD`Fb4KV|+3(%D)zGf> zS9?>LS*+hgh;-VRV@sgAkX*c4vsWPQMC;_$ufHH zipMZNp^}sOQ|K**b*qc_#>(pOB%X5~`2HBZa`5Ok>7mTu!Q5K--2(b)DiY6kczqF#pG=CrYNgZ?vH;EPD za8Osk-T2ON)O0mw`0{CJ!+U@&c@NWyjuQ1qtJ;ALrn6>i?y={anDO`2Nak)%R?BT_ z$ozi#V#^tN9`3G;O>Lww+C;SA=`(eSr^DPOmVeXD;JmtZ)?7_KQl?L=ES@^vDqwFL zNoQum&~SgbaFV&94=iO)86QPIWE*(>C$E#?yqLc@KwqZkb0$99swO7`rS2l)>Ui@K#YJD7@z|%-Z!7zeR318; z!?^^wRZkVan%sxbT`P4=-~zGx@o5Hf z0)BGj6tMI~b95)vC&^D5O(%by2ghn0sA9=63lCuH<=eP0|&)1Fyzh|D&IMm3c_2q%UDUM_=^X`2E+-lVs~;GtvIg zmC6xL5;+1Jh%k}ox+zK@JaII|St=4svr?HA`BtOmV8=}o>PR;JVwbU}{B%I)!|$UF zOeLTu8Z-XC>0|o)nljTdv^Ms7Tb@idmPEMaqi4Vg(dKf87;->kAYKM=%6@Q-JK)an z*PACA%BcZxt**@8AV-`J&S*N5^|B`iz1CF~dL*miMybqg^pTH|}@32pwpfNr8c6g7^)ThY6gGjk%c~h z4-B$aliG7|QoI>CA*fud=MNx_-w%x+Xr6lQ%6ydmlb-K5^2c zn+)G+FQfhF*{r!&2D!i^U8@Fu9xi?l9pv4FuBsPY)Vb}4Rr1}H;%@@Ck!hqBqIE7f zjh2b?ncbf?!zzEUTg(41_z(;dxWwAzQ+8@LV4`zx7$)!;75M z@Nn!r0}M34NHuU-Lp=~pfN@)Ca$l>K#bLKQgCrD=ef+GUXM zUrgSSb6w+_vHY`~H3ajlxJ?caOuZ+LUZ%(XGIAx~JuFKN9^OiV@4!9ivFTtW6$uSGRc+XRwOv_Mylc?cOT1uUUxV~6V?3=JQEsf<7&(VrK zkDl!-h3NG2+8{uqMV1t)@|R>!GZ09o~eqc$Jwjtu`3Qkp0-!4+HVM7A&L7Vg&qh-t{=?L0q^xsfJi= za#C+M5POMt@jp3(1@v6$64O(uFS9?oJma~GRp@6khUcg#K2a8OC>xHEINqfKf4_+N z)aezu|6{o1^7FQPOyFKvZ{DNJtTv+F!x;^Luiv6opI(szfrpF=_Q`!af3;vhESgxf zb6WO>*;?NH;mHCulGO$LUIm+<`a&%5lVl;K-N{e9twlxA|8kpm97Ucy&`LgqQonnHKWLXG zw*R1)0>l0MgAa{T%=yG_9}-_O$S3Z@am|LWKVTv@*ti$`WjiASxi_;=hHNrbw|K5; zq4Yx~XvDKJYq8B%jqbr*neNQLr60$NJfPEnWO~i?)Xytmci+K)Zezj5;JN$5nbpJDJ?O%G(MbmKF}RmhIG?PV7bPpZ zoN96rJ(V~9F|0G#J?Ip(dn=07CE|M-R=Ul+J92|J%pNR_^^^(?$agQH`&~3$&ElSh z@^^^$#^g)nvfjJk_VGQDiPZ2f;G6U4DdTKpKOcTi>jU#;A%_UQPF>B}70Pwk!VEA1?pH;Z2w z2d)ogkM+KyPko^yE3n6<-q`MI>>(N(I^n1eE?ue0<{jP)Lw~>;4DM(wN0)*N;>^|5 z*39dajSIThP zZub8toHT1Uy?>f2{SEhXmRv^PTO5c{lEMs2!xWWr(_R@jVK&PZdY4i+N?KQ9^?$bF zaTv~^EwL-Vf->Q3q~5YuRaJyK?dK@}bWBoNi_!C7SAhrgLx#jN3t)AYlNyqdg>*{ccxzx*ETnx#^?GmEfcvU}vZ6qgUdY(pr$?wX>1j2j~&N zPTSjZZfx=G#3alAW=Q@E3(4z&e^+s8-^BhB%-MYhf3UqZ+Q0Q0@%_nN9G9`Vm-NWT zP^&(pRdZbF%dO=kCz)+GhxJctgf_(keDnhx)`y(&l7XCQc}E_vv{xhX=L$b|LFjd> z-$#XD8-X9}#cD$xbq+kYVQq-a3~*FO*D$jf47&Ro&-{yeCOErI?3-X zi@bTJXO(4EEWS}|AZ-pf%X<^}j6X&yOecbw)Xa$Z2zR(=o$58nTxNiuEjKYgdm?zv zk{abpJ>}5^zOt)@thmKG5u>;D0?!7*(_Z~9uextThldY6VI(?3=+!kOf84GwJ+iH3 z@^5!#-7;0u$c-YN{^mKsK4>vZcacwFr$q_ja+zFm)CX%d0iTx6d0z(KntlR~9ozS# z@4b8pbsoNRxHa{N?GEz%(Q5e?;;;O}?Zn8_S^XwPJ*>`*p{i(D$<3m4oMqJ=BWiBs zpZMK_kyjZc7>MtD7q!;jN%}_X%k07AH)xkr?3<|V_{<*Y z6HHIo{+(gp;stvX1Shx?s1a5Z~b9KQPpCjQe_7cZ3_%m>6EOq>;J~brft(nB4d#ksP z`eR;-ggctaonjN&yj)iTT5DC$_0?2q7&98jdP;~d+Dr2H61Z_^aM$b-a;om&=kof* z6>6w;R{ot+@oa>HggR4WIfo6c=YE^-Iuc!unRUee_w4JwQ_kv+jyW?_Z2xMb)9O@} zofo;|hnZ83pE6`YwmW(S=C|Ods~b6~(J|FmMz_14tNeB_d$vud>w z?N$@8(h%w>7ZcS}uu^$vYHOUq2IL@i&AEr+w5!@mJeqLEPIOk2ySswP=$|<7i&?Pd z_(J%C4QQ9VvGL(^O=Q$vauj??{oRk0TZXYXutsGwtb$&kRjuJC+jr7ux}RR)dDLkq z5i{Uj`^8dIm_UrnK=ZW*JoM;`>;`|O<7dww$NwIVm#(MBh(FI!jD2-I4WHG^L<07> zi`T)5Qg3jeYL?)v2Ibt8HQ=0xepaGBfFJ7P5AiKy%lDA5ZikistSHrFA=vZE?BW7ZJ+Kf3pH_4?C9R?r|=LcEL6y<&Y>5Fd#A3ehF=#t~46F*laTFaY&6iFMTk@FS3m3A0d zmUaF~9`EJmjm8U1h_C&+D&+5+&_sOMTW0oIG)qzG_=UVYdWVQ7R!!~Ind!Q!Rkufy z9khn~J;0^(JKbERk%x!Js;d=v|I^raHZi||-s>UXn6(H8^{b+6{A{9zW|+tw_Gc)V z;PM8v56$mMQTvzN*G7!UBj!4H5+}116?4O04kf*jb2ISsNw?(65oYjavZfENsng(+ zBIcNkAb)z%jI&IRuyQ!M{#o>X(nIb+U2|9YFnQ0v^;*Ju|6(6Up>2ypyNRzU!m>AsZ(*I{S<^83w{QJdSzesu9=n_9VtN|MVSjM`8MIw_a8>n*2WRQGAor^OoIOLA zxTdqCl&6Ms>yES1zT+L?3haKvowlhiZ?lgn&onfk+l?jIyRNKYy-QvnQRA@vdhDM= zS)R}5zo_&?tW)9Mv8e~pV<6L90+zlpP zxlY70Om_0;KR5F}wTvVrm^gKkd1POb)bpmy_ei%=o34_BZlI?GZulV>=vIWe+S*Z1 ze2nP@vL$c7QZ{q*l^TYPkc)ijT|yT3q)+#4OYCx zbLz4NfgOmwUeqfufc+idgVL;|!oZ$#WGp;(wnjq1s4ENVO5LHyR0Ok%ChJgRZDJ%w zq4a1gUFoG)Xa4GXJe8&4?mUXiq7oT zNf}c z0>@K_0axzEj}_tL!>3kN$%C08ypH+loXfjkne}XHD}Ka;GR)VaAKz)%Qx1LA$ha=> z_HD^KhG9q5-Bd?-!~xC0y3D)w#Rrear#GLz+K{3&mrly;k5(%1 z7Medk@9l0l7C3?a+Lo$3G1>@UZafIC%(0@ZPC@s!8rzS=uVClLIE#y~C#%}z`Q|*Y zKRS<&AL>fjY)ks-`TpVD@e>O!jq>frG<%y9Hp#xI@4Jl{x87dxsAr@P6FJ!UEt4Bl~_7x$Zh>FMdQYfoJX zA9ad;xa7Lz7iRj>$2AV0*;tuV)99TJKX#XxKLP$DiTE%^Bjyv)X?&u$f3cg2frAMg z&l=ZtlE9HlOaiIT<4f8Nng<0^&c#ts%!H$M)>JhsA3s>Pegjg{!N z$AN#abz9Enzy)byKFdRl`{Y4?m%)V@TTRKWEG4* ze=w4H5`DYO#}`k7!{NLK)-z!43S7}pYz} z*M?52Mmyd$%2;M*p?O%(`HSK_9OMoY56;2@Z*}Q?BlYJHT;>|;5$t_NthaP1!tUrF z|6B(j)TE`n<$F_4PZJL>>Vxm-twwY6Pm+m5j-ws{hH~R9#qk-@Uc@`%zTLZc83l%4 z*e^=DO)!yy+4wN(2AA*QgCAoX!z|^!Pc^BqoZcpIl#S&~`NCPhv&vOU%<$Xi4CKKc z_&H-eiSCo2B3}`+{E}3S9nPwjD>+9N&j;r4UO=tO9=?KiTkZKo>^9rV#uEvuGBevs zbM>XuT6(-IbH9w;9+kX}yDOTz%K*-YXC6B9RjfaEnSO6bOoa=InX8dv^6G>&XxWar zi%m1M3BxXN7X|jm^M8!4Bz>M!yB>)C^+%#=IKfGUmgCNXf5x9U& z`$m!j52VZcM30>zXZz#->RU;dBKnyg(RZ_Ovx;3oA7ur6=(MWxEnTY)WT4X+guiM2 zuNvFiQjR|3Olyth>+CA3=@xzI+{;wFEu zHB|i94)~Lt+cKJX5?U8tAh4Po+Z`omo%wU}IFngMQqGNa?MbcGj{d`9Tket26@B=a z3dFi{8|R3Bn66xSj2}GXBe6-H)uD^?<=;`?RJs8i@>O~_ec-+6TW#Lih?th8G9BQJ z$d_A;VD4)J_;qYG8GCe1MT7qx-NIowkK4@Qodf>xwUFn%4oS6W{7e({p>r}+2V3q~ zF^G{}C2%3c`_=gE9{%>?d>r3~U#t4Kjr!RVZnz8nrqED!Ij}bP@!I&h2ep_r^es!u zg|RnhT1tCw{%$SvJeQ*{#wIqzQQzCUg1ahoW#C8=J@9fq`&7s?mL!sI-|&?kobmJ9 z%5tUEQt2b{<1U&w^7Z+|oUh!)nA4K;xhPTn+*4U@g8_RU(2584w2${y>)>b|lcmth zMj8<77B*)NFf+>R$sf{*MK`g@@ATDf#kcJ$ZY(!A7eV3R>|xv+ObodW{_D7DfoSmo z7iTt7^XaWA;tX#+#&e!w-Y)ByfS(vq-AcYazt8^Jv^A3&&&d9PanHEDP7*{@(uJ`==Y2`E6#W6 z^&5tt@j$EaG+AXVg7YJHE7Y3GQ1avgYy8p_@);9PiO4};0EXGONJmZNJu|^%q0DAz z$9o2tR#X-1qrt%xml4r>wLuLV_TgqiCTY1f0r`ZSSYug3CBrbn@cg9Zw zvklhDiY{I%Z#2APXY_(|(4a*)h#uIeemi3s#J@S~&YYJgPO^MLN7cG1aj#o9N$OWl zdH;mtal)Q>PA}ru$qne5@#BWwo`|6r=Mqd1#QE%WQ!Ak#n2TD$Q#xHV+{Vu{NBMz6vla3?#GAq$Hq>yj(XJh7QBXk7T6LNHqR}gI*)7bKFHbK~D7rFg#;;qf6}QpY zsu6V`a^&LL%yr^3JkTZ7?aA8leYy$_$3{cxTxup~os1=&+Nj+nVla6^P4Lup{Qclf zXuUtKP}%bgWw)`5Z0G?GzjdES;Os$>Q+bhNulnnxbG08Z)&bE;Z#jw6{V!5uqaxraEtE?j_nW%Zu#&&N-{ zM}s@(q_KKC-dr{>G?xJyaLONalecOr+s*tvXRPdg$$p%<&FAUG@*SZXm6(f77;~gp z!`{6!)M$QPcE(0b$x{-1sTb|FmAm-x{mjpfS+YvyXJK0*oJH)&VjpY&9lht3aQZHI zU$A+TWO$~3wJMlAs@DSU0DvPn%(^aSZku@&HMYUTIsV__T2-lluWiB_Kl-yqN|K*3d-K43CL!LtAAy z3k|><2f5%-Nj>YSFH3k&JI?Hj!}z)$=wGH7iDoo5x6oM4LbuSxEMD5=8Oqw4#MOb= z#%%oOB4<^fStuQkSjm#na2>>PU*hCQ3p3HZ!Ce-7-m!XUwf1|cf178hBM*%vn%QkG zY23R5uaSS-RfY!z$?r_Cie9nQzDwQmmx&B6HkbdV43=29$GzyS_MPQ!7IMOBmlfoz-ImfLgeJRWbuWwExbWY{6>v+ow2N({X#r$WvVDJojoyhpZ`3$ z&KU^(Neu7>PgXP+OZ@C$*BbJX8jsIEo7B3+rZO-G++cb`+-u;&jv9)AJLhQx_f`)E zr-rVVk6`5i#GhsChZ|=n4BS$lx}q+2{)^|k)>Esl>?9|AfKMkDy~d|*`A;MLtj(o& zG&N=)?t%)`s;fJxza<=%)T7`9VpnWZ7;|=d%7-QB%I1Oz`~54wqo^5RAH({1s?k>r z#LbGC*jM;G9dbhOqdCu?)ILnvqP6Jv$X;s0;e2O3Un&Rn?uWaYvId`UVT9Q3(@;~U zmb|RF%)xiArg!c;akSiV?(A;P9FH*-=~GTtoquqz@9=3V0}SSTg7}1faX3DwJv{&& zwD^HIipLcp{zkG{(-!KdXV>5KMA{UA?;YFa^!s1esY$6Q9rnajrW10 zZai8Q?KM)aV2zhsiT!WLeLVX~InJ2{c}5!V?sD8o40qb8Vsedr+bz|Gh|1EW3i`I^ z_-67&3+!-XZDvLiAD(@*mgL^k#0S6men0$3xtc1_56plK{d-D3EAPe35o@{loxVNhe*GN59g1MY>eHQ+Ay`}oKG&C= z_#$!WJ8^i~3H%;0a&39~6g}yMsDkEi5jZ%$tvg8K#=&{U2#xCVq@54>v zi-!}>`mE!=B`}U6u4Rr~EO&O>$VoVhBXvwf;mca}aFxQ!)I@7-kn6hmEf0A1uH99m zZr0MS27P?)y;RA2a=gXF+H`ECH*>^)aQ5aF%R7AA&&QUMc?o@4dlR{Nf&Fb4DVu$q z#jUXk{s{l#>8OmWn2D{Ax18QoMdl~l$oCO8s^3;qc}A>W@!^>I{755)$BgLt8Yk1K zvE+9)5xs45(3EG$$^E9>i_=*2)^M)_d-=-WTGeJ9FP_213aOcYV?HsqUo?t)DOjf% zd|GR8?0*M~)qQ>V>yBt>s2Qb3p)`G%=B5fwodeoGqBdT?W`vt?Qrv_Ql&^ z6E;`qQ*UKY{tCbN6|E5YU;sJ5C(iY~zSu+(xGj#{@f7{FV4%q*R}k+V}c zOHbNk{|&(3yKYvI+qtY=cl>`wx;XRm`p?iUqAmJ~=JD+U1Mat`#}8lHnwT~E0c#D< z>>WH!y}RKgrRXb*3~Dm-9o}Rg_UuC+w5_oerq)&G1IRNXn8(0#gjzA{sBLdqF_Cja z+%?|@*9fkk9ER@Y(RWq62P~0<{f#1S5c_6s?6}P7%Eqynke#j3)Nwq#H=RnRfExJUz30!P4vL8EV5FZPi=KNc>J^v?-2ocsbmq zw_1P)Ykn4=cYo{{r?!S37s$Ju_$d}~9r;7vQIGX1SVt`&{zch5{arY8f5o3E%rH)1ZvDDd9DPS|j=AsSA1 zS=b0$>PS9BJm|61Ukz}iKGxA(`emb8S!XCy!3AZwX9YDC<0H+b1$>9$cVWVm3R&t;}HPICAdTnVV-uTr4W!!`bJkXe#D%iqX^~P_{x}#Mu zot@Q1&Pf=4KYND09J@k)?P0B|Og{O!qP_&rsV^q@4*%_FSo-rhb+}u_i+Mx~uzh26 z=eZ-e^N=$N4lUn(rpnqeS0$ICMXrP&y~e!_arD}B0ykD9Px(Pk(U*R+W9aUCagNDl zE3G3pXh+?M_rBhMbI$!oFNilz1DdP%%m7Oxk6PH?RnI`4GPwS>q$I^CtB4 zB(@kW9ZG9SBXC@^JvC%7JcX}MC0US&&x6~FJ%H}q&_w1vKr6BXO%Hx&@e^|?|ER0v zvcGZo2eUJVe`m$CA}1cdlKTLSiq>8{YS2d3DJ70wSdNJ-F-( zy|hKl|Ng+-|MK6|&@$~`Q}8J#Uffz=KSX4{o#e98U2 zVBDhV%po@i2Q8&P_zCBPJ$Gr=Sian%Cw?P%!HfL%V;h+@9R2@3@S6cPY~`#x{zbQj zzPU{67|64h63gd%@;upv7am70a$IF+od8`qHR zXyO*JD*08KH0T5t5Z)oEyqYzIy4p`?iDxf2XsOqBAchyO7M+Rcx$*;~!3xZn~|!8ogtho@v|m(I|p$7?}1H5q2ryURX;n` zkOCJtmVeOOWO3%O=bX4qwXYMi=LVrw8|f@3ZXHwK55pCvaUOC_#bQM*`E3fut;@RI z)~bl=+yUz1E?RK5mS@c)7d+8|ePREN8ZtYV)#z#R8EjP5UL(7xJ-jCGJ{mx5#Xei#ZX>l);Eh_+3u^;63fGocbK>7RRI(>| z=qt2i4bk4){KStZ%%#Q- z_QG!;T2)`FR@chHIcP$bq=-hpwX_(>{l@=}l=ZyFR{YQ#UFLzdBwp9x-8i3zhyi}| zyA|JoOJ)|-!)QHOr01j_cV%{4#hL0ym#OM`CVp=@dJvcKa?%%n)*m~;o)TVAQ|CEf z55u?Fq0ya_ta@>#cW^c<&_DO&M51)E<(_~tzeU}4J$QR~Lu&COtfkF0L+J+ZQECHT zs6vi18LbR!<-3e|->;I@d16Qo`}^QwGfAw7O%eBMra7y!**5;A^Un7!{p<4lfSb-k9_VTMZ}REc1KhhPIPeL9Hz1EeVP5Rm)VYRw^@te zd?zw1gn46u)!?njnV)Y@ly7I@dqRol_#Hd;dK7tC3|QKeJ=on+tC}6)9u{Kf~OkD}ysMNqszK*9)e`0sZyg=PUKa}|(jw_4JN?+G9?t2WnPVZ11dEw(BN86Lz#}K#3g?cat z$j=|W1$J}(54mXz=Dk&A@AjgN6=wgTLDM~MFH>IXihvD=SX;{cp4gL)iFyT}U*yqH z{uzcIh4onmF1kqkjk@L_VW+>U+^uCX9G~(Joas@%(~R2tcYo=DJuU~^)a8sc>p_kR zzjFIrd+8EL?*=%oUoN~lcjGR+sV4^LjJ8=b3mbg+G?(~5y*MV9J@`fsWQdb`Xj4gT zajC8}+C=f_0tN@?TN;9+$!}IIS|p!%ruNm%WE}ha{y1lAuD_^x`P>;zor3)xeieLW z0Wbc|Mnzp%qiPfD;yWn0hn~J1XHjROi(0_XKG|DNtvzC`wtwoa4q93%w^4?oOMPR> z9b#o!pWrrd4fV5V(ZCTqDZi{rvi2Tvqh+alA zQrg?Ni7snc4*w8Vq)(3_J)Cyr_a~jCtEay-F6{@0gAdICCm7LxR1;nj+q(FzwnXrb zmz^wR&FP`?j#}rBak1ht8}4<7DY_J0Y5w$>N{qqpx1O%X%*40a%vS4&ec5Z#PZpU; zAZM%CF+}26-_pHR)w3x{C=~sbeYD?p6S%q&g;qAfK2&-&FOL0 z8X6l(@_cw9_WT}x(G47u-I{e+tuI~9kt5(|EkFBnw|0VzoG?VrdV?W|Bhk~~#lXXn zoZWqq{9KvuXzwnC-~b=K*B;)o)PlQ_TKLG-l^*Ikx|N7taIjW3lJ&q}Uh_Etr_szk zXU0Zf>YDy0s$wj8)=aCv_sIPiz&&D>!3*qRTh=v~cY3m-tr(7j%LJGBgqx~NW9EUK zgy*(!P%*jvslB@qjwbj%l8<@z_^&A8xfCIp7!k?=klB59|CH%=Znum_H#-uJ1+D+nPNH zAzuzG(}Ca@t*E8rHv%rym$t-$b?>n;e%1ah(@F_!oU9V@&pI7#MH@!`RR<2sc7_UTo2dQ+Q#u#g%DpM%lkCHwDVZ`J4F9{b zle$`hF6DfG@ynwhzoCu%+DuLij{V*Z&T>YwI_-szZH3LDX{}R_Twn&A!8m4lfa~&! zhd$BpZP@YQ%lM)ECekF6yRe3%WrWx3ZVaBD&WtvHbWdnh4B+8bT;l8#8xqLZciw~( z<2m29H4^Pg@~;QUsv%>PbW9o`E5JFSk>_@kImZv7LRGyEVuA%H(j~ ze^5j2R)F&yjjzWZ4zJ<&I=yA>rWtbntVm{tu3TY%oxh{$L<4Euli3*PF4FE;s7CXx z<#RD>hTnc`=FYtYwdG=*x6DWmTp>DIfo z1dXCU6F<@=7cS`}JtWj4L+vaj?b1t0Bu5&Y&D}Ux_%o|uvA#__coZfhICJjRj3hHS zP^II$-s1~afS(kx>oR>SE!I*Se__k~0{Ub+Co8S7w^X9Gsj!!!+Aw$}xZn}Qe|Yc) zs|}^eH~N8M^;9?Z<-1jZ9MFkYUD)e}?d{b3OWh?9tU7?c@spf`1`Xkff~nEJqc`Re zb4R4V=Yrl_I#r|&z_YMHa1_^B4evcdS02RXfECYt6&;PB>q@N?VYXyMFq zFB{0>O76^;L3>tXEwdF}WaB(Ew$~rY!XnnI@+En^f!t$kQ)#j;aJ~ zp_>7A+Tf-J%=Z!Jvz+<$>rGRHFt|vE`mMQO-NC@;VjO- zATQzbFEJRETU%gJ7)lM&h+FRcrE)Ne!3Pq zi<=kNN{SRS+HwTJ=FE#PUvpylv~vH17A=G^UVY9@U-6QzgPyYbUik9afs z0hqH@0X*rQWf91sAi-@&4IhB$}?k=cFf=`)5m`4T1C#BqbFtiT-EFq{(TX? zyb?UgZf0WWQPb=mui}XL4e>o6{hU?Vyv$}#;9I9L>&APrq-_I#`@s|5)squ1lCeoJ zY$N(hB9hgih6ZXUw)fx@^+dk&_crc2>dKk^7u@v#{*g8E@1rL+{ZduadI|D`dwzGP zk{@D2BYta?Quut-IG^zx7!|a;ICB>5XH4)T)!rGW%KPgG=Px7p7pbMeTYuzdOXBxrfo&QHF+fq}Fqc7+7O708b_tWagea_~<<-6rH zJWY@Dj`F})U(7CJ`+Kd_vq{V#-48!Ntn&a%)x{PInNg8*2D}zS-D5l0JRBc8C{R4e z2~Sh6I7VLF&88;zn1K=A5bJ+Y->S*XFgTX6kI=htW)tJ+&2Q9IHMvk-&F~Lb&E9af zK5E5z0sF%`50Av2S95NtrOshZyucct7E|Benl1x&no2I%q;oMj%8xn9o1Aq`yp_70 zMZd%r@cR+sMPsACd6ly{HTx6Ho8)JwxDtOn{3Y}&_N_@#h1228;4!?pkLL$D)ovT` z9{)88CD)(GJ}(3FzjmiqLr-8m3+2#lqO3{O$md4Ra;`nIIpM_p`z(^I&pvAE6CDX< zy;p4^KUqSb7iXl!Kb%4OQ^v3CFGa_7WzTsV`Sv9Ym9G7vZk&@ zO&0x5)tcNh?1J8inDus8Mb+yiHpjkX4diUxK?C?4o2!U#!Vk22#5v%<@%ZMO#K}J! zh{1gW<#S7BbawStsi(>5mQokfYc1i#xCD5_8`*v38})9*omSCf#!EE^=49~s&TYvP z=fG=cqW|X%=#BfKDwOk610I{pz!l_wZ>_|-CiphFlT=+nZL~w0Ec;_56*QTW@WepY z^PHjZ-oY2Xsw9U4D!&GPg!tiHQbQu(i~NY83&)n-v3Eo!v;NLSWq!;_WaF~Gdf&nO zrm3AF&86j>Bhm;>rX_wk??sY|7|h)EPV56`$LkcFTIW=mO|DYL%{6q@F#ogh-&sM6 ztJ%t>2WaXd(4hJR%E*2A%$xMdcVIRxYgwR2P2w5vn0HK_A3=Wh7X867S6Ni86McEL z#DUx-lRNF!W|C9byQ%ksz(A+9vde_^Tk0Ys!R4u?%*z>rHlY1HRi;gE;^iQNBjCGR z(kC;7y#E)zsWbf7Q%5!8F_^W*OKG%)`#zdfl!5fK6vomkz&(SrucL(xfaf~MT&;4P zQE=ru_`{y~ynZ>h%;{zp+T`AIJNxA8gcu{jHHxj*p|?C5iLx|%oHMD`J8GF09H)@2@dNk^n8 zZ{8=DpPSZ=GmD?h{9+@K`1duVnyG^J9;zWVrs6AJ%6Kexa1Bm<4V+fHKT>D`PmO(? za3V+PNbbqMIS|a;aUb%azWQ?A3)~omMuA%Q%_X*Ss2x3l_~K4MW0-yHDLud&xrgar zOoH3O*Ov|$DLM*m#D3P4nC^hziC#cF*@>3(BeU{GfyKZsyXaG>i_aZeRYUCqJtDbK zb|PAKS2yWBj(FfMV~#J_YOj*9&HFWjjk$%o|P}Dga*wH` z_py+=aE{B`q)9jSWaqoDGKd-L1`3?n7ruz~XzcCqw^yn{8}@+wAbvP&wk|~U*z;j# z)6``6jnh}aSb_MkNoWPh)I*t`eGt4XvY=vX46o-`0}_+j(by z?5?H144gvE-Lb7a8bEyPY9LR|@DZ%RSVL+OHsF+(%r~CO&*1;6FN#tYA)HU}RBNkc|}*#r3_nw1Jb% zWPeLyxns%`%ybRk;zAv4> z(CB{|ts=0Fgq2b8mr*wZFr)EXSTk^DEC zoE$!-og@BwbE;fja##M0fuDFq9(;v)iq)G+L~|pF&}RnyWia!0XDP8Zl(Xwu_n>bo z_ZhaehxsF8kE`pPx3A-!RQ)u*$Dx`m>hAKlR$urKZAB;gftZzQ8w?M4uCL6^U=AF3 z>zb>Xdf|yagBZV!{qofqN}*APYQ5D+Rj93zvCFF~-{3%*_tR7zxXr8;aMi>4)n&>6 z;%?a)d{jy7@Us>djpV2q_0K_Q>37hZaH6G*?OCQ*oFo}T@SjbYO@J-$0vkr?q2ri( zT-myHlUCf38%7RbhJXKlhC4X<*;)tf)3BPdBN+vs}DEk)!W%Hx~^cixFOiko%W#-Hz+RB_M;K)2UBtsi{t3gMgXDF@l z1EF@ynU|tfgRc9?p=H$7&}QYeXe$Yy;40|%3=c4u&Nfccft=894R$n%xFleN6J@&O z5poRMioBE~D_p!}T_YrPwE6m6C@r(Xv7O9c=Cq43pvYv>=_bbcW z>b>RUEpmkM%u6sK{~2n+UtEjpyM1yZL)cU1s)l!CzbCn8S5cR3Y#cuk$$P{96aK3d!#1KFrV{@wu+EeWdha zu@vzRBzV z>P4(wF%8WIxToqze%;8~uw+fvCCJ12^od_>C8=mvnqTxs^Joa~1y%#YxTQCd&8EZu z>JJ~`r!!76tQ~%*{O}Cbs5?CY zpRD93wtSO4_gh<8r4VllCg4xTV<)WLq$Sf2V0M8 zWar=s(gY4;H~Za!y5a!#^pPk1O3YBmBv(#j{#@n-Q;ArIZu6tFyv0^J>?i&b->P2V z=M7!uLw7X9(aiEFF5?9fWOzM#U#}7CZP=^*o^njbR5U@Ba_zH~{m4YD^ezqv=^30kZB#`0e+bbOVx@?Z*D#=g`U@F%(x z;poXTqn>i#Q+Fp-)?e`&j2rXZP-Z^T4|z{~y?BmU6d%Bf*WmNuBl2BY*I&eqp&Hd< z3Fnzwj;@c5oUe;sGOnUX|76w4hdCHv=J*{pGN~E3U=uiWmxp>!T$=v{J0P?LN zGlLp8?-j|r&bi7AW&Cc~FJ@%y3Q!&=@wqMF1M%S(*K!x@Pv$#glkZ#NGl_M&Lx-z+ zJjcZq#^US=-#Eua(q~|wQ>LqC^=rr-_GxfD@0ZS9J@}fAE5H!&to>ap%V2Quz51+k zQ7bughWTD6wQ6-Nd_7$GLAVps_0(iv^V#fg9_PAdC>#@5axgWE_5Y!bo>WN&=P<|f z^h_Bw+eztB z{0P2|P5>Nf>`+B~7mZPs2lGrd_ecvkxTt34l2459+OC15V5`m};m(_xO6OhNeaH7) zUu-8Idy)fU?<Z7OJ(yXOhP_o2MhQDVW4be$I?f-ucL5{kUhToIa`ptgXl#glyun;-ZFBhqCOrA0tGaUt3>Z$|^i$>#kuT{vW6Sqj z$$%=%*600ZCNf8yvrvVcx?NvtsB0Rk#3yLJ#;3}aZujItYkj$s%q$NZAL4_dnBrGf zL=*F{>FU!OsaVd?w3#QBKYb>?esD%#OI0fe)^Clz@+VfDCI&h3d1u}5>C`T2H>aLl z4oq8MAU_9dRq+Ey_JtoqUt?O!4Gx!9IDVSRfu58go?Vis<_30|_=)j$UEy=ggcMdS{rlgsd>k-UBe zM@u|vQTFeQZDl<8xagEd?xunn!Pjwl&BW&}gx?yhQQLny$!D-?E6(>2j{r%j#XNxw>P7g{ zVq$qJIN|}eYutqz88t!=Vv~6|cSeCv7URpRcWNkOC-U#H3u`_0+yKAJKHLp6kkFN` zvZFtIHCUsDt(D~BBf?93ZgF3-Qai$>bx6Ah1oU&j#Noro`KX0oF>^K=`aN1L-x zYQYJ7LH379(~Mob^qctbzL8hit}e`j>aCW6sz||9#yiHgoWJyy4_5Y z7PzPu#JNK7_X$&Hb-puu@fm#@erp;2`sz7z`S&{-O6=j+t67pu{J2NlKZRYE!ovyv zvItDR_3lHot45LmwhlVwp-$Qp6N@?fsq~gu@Gd&^Ne~;~dfUpod{o( zmWnrGmT$R{GVPw3#M!Y{qlty&MODYp_t2F)k~kCL@HMXdTHelH&ETB9CvJNYgD#_E z(>THz1Q^S}4z1M1DYoh#)_(Uv@b)=Fc~-2ivJY^64$P4CyQ->kebc1^>*5g09V(ou z1L?fiKI9m-r*>;mx%a<@Vh`vcGda(UeRrsi1sj zfIW{^k`ZWxwvS+syr^wea+Wj8mrA-LxQx4d=9kl#2cy6s^T9Wl=r!S-ckeo1QuMy6 zEfY^m|AJ3w>fKcCThud&NVJ+U-#C-= zEaU?I%qyjf#N)@yEdy(8K#O+wi<-A2of$3IA+h2#Gf*eiDukCq7ldsj6MqA?vSt;~ z%iuFw?+KLj2B{C)*@oY)78MWcqy-DxaS$gLk@3*qD_rJS!1hlnqF_2gRe4C&zw zuS&jXHlXZG8Ay+kbTMU}hGHKD_?JZDY2Q+Nb%dNvJ6|K^E*h#v@Omft&eXNUbIx^p zc-;5T;E2AylD&(yDv!Ogy-`D~)9CfQPtQVct#aUurlvB>qb_>45HKXXN-5a+)>?W! z3+hS!|2jI`kfx(3jBA3^DKc$pxcM@h=7KOqO+uU>q;rA|GgJ)wpkkQ@VM9W)Q5rI$ z1rm}Ztu&$Lmx5kEltw`iNJSJ#6iC=CKSVEPrfAl0eH;uf_x{g)?(;n7+;iQ$=@bJ0 z!y}S0HX(U^gL38-`*+TWe~Vu?W|h{`CVfYbl_O7B(+2JmIjBu+<{hPN3zeU*^a5%*X{=Xh2 zc1AdR;5FlBuncVNUZgkTAGkR2ALybtFdU;6{%1jV_^0utYN(k5*FAeLYToA!Ip`hc ze+IcgUcHgG+Bbt+#o>;VcGkY26CbV0rZd;+x#VkAc*&s9FTFiqcIJ`G67rrW&C$SclIG{`XVUG?`qp(~_>~EBcV}aURFs*>|@jwioQXRMiFMI07Q_V_{FZh%RWQ_;ovEpX^d*2BR8LVaif$TYY}a_Ic&?ClBg^FMCO5=)x;&Sx z6U6D+6U6mH@QJgoW1YIbkXfUM4=)%Sc~5x@aZ-1j+TLh*jgsg1nW=4fx_73zi^KVO zbj=_i6RE#Gy`}{-)IrpuLGknrzYJo*^G}JkOCi4l=#N&;^W85k>W_+-T>}N7L literal 0 HcmV?d00001 diff --git a/tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_unclipped_converged_run0005.npy b/tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_unclipped_converged_run0005.npy new file mode 100644 index 0000000000000000000000000000000000000000..37be1065ef62072737bfcb18d66c666996444136 GIT binary patch literal 48128 zcmbTVZCy0e_-4uj5 zhs45+dxLOauOKX4A_!+s3c_<0g75+xIp#Q4H3$#A9fTQ;gK*H5xNySyAbh%*{zHSX z9$UXX6NF9m4KBuoQyT=~)OUmM(vTo5JT(Z{>R)?w5I)r<2%kxdh1>aC_q`yTk|PLH z#gJp6&&`6c*DXQ#Rhu9zJDBftgK$kO7B1rNTMgOcTXFXG-xh=^oq}*;5x&+A!c)H2 zzBv{yd^8A0R20{qkp zg0M?ZIL3l-{u@E~W4f{G#KI|T7kVfN=gthm%)5ecamOIsFgXYlV7X(M<6=HpCJ2`g zfNx#rat7fpJ|1fugzdTq;rY(`cL>5t6~u_M3k!m<+e&_o48l>c3Sias!64lHVGuTE zW9vOW^KE-3+s1wEo49c8k{~?Xj&J3IFfVKhe;*eX-5P`wwEM0;KA#Q3*wrAM*OD%@ zsUwC_e;CX8Rbndy@2^s|o5;V%gK#&$rqaRU%k0w1!DKj$3&NpUL3j&HQYvTTx64?I z=_sE#uN(}*o%|`u$5B=J$mcVT%{Klv8aW}RdVH^jkFS~p;rcX2*ST|u)R76&%$Xjd|$YUy<1{o4p@B+oBi7V7Z!^P!{7Vx|KM;@ z5SF<;7QU7dgvX89hM$dU(j&Xuo~QYtLHM`ttDcfCx6!7UW_jOxEiT+LA_)KUJ&ib* zctC9W)cGqe{O*122GUk?v{}sX6`7c08U=M>)dhJdQ2X_MS(A@V(ZtaOU6Q;PV#RYcv_R zWn$rhLh|Y~JG6cNcJbk3!Y4u4>{ML1fgU>3|AsdrEyu#HNpihPEPQ1`5EhUp`EXP4 zJ2)C|t+>+?gYf5qK{(@=xG<{{PG$t*XJvzMh1alGoxd7{V-^SD9XK1qRyCOa0*@_s z!f?Ft`-)*0&czvbKONIxPp=%?;HTZorPY@-zQ~`C8<@eOWJ`_zE4 zQ-iSmx*#0VL*C)&;=v%iyHgNeeHSk54e@%eqPBAJ6pYhX!WK7OHpaqK@mw;-+;%}Y zxjdh7^4=W&s*9N)$UQn62%F`w`VW8pg~K28clK$0TH^oySh(-=ApA665RU8?gykNW z%W%%UT3qo#_;Cj9mkPr2U&|A{&rd#1>?V94a*8s;FT;E z_4PZkB@H%TJOy_c#$WfnNDx-N!}+_^u9E8TfFRsdBNkpL1K+-mFQP3tzDd`;W~!Ht zx0mxZ&93 z;|{AO?uF_L9W-8UoiIqgiggptSIEcC@2QU)=(<%bd}(?RK5{GEI?Fl!bY}Z;8Yy}o zTV3RmG4`?hKN@XRg9aZ|C)jW7mG($1%$-v%q?jWs#==3?0aM_R#O7w){lZ2|dAyrW zUz-NQI_d@dw(#++bEk}zj`x0H5I$cNrfiMIeNf+A2a~PhIuC=n`PGgmZzsTIQx?N8gvHHRPZ>?}8K$2+Z2GVn>GdujU=J5O$e z9Uo&K1>xoKLD>3b`NCeC3u+$B6SX=0npoE3n!eW3T!*1S_;4w@>II*9uvj3jr)hPZ z^&NbpT$-bAW+8aeb%ytY#;akhEIFKX6FtHr%E8X~+ec&Phd4i2Ui}$_j~RQAI47~u zVxL-egHFDT3l|n=$15cXcm3Hd58Fy&9O?WTxHn-_yko}D=Oj99Oy4+6tpWr6qIF}Z ziRukL3cjdqs7C0!_ASRgSL?*JNIZr9!*_j7-HP)^<@Qf(^M5YeXYPUhixwZA!opb=7@4WZIS#L3Kz(>Yiuv5n~vuL|e zEc`B0jgj|-D#Nn7xF5llK527;u$K7hHZ`BN#H4TyVse!6!&4W>7@!3W<`zw@$= zUy1V(OK_=wZuy!kS1hcNtRDY?GyF6b+dB=#E5EXe1mW+k_|L|~`?Y8DQd{rOn;UM% z+X1;+z&e=y?b_zD_W8t^_v5f}4|9h&`oZ#~zJ(@e8Y3j-h^M~UZ8{pYo z4$G$p`Pw|hQw{6P$Fwo-ZSX86hZf_oD8KrbpwHHPd6@6wZc`mz|Ffp!U;lpe3!i4< z*y7l~EzIZaBt0u1ZozLRj`+RnDw{RwA_MmFao(?S;iV*+!@~_&FXs0ke#|j{oT)&& zU&tlx@9Sgj{t#WIYBL+h^i~=*gXlOQhn+DCFh66!d*{m3xj^sgYc$G*=yr~Uv(ClmscB`rU#CeTQDqs zSdFY5gzq+1rwXgVbz|ZAX67aK#_+Y*<3U*8Tz2S)It2S_t>^;IUFfXU>-g1nZB_fC z?(|FxchOdjS=KtRzT4}svFi9J$RjAud6uTpu6)g1mTyZ)xga#n{QvkuV~Ga%zk0MtnbFAI7^84 z^>>X&AJ^kxUQqq~I0!e2e{^d;cTvwSiKQ$*@~OG>kf#xQ6ReREt#9t6H(L349z5tG z<3V!^e;$VUr?fjS#Xjmec}^=W1MQ4gL7k`-wa06rq4ZzZ7<|c5GZrSm=5hxb5dS!P z!P`5D>9BlYyMwWI=eE8m&xhse(K72}v8>3XIq`gCjQdu2;q58@zE_IQeINc=w4RBD zqi7;p(>^#@pYb$v3ycd}E5oduJ`HH`QZpK9Yi?Ks2O7!okoEK==U~&NKW@Zz2OK|! zV@t6_>;F?FW<)Y_*ZWbgx}Nrgvq%1 zK-}=U@C~2k@aXSg0kc)c?)r;8)3Y>ROH5D5Nj{{Ej)f!H2}Y}LxvT?VRo^v^#(ban zA>5aUiOqe+E#Atw)>-H9b2A+uY8Heq;yWiC%3g>IQ(#{b5BvGj5f+{3|H-F7%vOpRern zv@RcsuPXXo!b^_Hv2b)vG3wVo)PIwj@t!eY^E!Y3nL(@1xF$4EpPT9NY3JZnc)r|d z=Ne0bT;O+uow4xLN*Lg)dq;7UlzSiHpt@LIQ9stG!DIOHfI2^~_e$07 zAicMwb@sN8+J|@q{8UGrs{$U^g zmGuJO-er5z?P>%LQtrUrO|dWwj&Jer2o8qm+nb)}{U+A_V#z6%0&>^6D&@^%@wC#J zPvUQYx4FIPg{|HEIrakm+I#Gy>xGr9H`ZDc{7#EI*lVxupXcY0>~%=8W8V$HiP+b* zfC26cUy%=d9i67nz1HNBe{9dh@g%W~Gycyo_;0-+?2ET6h1k{R3~q*t=}|HKJqKpp z)PDUJO;v-o!)F!^78Vbm%E7X&zH1+aP5BbxDEWN>M>ExlD$891;rqaYLHKNUT&~7H ze}m$*cpuwmU|$s$>Q1>kUF*091~}}6xA}LovoQ#7x3_JJt93A3#m{9K_FQw#C1RQ~ zk?!Q&F>S`+YG65YIV^|F$5%z%`TjF|Jzeui(`S;{8%>g9uVZg8D zbX@xl{hG-AdGwIqoctA@S6COkXdP3`{PU7}O>brOyAoK}(sa6ddwCl@^5NMN=69Tz znoWy|)?(kOIb-D)O?>ooT-b|^bXfiiqmw(VBj{@mKDNDWE!bKtw6W2v2EXSf8(Z6^ z&DoriJuh$E%H9)vFGKHYKpvk5!mwZ|^WOq<3ysa}sSW?P+zRV>^^pBu4_X)hSC03i z4absik#pkTukX=xy5##f@t0|Ay$btk>)>43wZ!`39;Rl9{~>L5Ikp2&3*lEs-=c5P z3p)wZY41I@jPvoE{7Gd87b*G=zcm(iF6r8ncDrv0!aHA+vvaJg@VA#1TEM2-Ke2FZ zVS7@#_yEWCU{U;$?78)o=lL)G-NTK|=7S4q9cP#SRNH9t#P{sc-)G}Xggt3w(C^m4 zU1{n$&H6I%V?Wqr*(%gWN&Q@CG`C)!$X%+~r{ z8n2!vnqQCO{wCL}U_AeCHjP=Xy0u4Nap2&ANdIyt*&6Rce)T^;Z1_4^EIn~GY_6Pv z`RY#ki@9w{ISP~O@IJto4E`;zg~NH)WVAS;0p3%rVQ{&btpczpS%Ib@1t>H!c_Uk*Re(IO-tDe zEam&-Vr63$oDV%`J%hX6`W(3ecYeRo-8>1S&oayxGt_|#+JA#zKJAT(&3k5LTEc%p zK33>q+%$dJT)9@R{w&6uwLfo-;dtxy_O%bk!r6u3P1|e5xBgDtA7pQmdI{?&H-B?3 zzP>!sXZafQ3ST?R=cD}SslJwc6Sn61+D}*qG@{ojYEE;x4f{^o94W_!<9$n61H}q$Y`S)1w;$7{K$Ye@R*Tvly?^D)|3{f{~+ z-WFTM#{Q55HKm9CeCQ`&^cMh9H90=m!4Aa zI9l$mlRNlp@`jozF{W}KEr4{ZgQD# zN2(hW5@O+1?dBVM{S$2P{p~MYe|F91;VsTvZ++I*HR^gncqDoDHhj;_rN5l_#ZIJs9Xk#AF` zvYTXnT53-S!v=8MVZ5WxZyhNI(qN3kG@pMPCruIc*|%yIf19eu#J z>Eb?P%nK!qhtH^%7XBNyPukDjijT)&rT&ei%Z=ORS1}rpM|u0$cc`(~MwoA&(Z0PL zIHBIEJqc_CmDEI7w}9KcOL7Y~8)kTkHCk^*_e=wEE# z^_Q=(yPf9h)OX*={_t#Zn!TBxx>_gmv&3XP)b!53;<;h-rhf1_^p#x1MZT)poZPX1 z9{Af@3@hm4h*wHa^;N%wyf|s1ma!Ghb2sR2w4C@lrawP=9nhD?)^~7iu)b>_@ceDK z9H)h7{$9wxm*=wc-?(u1%W{cUwkE(B4%cz=#D(noGqNsjTtlqG?*e=onW+sN{?fOF z9BTa`jP-jHZnf|mT_5bZExV@uEVehaUzXqcp=>t)g*ws4XF>QwVOZ><8}S@0V8(49#~9)k*%&XLB`7hQaS54tLu3CcUpFXtVJz>-47Pk!9+D_UX8q{i&KqnU!D(6{*wF5Kt8hCXzBsyK{G+g{)PrUQ)8?b{Wj%axx$!pj zv^t((@nH@1x+Oflj;y8khmGG{eeG=ieo5Z2)vK1;gYSL#or&k&^z&?BEuEWw8)xtL zqJ8noM}q&mrq%0HwfDT*!_SK_n|H6ddxAQ+2tLLy0iWldu-@3Lw)F8zr@ff@lfHoqw4wN65$AmEEU;L&y7IQddsmY$1Qv zb(a(QaeW7!(#PV*?6KyV51c=s?VTU-QLL-QeMxLbddI@+XY9+WigN_t>czsFYVw_S zPV%u0Oi#6OFBs?1wVvYE?J2AIHBC;yWXfgpMF;ha|7BnosEL23>O&u2d4V@1zEMAvbW^0@X* zH`j1`8otNmQNbv#cE*9pH!spVJuSV@wYpj6wdY)iN;B3Fc-Zq5$jv|d-J|2=5A15_ zfA1E&tu(h6^xgtq>3Eo-7WE9mJyWccw#u3Oz8iCAOx^YUpCt95xj9X)Zin+c{-(p@ zVr$yn?%F#|rQHlqG5v;%vaqi0e2TGewjONpfPFc9X67+pz5x4a_A=^OnLRi=W8Xhh zo<=67#n!t&(IEZ)VC>;^mB!vBnrK1e!zoZaBjPb z-#D8Dy9b8G!nz@!7w}J?VM~mw{#=M>zqmHyy0X}M)>wJ?SqLZBY2dS8&Bbyw9Y&iS zzsRqs?gaAVi2R85^fT%CxHayg>--um?&{VN16*VONIc)VuVwvIlW%9)uk<2K@pUH~ zksq__sa3A$rR;}uE1&7|{7%<94~g${JhoK-@s&T#{*r#9=b~O4q}@b541;OI*#F(z z$zvY=uDhJa^ZAO7!|15^{?T_$Uh@FFr;26IBK zmZ!{TCGqxy8kEm`)ev56-iM=J_SVrH-XV{*f!Ez?Ni+Rd@TJ!;cr?x$eRrR>9$n|0 z;R-f2t@fq#$si6Js*ALm3v9;JZi7|Pq z&h<3zv9WYa&ztc7&}nPZ8P@G;!aH!;BGv`4s8d)zF2w&%^^guWFOc(i`Y|Uw`Lt8p zqVi`iH+2@UW+Y>%rnX!_Ow$;Wo+md?{Jpnr60smG}bF z)_0pP)W2HB*!rfqU(AKrS}M+{2DHx*E8mZ>)wP@RL#@C0@P#?~FzswI&Q*96zU zp5JUf>l+KJC78?jQ-f~CiSd&rH1vTvA&Vc{k1HS_HX4)0Q~2_RJe{%5TqCZlxA3dD zyk#q2A}%|@w=kbyrx|%tfvvVh%&WL9&feUk>N`KD^6zRh^TI^y+vCwS8}@171$d2V zWln(0-gk@(-+%F(4wn^bN)fTnevrKftcz&tOi>t2FmK^8dIoctI0y1+=Ul#vX-ot6 z1*{q8ouFNDZ`fyjwi+*;=}Zhg^^dN(HlT~5x5G?)AFrf+Yq~6WEQ8rx8mrQnM!uKN z&zl!#S>I-=3EFqaZJvflglBqw7(OTGv{^xG4IA3W+^4SXvDVZ!cR~4J+~~SM@O51H zxO?}JzXjpexDmY$GC#Go-%g@^I7I9Ft#GZ=PK^D`BavRbCt5e{?Qb8YO$WN%uBH^C z$p&j<;gC1X{Wx2>z6GR! zEs?kKV}vml!f_`o4&wYpwjShb`fc)kAAVi;*<70MxVnJTErryq`_(i)M$hF$_cDgw zk$v6u0NkH5)}`5U>`7Q?b8MY8N;MjSS9IUBh4&6P`Y)`Wv-e+!%km}UoUvEa_=XDB z+4c<69RKrz_Cu`!8mTW^)Hc4=cfOX`9}`DEcziHHPRf~n?~9l2Gn&ZHl{7Iu8_$>I zRsmx@Y}`7<&Dl+}uQ4=~H$ho_aQTn+K97vw>!RWvwB4d6#~uW&g{eQwOf!(drM zesxk4%h9Jfc3W3?PE=DysP8zbE#`zW#@K339}GV}v>wk6t=CJCw{5Huml?;oOnh(V z=b}H=n3HNyy0~%It2>-4n{&>@{oj4q`g83==NPjPK4~hbZtZ2{Sbk=ScSRaixvX`498eLbd;x zHZZG(%TtN=I$1hroc`{A6iG^c4UwLVoJjB})HhuJOFXhtHld2F-MR8KxiF zqwbfJ;wwulm)paIt?7OEV(j#vQY zviUe)`SI%*@$+-^_i9~r^;Z9x@+jJ`ER)k|jUAgu6EGS_8%3M)3GY?^V+{VbGS@6N z#;F+2=-^xXv2A>fo`JjI+Q#?Ytr1}G6I=#9B9GtEZmRXoNxnx|;BrT8$F*JC+*(gu zul6)%H}8F|tF`$YcKa4-$Co13tDo&vPmaRCu~8ZFss}C5)hm1-Tfv-2n?K2sv^i>t z_I1>^lJn_exoaAu)s~j9!&wn=U9ZLuYsYBczq6F}#dr92e&t(gt(<>=R-=8=VchNf zKz=&b5>CuP9EA3fk#QC>X6 z=l%6vlNn;Y6Jaav67b56(*~L5XtnRRUFNh({AF)CKROR{&HF3sLfR<6=5jH7NEaQ{ z_B^k#ovfbX^9U^*)NkR#^daV~%XIrD%;ecu{F#P>zwR(U*?Udl~z} zK^Tg)C|~BfPSRQ16#esmVUIvtbFESOG}BI-ZQ5qS?>hd*@G-i-lSc2;=yWO{r_6#O z{EL@^VFxv!vNh$?Y|m30>F0ZKAESc~BdiJV5x}+;ZgV|ne#d3qTIQTv>HJGRbdh_R z+KBt*y)^DxSfR(nn_>+z2!>rrby6*`wFJt{*k(%75dQ;Ae#WoUv-fKAOM9HQhV; ze~F!H9yu*qt&Mf3)?5rPR330c|A<(su`usXQ!=+ zjM>|P4;=i-&**PAX0BrkKR*qy#uI1KImfkMypX@!)kwPRP|&>?epGuk zE_@)tT1wkxciE$U1RH*3-7eR2s0AC$U+_rA>F4xTI*W#<$W7m)=dD`N$+0@d+n9Zg z^lRfki~A~l?YqXxOWeJLmps*A;Wb3Rr*L=eN%gmfc@lpc2D1~VzKOeoIMd#SH#^ba zAtlV!W)yu_RZGQn`2{iYC&#bmKx_2;ADYi{$;lLJN_|Ehg{}6{-w%x%VsGYr@+s@f zJ=Q#)AG(FUj<|L`_96OoUn#e|+tfmhI4SOszm3#JIa96z-QsekweC-J_6JS&TL7QC z#ZbvSj&9L-W)9@({M?cFP6!7WTG2 zdqZsU;P|uhVY78jS-Kl0N32yhi(@gY3c@qGuCutFv0<{^{rUWPj9*F}Of(-4GTwAN z!11`Tj`x!rE6sgHY0DVJzm~h=8a_IE&-@>4TJe3~RxzoQ(fzZ8$6%k4y>@BdQJsN7 zLcB2_wQjIBIIvBv7^`N;m9umBR9&v&vzKeHlbqiG_sujE)xa~0aC(dV>5t;(Q$c>0 zyowL&_1v&q2Zz6nG4(|?oXrCGe4Q4?{QzIrQVQUD=;Ls3?7Q0Px;6vKiII=faWD@~ z@kMdP?}KrU8F#I=Mec=ZVLrpHWH(xIkM)9a_oirT9aE_kj`{S$NOswOw6eOfg}>|J za5FnZoGLPPkCWg+WIr2k3D%;cJTW1lh!`QyiAt` z&)AR2uN+=Ca^P71zXfioNnPjX#;qH`NUFD209o^EE5lFSz%+ zptCubkBh_}UE|qahD~h-T1zChk+b(jd17BCo|_+r)m&P63-|S5oTbKzcfnn1nsNR} zSKp2OTVsCKu!ARtK2U+CqMuV50#aK83|B8t4b#vd!!(@5BY3 zv*30{9!#rkzD*V@e^$f)-e=TcdMnLt=>)aUv8vq}lPliqOOmT8xy%Wy{d%b(p%!6Xh4fn-zZ=|`IFU?lb z4Ig_Al_Qc?0ns+E>{wF3wbbCn{Au; z(91k7C-&cC|0s@pw6j3mo4?^tUE2RKd+rz(>YuD`Z?X1Dq?IQ85c~AWG&$AW($Rew z<8O(c5y^0UZiqPWw+An+@U`p}>vmfG(eXOvapk(nE9^89Un_Qd<*_DQYu#nc?$!+5 zTd1ksXq10d+5Zu?opAqRBkOUo{PjETWA+lR5$1ow+IRu1U|tZ$ueP#BD(^WjzMLKi zm*w{9@M;U&T}yFVhj#f}6)#sE%P36?@?`HgeBtab*q5b&3pAA6*!=$tz3}^!J7VF} zx8UnhubS50*Q`ru;xT{2wxl_~jWddlP8Xr=a%xACel*nrzIEQS52NdkKb32~Ps);u z_j%qD4uz`2Za)9+r)3;G)lQqH@aMxIF_*>HdVB_dX}8zQ@Pyg z=vnuR6Vz&$e_lb}mXTL4S-12S_dGVNLD%vxdZs*nC9d4}?9Q*waFDNN5MtL1Rp-`00^ zb&|RDq0rvvS$kvc_S0PSoYvN1>eMm*`1~roYm|WZGxVu{q}Mwp%1tq~y-iMuV-MdB z&|P7^6tV}s10Oq!|W6 zUvIO&`%x_GX*9v{OYSG)XESc2dz{+~tNCxyDXqUyM-6+~dX+Cf^I@Bs{!5&{F)4yO zTtv@gMbE&j?5g&5hcDlE?$fuuwaiGkPU7p`YVAFE$-~F^! z4n|L^F?H=j7TWju{NK^`&Xd`LXG?gOZo}3}&sDM8AwgTVhBc8_a^g+fXJx`tA z@!vLz5BGh=ow+g=HtQgVU*iMZ&nMGo#q53WWHqkNhj1F?o*djR!vB!>8pFiG-+BD$ zR6;%sQ19*)v$5WXVHw)lfWMqH5baeC7{3)P3(eAQ3(jicp^N&(R&K{nHRp$XyAZ?W zW_-t))8M%YR!Q=-!2flP{;_x%q7;{Z_n2d+qhDpayuQtQRNE?Y{)qcIvUQ zXRAXy;J8G)T4FB>gGrC5qqLjgbESLe9gpXi!Yse{ImQ*+Zt=GL&^*eQC&rj>tMS3- z_IDYhl-h!~#bW$!h*)TQ??@VID{ghA(|+}$6%5y~2gmwiiLO~}=m_6Mj(4XczNJ^< zpS9ow_*~3@B|E>fSAvG3b8XBG=kJD}Tq|R*mRbYf55f%|d7hWE{9O-|y?pI3U;Q3u zUy0LZ;(FzT`!5d|^P>9d{KZ0icKilE%KBUn@6nzwmA{F`Ni;`n?QKs3t1OyY>{+1b zIjzOUPT|8o_|4oa_r$gPH=pU`edj-bLv$^oWDj#|8~oE-i_Wy-Rqh4jRIq0^&QmZR znPlGg-uY8LH-UXibGy0Z_;@(tq1_F2VHAEI_Pz>dJ{KEJ(|O&GqWc~NVN!1F4*5OF@90mI<205uuKtC^FPf=zMtaXX6OEwKYQ&GUC%2dcQzUC z!YN}Ev(~jY^XZyvO-K{b6sL!o&#*cH_6{hozUDYe|?KF7Srn%*GIWQiE zw9$Dkz2RUS8)G)(=DBRFdQX?aRCNBKJ{`1!gCBmJam3UCUg?LGGeu&)3MKk@^TXzj{50Vb%!SiYZ_3C$= z;bqRC*#G6~TyY+h1HG!!oAE2~xn@z*9pNPC4)yKCU&A2ikAsYdy7TuK2Q^z&kvu-=nT&(be-X;p>gXYQ+8K#UgyFD}EZ; zF5ZGO)lj@$GJe|)d`K{s`DpMUdnFv5!O8LH*-RWxZQ&XuJSru_q&NN1Or9#Vq27&a z%vbiS?9Q&!^>JMtmM5ms%k5&N{ZlYb-@_*V($$ET#;;ObJZt6FHrLSAtU8^=u+aIX z?7!;yKi9nH<8EPl`%1pXzu@^h*qxGB_m0+oo&1M)199iV$J-_GJJoNai1EctcJju; zHpZ_8rws2e8v9LtmxW0*FAga$PaV$`|L$6JA6Or{mLL5+)74N+Z&~lq+Rrt!Yj%q! zaMx}EuDVavR-2=R^utThIC{g)6O-8$_g@wHlrGK+@(cdWUcq}qYk=wIJ#C}k$r;Oj z{x0ea`-kv3%36I1Oj{ds@f9@|A`41M{@m{eoIsTFut>{maJ41@D}}sL^E{`hJm=;5 zP@4XbX4#o=z&)gU)k8I6V^ekYN!MVEQ#Or`#WDW4+SbE*1TIrDj3H+}|JJy0Zl{(^ zC>je}zi7=g!+4*uE6!_0tQq+94F96*=7rS5bUK+m*jn~(>l&K=%^ssD?mK$TeM6ql zQrDW==hI$7ziiFV%ydmn4n!JUTwB|x)h#%E0Yk+<)+;EgRd^wWMFv zgEiu)tk$u8&=~DA)oBg8R_f#sgra;v{OpQNt9IQk8jymw~j;C7!E z8S@xi()9Tq&M)!3?|IM8KY&wwRnTvnak@RBp5XtBYW%0k6K|TY58?yQE3BDwUsOxw zT(03Te^*{5o45G3N83$&y5w9Heq0mN+{>_%x*M3<4B{|Uwz96N)5Nv(<;J9|KVFsh(`nYR z;y1w|7tPe>%S6}n8^E@wc-X(Qn%u!B({H>eHwTDSoD2Cgg})QnivH$w zBz)s5n+M*ZSK~L=uM&>u^0kK8UJJCZjw^W+)yC%hSU{6i)SMo;i1PTLdw0WOGtK#7 z#@@+~_te){y3iXQ=Jcj*SRQ!S-@y!`|NHToY2UO;n+N6d5xny2^b@d(!;MBK& zrpKjp6Ypo+-(=-Alyu1WFr&@1LIb_&17XXEVDZr#g1KT8K?;l<92Fx|Hj z|97(ozsuseD&~pwd7Ur&KQ&%KT5`NA9aZCFK>sK0vxiNkw+*!Qi@N5$H(S^7md=;I z#rx8|^1`bMd-JvbOW)3F#x!;Hik#Y&VBM~++=0uUax?lZuiA8306rDBnRD>AmDcAs zP$$0Tw>H7;t`oe3Q_n->^0~xvnt{_%TtzkYCwi)XpIS5oW{uq!>19soroQFVUyRZ5 zqNn8CK6vr>%f+zF6a)UBelEN2WZHjqJ)oY?fvexPY2P0YmE`5eYC^o+DQ^E#UM%ay zeT}B|ulGIf^h*%y@b}y+5#JE~a^fO0l}2#*s&l_Ka{UJn8xmcclY1R-T7l0M_+Ggd zEyKCJ*wRPQdo4DwlTsSp5@|G zfeLb4o9OQgKI??H{qQ zVQ+c=o;EZXUsoN_C#|SD%+IrBU^_n+o@66SpSy8fNzP@Z;J=Rh%~kQ$7{&R$z6!(cVQM`kiVqLNF6}1F+?dP(^zoYzISCIzf zW*0bawf-6T242Mbp?*Wy=njj~zHi&X=ECf`>ZrIA_`65H33L)Y4_1GtdbvcM6W30f znue2|p}Ds>yu^IRFm<4$IK4(0>u{EJ#bkRn`?Y>zX}>_u@T-}9OtU%aFuNV)Pgfeb zVy?Z`UadD?H9UUWk&P~{PkQg(Fnf+%y-FTWlMBY*&US%&^=Bj181Edyq30i>-`AM} z@Ak>DFt6I)XIROwO-_EoEGs|V(emPQ=A6T6jPniaE=e z_3-l#|IQVlySw0~o*YW0H<%B{>*cHP!bQ@@@|nNm#ChonbwiA=%dJQUn_#m-49mu= zPjvEq8L`jD8M|3av$6bxU+X_~UM@WYyI#-mskWL}na@M@?_<5(j$SINMG59jn3w%R zZNft*<6ah17so49f)yWDY_^_z7B)Wru|e*gQxlGB_bAQq;rMI#zlU~O%Qf*P&%%8Z z&-u4dkNMEbYYg9OxPDWEu5X6z;_B?t-{z*SP4vUN^-d)i^tb+q_K5}P{wlwp=415R zFW4^$O?WspX#-| zjQlPwkDr4*4l`)5H{ajOX&vwL^d9oyr1||}{n?71`~3>eqjJkP?N0E0rTEV_!?R~X z=FsWO?^|0rejX-kYl#5|J&pfsOFEm63;uuA#`#6&N%n)$YOc@GbEX%Usv-OiX6r|D zNidFnE9B&QeFxyII-K?IhQo<)y0(q(a30;qJNl*j^fVFOA0Kx?Oa-lH_|RjMT0pOB zC*j#|PNeXCCyk$~Z4L7hzxkA}p&YykKJ;1+#@&oHNdM^%T5rkmJj?jngckGTPn)*t zMyn6iDHv?FmW}q{v*EggJ`chu^K)_f8>NwL&A;?m$KMnUsG|1aGh>2!rA<@0A6@rK z@cChJ4yKFah0RHQ%{?3Gud?{~G31lDuv`oE!ae#id|B#v{9?Mck1e_1nC{I+&%n&X zb=tPCs{Yc-cGx96ZjbVw zHRI>%jP^@tXAC}C$D;acPU$S3lE&csVH!MaoDHjthx>QSsWmm^wlRKLrxwo?10N%; z^<<~iFxNr&IvJOTyIK2++x$0ta8vm%2avE_KSF$SB#Afu%YQLG_ccn z^>OpP@uO>qSI4v8i+?_!5N~VPX3*{wI7aK~mvMY(g&ZxzpMlm4j~PF=e2BN#6aVRz z>a9IY;&z&)$IN!{HGY5bZsL1;xZYTA+`{~H&9E8&qB*vVzilaf+&I6ASxi6Dag{da zh%|bJ!&5Zg;(6E1;JUJqx=%O1`kt~+O~A)oesmDm6mdPxx9v~x9ll!@S+m}1&3+hO z6=1SV%{6A7({bS!8EVD-^pCR+Y|VCllW}gq^OAU?XCM}f@m~0U!iTrvkU4?&aJ_b$ zby;uid(ziNxkfXIA2@zMuHYugxdZfgR=hv)V`n;SW>_n9QBS6;Jpuj0v??y+#gyj` zF?^~n!D9afK54h1G&@PSAEG9;G6#R+Su6g&^|JULQbS-`w46Do1U^d9k+wtj$S3!g zCneg$+9w?lPaV1QZ$rMVhEX{7)Pr=GN7vP(-NSDS-t_4fnmm8rCzDDt*=R|(;dr?8QF7WjmShujZ^qRXD=GH;!neu@z zJ&PC{2fa(m1-zZ>E=TZn+}Lk?0IJC>z5-i%aG$wtNn1TGf*DEYvw3=HTIM2Mb{P1ziW&HHJIIIVr~cf z3)&BIzh&P$bbc$14#BJURyf$EPIQ%9$7`suV!l$_Sc9zv+p)#}#`tL^p8dV}DdyoP z*u&vQ@dSD3{%smo|D(Ul$e_V!@3Vh0ENG)JEu1T(k9E#}ahM`!cTO{=e(z_}$}MWg zn|x}keRXSlx>>1j><;{%WGmIYREOSTYGP9y!e#06xYmEk{pRWB=9s$d+A|c|BStuv z#MLfwJWyCnd`Yx+INFb$&afV)=Cb|UUDjD0)pR<(A-AHxOIfe|^*Q#6kLvGSBRSaX zcd_)QBbq34Cw$EEPrR`c#Rp>KCT@kYCp3T zJ=cO;)IS9_Khh>Yy74F4! zj}IMRHkTix1-|5YhhNU`)bGhX;ux#m`<^1kacs`ien35I2=R1q52&`h>$TaKljy7i zthD{g^Q%X-*+k2&7L8%=2PEAbpqOUlvvGQNv{^)T!8 z7Vv=KJ#1{z=aDUH<#w1>h8L|LN~f26@}&n&!|4=ErdnTCun$e5nS>|VtxD^BKTRh? z<@XM+i8I-7{J*2bx|Zf)dzSB?p7i?yZ&*E_9iFPSr@#=q^|Kkf7>wbFI$`*C$~4W40NtD)Ov$vxdJ*t~~ zaazXrgP*_`$44@(U5$Ni2u;~nM!(^EF%-8L%ao#>%5-S_=r_|AWLb;BK6)-Z`d#?q zW9_xY@CIy-NB51ynl+C8`7_A+@J2Pc@qS$RmiRVV$Did(^n1Yt$H1#Z%!5pY?? z#%IR1Kbb4^?MgM$x!9(z$6eU>~G`@i+@p=NXhqf?DM<9o_A z3_3aM{N-FF!a?vlIMq7)DY?D@CSTA>9{4;bkKnZ$7OiueqxG5Hn+_stJb&Ut}Jfx(Ugwzu@i62aSxnx(%Yu|)`XMf=VkLx-R!!# zu03oX#wAT|e9{~a_x;7qDaLO|ThZSf-RE4ihHHJ$eXNS~xDr+gG;GX#_lg}h=kc>k z`&8Gt{t;hMlQ9pp6D$Xa5p_eyB_#A#$563{?1&UWq&9?wl}bk;lsB$ zjpo-%@QO59Vz@RntmRg-&F4YduF9U`I}KQ48xW^Ug8x{83BYOQlOO&#q&yiifgC=)AU?D)yNN zU88#3{6|lVUr{SxgU1}cPF1Js%cI$H-JDr6k9`8nXYr*1+lA==HdvLlXFkKnR+Ej3 zi|I6S11^>1Rh@WavX{p=1=^^`OZn0ep89|7Tv8=_-8*5%mlbcrn~x*pXY~9_L2X*T zA+MMD&i26vaAp0wI=WY8jK{@$FTRuB#EU)$@OzG(G1y-5ADm!BjYa6E+?BEjCtfB zeR-XugU{T1jOOF0#tccMJ-8jRUY{VY|Ka`NLa>-9M=sMLY%W?4zVCX(4f!*J&3<{* z+%oiYo7ly)4;SYT@a;Zp-eRz#smpjx6?ab>ivHHT5goJ_XVOkFv2pl4wWYW(oMZ_{Aa#y;9I`^IGbS(+{|y!Ge^Hueua%fagMWlP&^m-`Q`|9f!*kD z=c0RB(X)EbOr_f?YDh{fY~S9xxuWMn$2m64+?zx8iZ) zSnfsZxHx>o(@DC%yNn(E{(AK{jqCf1##(3WYSB6xHuL#;K0i)i&{mCH1E>ELF)xTM z@29cw-q-Nsd*PGT5cBXP_EX2@Vm^GsxDRX&SJI}VdAJna!>k$Z*0a~|BWu0R)*xa@ z6ZZ-0?mzBv%|?vT_29NCbmlpm=sJJpOL7J8Ct!H03j1;^;az(VdOmVf_I!F0zt^2l z##P<{=6CVjCNCO9$KuU-L+nGn3e-0L%rZYeOM~Z)O(CDr-|UeP_JGTJS3?=<=y;>VuH51w-3srOxU z*nkafqdBZPem3y$OmBYZb5{*|=tFb%o!@v)yk#r3!gw_%S$pDqE}yp0L@W0G*01+W z`6`$H=cqd9XEgYgky%WPa^A5V2*jy{s(zdti6FTs!W!9`V)dQGD=c?_vGx%UigtgyCVF zM}KcN-}t-4dxih|;Qt4%K4UxUVSU6N-5*QlQ%Q06+a3!~yx<(JJN1Rn^E69yt$)d` z(OtGYuIrkIpqeQ4lH0}vRJmN<&Vo*>y=h~$VuWAZ9`LOUN}f=;y4~Vr>ZOPFEP`3@h)ONdNwn^eb9jBYoyWzRK5`O1uRcIeFv@X+K1a~NSuuZ3E6H-akldn`Lww#1^O^Ae zt}4u6RZNW2YpK6%Jjd7QcQhA2q_zyRmZ*mtSXKJQ90;qQaN53{x;;+avOn8#pLs){ zmu`juf40G*=@mLM=90W#QT#Z|*hSL=)ouECU5tM_ez~nV;5Km?|K(!%Zi(y5^Z}D) z73o8soq|_!ZPV#=%U?9EUD`Yx^vmAo4uZ)p@mD&8Q@$0-8T-HAqm3D>c2haa@5B0c zxtF%QqQCXHb)vm?77dDV%yV)|o!Vv0xA^}uA1dkh<%9N@=HkJ|yvO~B_x(Q38dw}0 zZC-l;UVJ#C_HLfVKYBVV#ciO5^1>Q9G8*X2h18F(T zTQs&9hPjNNgtyc?U2hY2^f#^f?$Pf9+Wy48AVqFBw#GEK?0dqz!%noXdP%L1Z$&?! zi{BVQ8r~CdT;96jUAi7;AGnGSHSLpn;lfzOJZJp_J7eX`a5ii6ukc^|?buOz zpKaVJFzvU2cBWWMd2Zw25_Rwl4kpsVPPoHhwOI0YP|x8r-yUra940MPb9=fDC%)(z zq!#pdUF=olP4v5!v-vr$g}Hg3xlNAm)OTAhb0xl$zlW)drW~M$(Mzo-VR8+I z(e<3+t|8aM&6QhWrp?h3_RMrTq!F%gFsLo;`^q7{MSmMmVmBW9!I>{BjIkB>3(W&3 zVe%jG7Zu}aet(f>UB}nVr(p(%=(&x(xKI95?m8De0~7+IOmuQ;>qsDTg>m82s zZ%lo9fNgmkpQEXzFl$pw&eME_c6ji)Y-zsg7d?M)WhG7uumzhVVtvQh|Na4Yd<=la zir4hfZq#XOgJeG7H{YjprXCEh3Ug!s{US}?jbGSSQ_FVeP`hA}51t1O*mF+x-p4-S zEqcbq+KuW>cicRyo;<_XbYpaadxo08hv*)1v=?dR{OTf(kEE%g))lF0`5>C%$85Tc zes8B|HF;cIeVFe%&ix?rO%u=zYMG4{lxpKbpoB1n#_lr ztq0G^u??=xXdC_hU_ShI|H?Xu%?Ae3k(i?EhPm}kGDZV_&;A?+aj-ohA7S-8|L?aS zILGI$@HyU0UgCb4*R~`zV+73W(Ag3>#P`wmTUEt7AuJL0;zKlVM!)O$8(&*|>-$YG z+5;c94!~nwPjebuM`*H+Hb29sCTxb3v}S6}pDgvf5_`rtS<1M@*wOwagud=oj^8_)qlrN`!UpiP${R_`6{OzPBsy%(#tzDfiC(sQotkiy9lKVw4 z`p{UVQ*bMPz7kA#-7CcE;0)areMwFFhZ!UfoJ>e-x)J_DeT~^C@=u zkdiK^yhrz$4&yoc9pi>)*}z5JnA&lVd5$l6X>bQ_9ure!C;ETI7C!^uf@(-IA7;WI zkLgq71bjxzsk~?StzT`J?8ny(S{jn3eyF!aU(>g{+`>(-h5qha&8YpH&!2hcbCsvy z-vWl>m>`aSte>9FPyg-B`^G)BhGzKDPrF_Lzl|CBos>ptxMZZ2HEObnCdG8}iiZunq3eD*iq zv$609jTD7z;f20WhZ7w&O81=Ba{6@cs&&9tV^*0)v#`!piw0jc-&KIyKHPcF4c`)@ zt(l#_>HSz(xt=*jKCiWJduN@TDJegTT1(j%+)RHdINJUsj9Xdn!8i@xnT@UW-^7O6^`QgWddWS= zXs&MQ-1$!C$qVWsY$6?A3>2Ef?o>?TbGO&+huMTMU-Xie%3z!LM+bB~Ro=e7t&cyZSX&&BAx-!SFBS zJkFkZ2Y&ac-?`bN%{iaYqOqFcJs!q)@%8R#Wx= zS3LJtmHSP_vq^oOC}*B^E{3c7oojB~Z)wvWwdKvUES4+yugHgfrL7_Qs^joWX6w_D zcyWHD@uK@o`{7Z!8GXpl`Q9HA_v`G|&7hUL=$22zXgK;mJmzaZVFpfDId+>`u2y|6 z-v16#>u4kT-KOX{ugkC)1E125$X#~k^FP`7rAzED?$)=fe1XBUa^OOee5q~RIp)|7 zG&Ta(YDx6>S?jGKr^n%o4^`N`(MvACe-{1L9%KGxXCZ&KErUri+i%m2c%x^MQ(?52 zE}9nCHxZvS-GSXr>}7gSV56gR(RyME3^v*$d_?~n7RYNl8U)9Q{JtvIg?!p3o^i$4 zV{6$1=0f8&qqUBn{dts5t7ob?!(8iw-C^2~o{`Vf5=R?-ABBI%d&BrQTA$`UdiFS4 z*REVEFLC?6xN3;GY;N^RTXQ9(^t=A! zU8joTY{kcS_@6%?92@X~jpfFF71k5l@FU2MJNjGFq6^iSHQKL`w_+K2tNS@}A-a}* znSN%z$NnDqm{S{EHipe_@Hk$dwtl89*Sc%n1}o>c+-Z)0N%YL#aW+rjp=>X6HqAx% zCvVRZ-&t!!wdtW-U;>{S#%lefI`aQYy7M@ltM(7zLJUoIX2>!aV~MdZO&V)6$W{hp zl4Y#PZj4EjeNSVuCB&piLQ;<;TarhT%2QIQ{3Ji0g+{4uY&@B8~b=Umt4 z^SQ2bo%8+P-}?%_*%y9Ca-zNB1^OS|L0>*ggnJ47wqR2QxJ(;LKhg5K&yMN0*?;8M z-t_PIr=@7{obm85mAwtC($FZmuDUtselfm8jv8QJR@?0R~^8;BqX^vfP7# zyA(L@dChyDUBh1$KAjoN#y#5Pz_q4a(uD@;yfzH}{>nXX`Z;c#EBKjCd$;$}ex`id z1INx?u-^D=pS=P$>h5f9AGp_Ze))7P)jf1ulp*_|UYy+Qq(Fh_y{u`|2KZ}+I@mwviY?o)~kG&+}VEQY~Qbi?~yU|g3qL`+BKDTPTkhl{*8um-;->i3%Y8_$Om%**Vr@_|@){F?mIy(28+%^^5Qg-y2@ zvA;%!^PC#;`XsrDEd|*bep@$fg_j8jvRf$H7dvA zMmfja7W*i??ldNjE>&SOKEiLUWDOK2_~=o{b!Il?Ws1>7IBjeVTEJ`e%rNGR8FEk> zExj$SVKi_g4LCpS{SC$Ajk*5UvIcsM&-cg)?D-GddzGdU$5QBIUO7A%?-uv9c4bH7 zmi*;Ig!Yqrsn?wwImFobNh(Fd@L2@&2JCEr&qzFk-#7?)Jj?qWxVF~cU*hPj_8ail zvZ*<8y*QnNSMBm{g=dC3@G&{V_-PG{@7{-SU(K;d8iYj(j$6<}A$mUK^>qEMWLs~? z+R9xu`4x+s;!F7UCqKkp4jmOMoL?U-U}NAr+{3ql?aw_Y_Qc7chjGT9eKFS4_`A~A z-1ZCZ*%0zi3z#S2>>jr6aBgRxhrP-$mxpUl-L@Eq9k==HH2b2j+V7dJ)`*ff;E>MW zref?gKU+6z25MWsG^(tdhe}X>3y+GrBu;vvXBehA$g&V)p zVOXGtnB>z}Yw*k81oOb0!}uP7vuVb`eeUhv!*i?tLang)OLOw`=Ac4+gJJkyMR+FK z#FzQ^0S(#vTCm%FGI%~P7N@IlSQDmg9E0(*&sSOUQtf!V~p?RxQ~s& z?wN2+gnPsz=Caq!6KvlH-(zcOG|76j8QbIV1DD*3a&-#M)mSUpbQ=wX@0G5l(fKf$ zmE_*-Bk~!{Pw1nhxhp)!;@xUEdz{_;{p3+OK7y9I>!&flrqCsv+uR|3>2ePpMopE| z`?2u}7}IhR8(I!^E_^D`=$@NuY-4_5{73t%oA)}#u1mA!!OwPVb2Tv8sqr>G+d1_ZUcQ5 zV{5kg;C|S`Ynpj}AUhK1Bxvu%OoZ|BVKZ~iw z@+8}T;^TMp5Y@!|ukGFh@vuaVIovgis(iXe)3liegVU$f&As8L->^3@W1;aMmT&Hb zO%c92=g4>ByE?ueHE&dwU*WQIn|^8e|5_MlDchVM;k@DSsb@Yp3#;Gh^6E`EzC|}| z?0%OR7K<-`;=DZLyT+c|PHq||hG?S<|Id1Th}QPgdpcZt!mLuzTMS%(l55y~8UB}? zJF+1RjTi1Q&7OhZ>2mp5uZ{IyQRgnVho%2;FUlGHZ-7nJ;%Z1*=!#q34XLyl zu16HyAs4swzJOXS8>h{!!5j?6yy3R;{VP4 z&Y6#IwqNr6hqt4nk}t{|+tf?rjbCgOTy`6e9_z~u1!z1^yKukTayG<_%-2;_9Ebat zufThEUAPv~Uun7HsNbMu%hjjFJWkuMACXanwd zX5wflOvkuy?rwXV#{5RjG;m9?4*x6@3Rwz@oIGP#{_THv8k;8_kwbFwYjuP zO`gC{xDNH#sLmG@qDO<_i#_<*Yv(-gE4-NO3u`OEWCzJp)o#%--Jy4n61(9o}Ry_ANKz0@Ovoj zm3i5kq?^2r^CahuR}-_VhPI`Q z@yYG_d4!$m*s0L5w z16w0bQ?+WrvCzLIj!$o2D2|(jL)i++=y=#kf1AQE|4DcC|g;OO0WSwn_N;&9R1Rbv8uY4Hx*#WA8HiGk=_N&kP)9 zoTJH4*#y&S55jAl^&i}_*2`yy{Kw<1v~tb+cWE|U$5`jHeeN0R^M>EOtL2{Qa%@S5 zFYSD^SgslgQ)7;;NE0{;_tLabn-;LwIB%Xgl^qFv&9nCJ`{1kl2z$0|*isAs_A@pW zhy5sV2(u)$-C@6b{`werlu=K({Q+vj1wL*C$lZ}D|0yC z_KSy@)?&kF&pgG~8ulsK*q>$&bds0(H2Ym~G#fTJT=OOy&asQ$b8r&YSB?H9N8ZJk zD(vb(m#{snpP=jaOPV{~yD*K7xp=57&(w;gDSfstWPaXl?xL~0t=7Q<&5`Z3tEv4& zx!*JU2Z(_!@az5tyo}Mzy_UUJ(?B2NPs*?P-jd_P_bA%ZNv#jzE*GT3r9C}v@xFUO zeZB3o&UE;Q*L0G&P_3iCRvOAo;7xN+&}7|imX7OSh+uH85s74UzGJ`-@TRX^?d@dmrU8g0LWExB#P$is5s zIJoFz9n9;o^|;sV{~@+l^Rv6LaaOe#TlhGhPn{m4KRQU&=YCji6G!RJ4foG(VaE>m zXLnNz(Py|`vXi!c!hb)ncaNaSLFyw~xV@!*@!Mhm?Tl2P^Xq0sdFU-Mq^|0Ot4&>L z43|5L_^c9b_TW4FU+*B_dwp#VtTyYzwXf~Q8C~AF`poJ`lYgrfQs`y{e}3hoXOhJI zTf8lC4!t#`ixK?!0{-ngi5+^3>4}@d);#x{i_?9MpKXU|mcIvX6_bnb0MllXYHN7a zU5GP&MLaG?@^M&EIM7A7roVZ+y`vH|#kb=0RPQ)UoLjJARPwwsbozv~GT$QTb~pcu zm^XH^_Z2vXbvsA}J$6Ehgp_3u}`?|2&?pbv=-Tnxhnrh^g z+J@^YIXLc4XXWISV$0+nnTs9W&$%IxPavM3{78 ze>pLEPWxusY${}2`$xm*Icg(}T~8dI>mC`t90~n@!!Lb)j*FO9=2_fs!QD4G`PWF+ z?l-TOR5Q)>c~}0K6aGw)2bZhsyU-i|^0t_JV3~%ik7>FdPEU6?hYc17{5zn&**cp) zaCiYWt?^YRa0AyHS+H8#*b=_aJ53)oa55QQf6>KRxqdvZVq2OoVSlKX^_@8HxQ`Z}lh3WI zKbt4UXy>E1XsUxae^_5Iy1}PXD{wlLM*YRWDdgBP9j*KBG5^()(=N*wcgQ1)VIkL^ zC~XZhQQz$N?``r;9d+Y2HazX`T^d@#FZ)pwOVJIj+&5NEyd4kmQU80+OH5VqC?^%> z+peWB6SHSWn}@b)@4H;PzOt5D$u9h7ZnBQyOZ`dqzu3HXqZr*O-@)PR85)~RPvU5- zF#;ABqRj>I>}PwFKCiE1Kg~8%hkoW-Mpy%ndfj*M`8rG6W9J8_4pX6W~AfgAyE@x(yzX)5{!J4&&HWQLFkN**o)=4-?-q~7nC3p$v%}%JBfpky&AvHF zaA~Qg=Tn6^wb~#WHs%$+e(QZIEo_EO9oTldMP7tO&sY2xpBv~u+?N*F1uyK#!%evM z*Sk0W@Ro|NdN27L|LtHIUkiTxeh7xo4-gmHyjWg)n#twQ)`hS)Zj~50QXg4eqLP2Z zUqN>K;kga(@FRRzD)CcX(?;1DaDd6_41Vx8QM)aB@o+EQ!8JkOo9fH?Y_7x4rH=2| z?VJbs=>6}xV(&}$4bb;`F%+KXRu$$M`n*t?&ONXDJT0xIt*Q4}AH!le9_Ky)8?U$b zP?u^ur8&J0q~9oWh4cUL`30|s@HyP49$8E*WXTmY67HSf;Pb6~>0J`nOT?(t=dwaFiyCStYRzcI9MDi zKzlo3qy2EPJ_&X^_;C^LeP+U)5C5d8v>M`)O-IMzHN{#1-fiIj(-$x(P(ArZ33kRh zFO?pbTH6?Ff%AtKrLA-PV0W(AS=&O4rs4k$+_|6PVnMbylaKiGFt*!WWvk+e1G}c&L&`UO3!gH;QsJ$u~Z;-wZ zF{HCZ)lRen8#_jUVSLw*GA);xcD9c|o%-tcZHmi2wm zxw*y-*ML^y{Od~ii;YTdkqHNTXd7qb?_t*&;#t9aoL7WB@>;@hYpL<-P&meYR{np# zqc%pr)$f7R2Bz)tc|1lSrrC0Wb->iT86LAjvrfTIxy{iHYjCl$6_3_rv zx^MWu*pAl*{<4krM}nNh_p=YMtFdE~LQTw`C}Z;TWC?xZ<7iEBIFbH3n&bEst_hE) z-~Iofi+%k3R2}iLeSUhXCXRNb(U$&C@O6tCFU6XvET4*upyQU-Zwu&ryn9_P(GIRZ z9jg|!W{QDRCQLulc01cUp7T0hpP!pox5(A(TPr>m+-rVeM=tCyURO7c6bCTM5`!nS zYcdaKPpacb(+ZoamK1MW^J}9Ye!(kFD~_Ts*woIW*`m0G|M~g!!pA!NUf4h#qW_&Z z`cvC*zrdVY)=;=Act{;qPY#Wi$KfC9qzpO(V?`v+h(3O@n+ z)^g0^HJ+{7o~B`PP)=?2puYH4+&mx4=E~w{Fn><6@qOv#h2ITGHeT^8nu}ALyvxrTjz?H~z^=c0`eI&^CzD~uhlg78^+kBGwJRG&_NFKO zG#bG63UVPEPO-PsUSrxTJpYRNq2z+g9we{h0nYjrKe0c$o z5kGE|tB>HTLR0oTf2n?((EK!W|M3j*pwA!Vfs{yjp$$y#VS{s*y(|`S9lqCBIg`J* z@BEy6#ovp3?=eff4bw&*-<=~Sd>+TnE5+e#A0X2h@$1>{+CpY?dmSH|oB8sCF)JBo zwc{0r%G<_E=q0xFxknx;rOm_x_`^%MA0g>J@yC|E#;-F{E%;-8`^zcpD4AbZ>}f)` z$7su1@B*%9(b)cm^j^~*8XpeL6{ECybsD}e=wHs6$L2Jje+#>7Ma7--2R%tY@#<`S z<#aXnWU+wTpO?@e&W;S1dtr5*-M`fLEV~op?^(HFFO1msdqI5iE%gY$EY2d0bgx}E0FywApA z`ge`zg7Z${9;ca-fu8+^2)?a(}$e(+}Pl)F}ADh$o z`nGervgwI?t))xYYpDaLQRaw+=77`r-+>rn-2bp^FT2BU&h=^`&R}@7fjygxwTJRN;5V7jU}` zXZM)%^}ow`7hqD3t>M1*SmS1~F+6uY{2omiT=dcJ_J?pkTZ~z=CQVWwyw1+WbY=gm ziE$>T;R&AYKTvCF8=jSYwGcb)+l2jqiFx|uYuju3<9h@<$BB!o#!GT+dyKrEZl0yV z4bSt@7~y-`O)}VXCw&^@sMxtOM~twet}%-Hj@dw3|IO=YyewZX7qa)GD7Md|XZp^1 zMJ~Y2(I>_4%W_Od>tX#}rlA+;_>^;>HMe#D8OGbpQ8mq(v)Iv2&c06`-L8&iN2EMa zef97-6n+0_jK^^?izcq$PX}Y@v>|-HG{$cF(1C`{9 z0@g-N`GeC=n_&U(r}%&F9dkgA_u8}=Y>lwg{Bygxj~_*xQdnd{C;AXSMRQZ+t=~g zA1>d>(Mj|Iqt`n4%=^*r(p>_ZjnlfGn%ZZ(hqGZZ-yGY~SH60H=EnPME`BQeUok)a z?it}+{)Fq>OWXLPhu^EifYw$Qfngtdf?2rdXx=00GxKRPv6T1~9iMbQjtjznoiVSh zl>2@$xACnq4g7PJT2B2lSUio^XFXb&@7bVZ#Y(|pe3SP+HAas9iw~fqMPigD!f)eL zi<1xe9*3ie+r;ubW6Mu@>c%E;Uoes`9gE)Nbvv~Ve2(aIW|@2q9~TePaCTk25$-1p z*IE0vWJ7oUED3c5JrAX4HTyqbJEAg!PD1MT`N=1jXogX zz<8SRbMC??&RfAZD_)y_`AsZi6?s8B_7A0{ve9gW?O6Edd7tNaE`AStUP6_QxUK`M z+G2txYQiNh)@SVMHwe#ro$q}v9d@qDW*kJ*^x-l1nW3(7&Wr|*-yt{o-{gcb$I-$i zd20|YvGrJIyuiM>IU))E^YndWzCF3W>6R^f#Z7H|hWp_*I4?C-9)nRo_BZ2KY5q;1 zyGERDas6LvzHiNA)o_g8e@}p2ov7ru)azk?=Z-DT!P_x@r7Tw~mShX=DmkzB zT)z1HdO7o0E6<~6_jTiKn@;lu+0fXUrz1b&<%k6LRN0FvFv^^S%K^A3Wy~3$c#rEC zK9%GDM|4wqin;_RVLcF@(SL9joSqev`fPHqnA7%THk(qMmqQE5=FoIGOuJ*Z(;D19 z8jLIXvmARS^Z$_Zvb4X1$2C>d+K2h8W+?Sk{`_+*TQ3aE@9X>se$LYd_F-?h$Pk#Y zAw17$IBYl9fS)lg46y#FBnI_0gHPM!jOz#G#27h_=EC*#dTm|v8LG{LVl0en^bycc1>&!0$evUxiW6m&NuP{_%NM z5B< z4#Km3Z8pQAzjJ%tA|D&GvN3wQ4%Jovi}_a(U)Qbq65(?g{$Zc%Xk~LEEY89+^DlK( zExfE08^()!N1phAHvIoZ`^Z=6qcnbB$Lnz%j4>C(wO<0?_%e~b+u^kLbMbb=-oZ$7 zBwKszlN-yaE5;hj`@c%TfDS)m|3>wFxW<1h+4b8L^-?vjY4au<58T7X$8dy)mm}oC z-SUoonxvNOckD79hieVtTI_0lG?)xOT%OZ+&n)u=O}C$>zMf%@(Ra9?sYQ>dimYN zeK?(+&pbz~j$MtmFWyBg-T`CW z*TLbgqi}%L-p6T?w$Ib>Asnw|OBT(%3%_u`c(n7=*^vR87(S0$P1BwEB^NX+LL2hL zz%TgITU%rGPf#P^A+Z9#a237-9QJ&FtO2L5)gNMHCB64mmlmbZF*WT2%Bv-}tH8P%HtL`T^`XM zp7FRZXs>+jM{3t;@*ICV;%@4Be&M-cS95Q3JiTfUCd!)PZetj?KwGho^X-r66F;N$ zU5Q;kc4GHL+~X)(UZ{AB*kIemR`Rp{C%|ppdVT7n)hotWiT6?Y*F_dQ>h~n%zr%1E zI6#iq-!{)@Pk+{&SKi#uo;vzZ@pqp8yPMDneIAZ?-^NLM5B!`$|Do2}%)dx{cZJVM z{2pXWjd}RZto64WT`U%g?s{0OZ_?B+mYsM_{7EJYbfo~gNn3gS0;J4OaSmT9S zqi%7rB&V%`Um;jWH_(5KT>c@uzV^GaP1FK&*{l7s>hNdVMcPQvcB=6gj^sNZYs&-c zjGg8>)2R-$gS*52U-en*zu1k3!!X}PcN2@!`%*D-N{z{uuou<`H<6p7l27yTh`yhu zuR*jmAW^PO*Y`o^dEMAw2^=RFx5a1th2=FoN3i=(*Uv_3Kcf<@Hz%z5NNX&(4ld z!!}Mnv>$X67vVQJ56KehuLFA#s<>&Tr+ePGLV#zxJ53#OhBityQ++u&x~Z zuH+OV&GVZJ&s-GOLehPl<%do^fMG!G?QqILG%_I>9^hB zv%H-(R}u3_H}{0%FbmEp#y&Zg|2WFE{#`rJ_Y(T+hs}dm;1lNiXPS@QD|F#I>lAiY z!^K$FGk;yi|&;Fag!;G5KzJEq=cIr9ER@l}b=kc9h2|s^gD{C;lZpTK@;emmG4-&Bps=H=_f6fG9^It_0> zza%Ce6t54PBjt`$_9q*C>OTx428)9s;=sD=hU@-u4SkNUO{2{rkob3<(tTQ4g4!TsiM zT6=0CUCuW4IG8+QzADQ{ao?3q>vqvWANN9Sgj;zSiK!Q15U%4dqV*&24s+ry=FB{= z3m7|nlC=!3t<-H-=DPHUV28+@eTpsLSLEi=c& z(xx^)t-)(yF*d`T#h>u}gi!l#bZ+cA^Aqj#>1V$@!Wd($bJ=mT5&P?z=e$q(s(f;CQ9>L)pEZjl21m z2h$_YzvA;Q@ZQ!AE|uZ+F#poTbUAk1MeA&yRmI#5$M73?scbIk^H76_@AO{A?N#gZ NPi}#yJ+7sW|35jjMU(&l literal 0 HcmV?d00001 diff --git a/tests/tfscreen/tfmodel/inference/test_convergence.py b/tests/tfscreen/tfmodel/inference/test_convergence.py index 83b24361..ba0f4fff 100644 --- a/tests/tfscreen/tfmodel/inference/test_convergence.py +++ b/tests/tfscreen/tfmodel/inference/test_convergence.py @@ -12,6 +12,7 @@ from tfscreen.tfmodel.inference import convergence as conv from tfscreen.tfmodel.inference.convergence import ( ConvergenceMonitor, + loss_skew, loss_trend, param_drift, summarize_excess, @@ -100,6 +101,59 @@ def test_loss_trend_detects_decrease_well_below_step_noise(): assert loss_trend(losses)["t"] > 3 +# ----------------------------------------------------------------------------- +# loss_skew +# ----------------------------------------------------------------------------- + +@pytest.mark.parametrize("noise", ["normal", "exponential", "lognormal", + "student_t3"]) +def test_loss_skew_benign_noise_is_small(noise): + """Monte Carlo ELBO noise, right-skewed or heavy-tailed but without + separate penalties, stays well under MAX_LOSS_SKEW.""" + rng = np.random.default_rng(0) + draw = {"normal": lambda n: rng.normal(size=n), + "exponential": lambda n: rng.exponential(size=n), + "lognormal": lambda n: rng.lognormal(sigma=1.0, size=n), + "student_t3": lambda n: rng.standard_t(3, size=n)}[noise] + for _ in range(20): + stats = loss_trend(1e5 + 1e3 * draw(WINDOW)) + assert stats["skew"] < 1.5 < conv.MAX_LOSS_SKEW + + +def test_loss_skew_rare_penalties_are_large(): + """Rare draws with a huge penalty: the median ignores them, the mean does + not. The skew is the mean shift (rate x penalty) in per-step noise SDs: + here 5-30% of steps carrying 240 noise SDs.""" + rng = np.random.default_rng(1) + for rate in (0.05, 0.1, 0.3): + losses = (4e4 + 1e3 * rng.normal(size=WINDOW) + + 2.4e5 * (rng.random(WINDOW) < rate)) + stats = loss_trend(losses) + assert stats["skew"] > 3 * conv.MAX_LOSS_SKEW + assert stats["mean"] > stats["level"] + 3e3 + + +def test_loss_skew_ignores_trend(): + """A falling loss is not read as skew (residuals are about the line).""" + rng = np.random.default_rng(2) + losses = 1e5 - 20.0 * np.arange(WINDOW) + 10.0 * rng.normal(size=WINDOW) + assert abs(loss_trend(losses)["skew"]) < 0.5 + + +def test_loss_skew_constant_and_empty(): + assert loss_trend(np.full(WINDOW, 5.0))["skew"] == 0.0 + assert loss_skew(np.zeros(10)) == 0.0 + assert loss_skew([]) == 0.0 + + +def test_loss_skew_deterministic_repeats_are_not_skew(): + """A deterministic loss whose steps mostly repeat one value: the spread + is floored at rtol * |level|, so float-level differences are not skew.""" + losses = np.full(WINDOW, 1e5) + losses[::7] += 1e-3 + assert loss_skew(losses - 1e5, level=1e5) < conv.MAX_LOSS_SKEW + + # ----------------------------------------------------------------------------- # param_drift / summarize_excess # ----------------------------------------------------------------------------- @@ -247,6 +301,35 @@ def test_monitor_stop_needs_parameters_still_at_floor(): assert m.converged +def test_monitor_stop_needs_unskewed_loss_at_floor(): + """At the floor a skewed window is not a plateau: the run continues (and + reports it) rather than converging on a median that hides the mean.""" + skewed = dict(_FLAT, skew=40.0, mean=500.0) + m = ConvergenceMonitor(1e-6, 1e-6, patience=2) + assert [m.end_window(i, skewed) for i in range(6)] == [conv.CONTINUE] * 6 + assert m.last["loss_skewed"] and m.last["loss_skew"] == 40.0 + assert m.last["loss_mean"] == 500.0 + assert "loss skewed" in m.describe() + assert m.end_window(6, dict(_FLAT, skew=0.3)) == conv.CONTINUE + assert m.end_window(7, dict(_FLAT, skew=0.3)) == conv.CONVERGED + + +def test_monitor_skew_never_blocks_a_cut(): + """A smaller step size does not remove rare penalties, so skew only gates + the stop.""" + m = ConvergenceMonitor(1e-3, 1e-6, patience=2) + skewed = dict(_FLAT, skew=40.0) + m.end_window(0, skewed) + assert m.end_window(1, skewed) == conv.CUT + + +def test_monitor_max_loss_skew_setting(): + m = ConvergenceMonitor(1e-6, 1e-6, patience=1, max_loss_skew=50.0) + assert m.end_window(0, dict(_FLAT, skew=40.0)) == conv.CONVERGED + m = ConvergenceMonitor(1e-6, 1e-6, patience=1) + assert m.end_window(0, dict(_FLAT, skew=np.nan)) == conv.CONTINUE + + def test_monitor_goes_through_all_stages(): m = ConvergenceMonitor(1e-3, 1e-6, patience=1) decisions = [m.end_window(i, _FLAT, {"p": 0.0}) for i in range(4)] @@ -409,3 +492,42 @@ def test_recorded_simulation_trace_is_still_improving(): decisions = _feed(m, trace.astype(float)) assert set(decisions) == {conv.CONTINUE} assert m.last["loss_t"] > 10 + + +def test_recorded_traces_are_not_skewed(): + """Neither recorded clean trace has a window near MAX_LOSS_SKEW.""" + for name in ("real_svi_200k_genotypes", "sim_svi_anchored_run0002", + "sim_svi_unclipped_converged_run0005"): + trace = np.load(os.path.join(TRACES, name + ".npy")).astype(float) + for _, losses in _windows(trace): + assert loss_trend(losses)["skew"] < 1.0, name + + +def test_recorded_clipped_trace_never_converges(): + """Congression-calibration baseline run 0003 at step size 1e-6 under + elementwise gradient clipping: ~15% of steps carry a ~2.4e5 binding + penalty (a steep binding curve measured with SD 1e-3). The block medians + are flat, so the loss test alone called every window a plateau; the skew + keeps the monitor from calling it converged.""" + trace = np.load(os.path.join( + TRACES, "sim_svi_clipped_events_run0003.npy")).astype(float) + skews = [loss_trend(losses)["skew"] for _, losses in _windows(trace)] + assert min(skews) > 5 * conv.MAX_LOSS_SKEW + + m = ConvergenceMonitor(1e-6, 1e-6, patience=2) + decisions = _feed(m, trace) + assert set(decisions) == {conv.CONTINUE} + assert m.last["loss_skewed"] and not m.last["loss_improving"] + + # the loss test alone would have stopped it + blind = ConvergenceMonitor(1e-6, 1e-6, patience=2, max_loss_skew=np.inf) + assert _feed(blind, trace)[-1] == conv.CONVERGED + + +def test_recorded_unclipped_trace_converges_at_floor(): + """The same simulation (run 0005) refit without clipping, around its + convergence: flat and unskewed, so the loss test stops it.""" + trace = np.load(os.path.join( + TRACES, "sim_svi_unclipped_converged_run0005.npy")).astype(float) + m = ConvergenceMonitor(1e-6, 1e-6, patience=3) + assert _feed(m, trace)[-1] == conv.CONVERGED diff --git a/tests/tfscreen/tfmodel/inference/test_initialization.py b/tests/tfscreen/tfmodel/inference/test_initialization.py index f7e2f6c9..fc1debf8 100644 --- a/tests/tfscreen/tfmodel/inference/test_initialization.py +++ b/tests/tfscreen/tfmodel/inference/test_initialization.py @@ -16,6 +16,7 @@ component_guide_init, component_guide_map, site_prior_sds, + site_unconstrained_prior_sds, site_values, trace_model_sites, ) @@ -109,6 +110,41 @@ def test_site_prior_sds(): assert "d" not in sds # Cauchy: no finite variance +def test_site_prior_sds_skip_undefined_variance(): + """InverseGamma(2, .) with Python floats raises ZeroDivisionError from its + variance (the horseshoe slab prior, slab_df = 4); that site is skipped, + not the whole model.""" + + def model(data=None, priors=None): + numpyro.sample("a", dist.Normal(1.0, 2.0)) + numpyro.sample("c2", dist.InverseGamma(2.0, 2.0)) + + sites = trace_model_sites(model, None, None) + sds = site_prior_sds(sites) + assert "c2" not in sds + assert float(sds["a"]) == pytest.approx(2.0) + # the unconstrained spread falls back to Monte Carlo (log units) + assert np.isfinite(float(site_unconstrained_prior_sds(sites)["c2"])) + + +def test_site_unconstrained_prior_sds(): + """Prior spread in the units guide locations live in: exact SDs for real + sites with a finite variance, a robust Monte Carlo estimate (IQR / 1.349) + otherwise -- log units for a positive site, finite for a Cauchy.""" + sites = trace_model_sites(_model, None, None, substitutions={"a": 0.0}) + sds = site_unconstrained_prior_sds(sites) + assert float(sds["a"]) == pytest.approx(2.0) + np.testing.assert_allclose(sds["c"], 0.5) + assert sds["c"].shape == (4,) + # log|3Z|, Z ~ N(0, 1): IQR / 1.349 = 0.95 (the scale does not matter) + assert 0.6 < float(sds["b"]) < 1.4 + # Cauchy(0, 1): IQR / 1.349 = 1.48 + assert 0.8 < float(sds["d"]) < 2.5 + # deterministic for a given seed + again = site_unconstrained_prior_sds(sites) + assert float(again["b"]) == float(sds["b"]) + + # Guide sites that do not follow the {site}_loc(s) convention, and why. _KNOWN_UNMAPPED = { # horseshoe_geno names its guide params activity_lambda_offset_* and diff --git a/tests/tfscreen/tfmodel/inference/test_run_optimization.py b/tests/tfscreen/tfmodel/inference/test_run_optimization.py index 8dbfa0ed..0a5160c4 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_optimization.py +++ b/tests/tfscreen/tfmodel/inference/test_run_optimization.py @@ -16,7 +16,14 @@ from flax import struct from numpyro import handlers -from tfscreen.tfmodel.inference.run_inference import RunInference +import jax +from numpyro.infer import SVI, Trace_ELBO +from numpyro.optim import Adam, ClippedAdam + +from tfscreen.tfmodel.inference.run_inference import ( + RunInference, + adam_optimizer, +) NUM_GENOTYPE = 12 NUM_OBS = 6 @@ -194,6 +201,90 @@ def test_schedule_without_cuts_runs(): _fit(ri, svi, max_num_epochs=1000) +# ----------------------------------------------------------------------------- +# Optimizer: gradient clipping off by default +# ----------------------------------------------------------------------------- + +def test_setup_svi_defaults_to_unclipped_adam(): + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + assert type(svi.optim) is Adam + clipped = ri.setup_svi(adam_step_size=1e-2, adam_clip_norm=2.0, + guide_type="component") + assert isinstance(clipped.optim, ClippedAdam) + assert clipped.optim.clip_norm == 2.0 + + +@pytest.mark.parametrize("clip_norm", [None, 2.0]) +def test_step_size_cut_keeps_clip_choice(clip_norm): + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, adam_clip_norm=clip_norm, + guide_type="component") + _fit(ri, svi, final_step_size=1e-4) + assert ri._monitor.num_cuts > 0 + if clip_norm is None: + assert type(svi.optim) is Adam + else: + assert isinstance(svi.optim, ClippedAdam) + assert svi.optim.clip_norm == clip_norm + with open("toy_checkpoint.pkl", "rb") as f: + assert dill.load(f)["adam_clip_norm"] == clip_norm + + +def test_clipped_checkpoint_resumes_unclipped(): + """Adam and ClippedAdam share their state, so a checkpoint written under + one resumes under the other.""" + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, adam_clip_norm=1.0, + guide_type="component") + _fit(ri, svi, max_num_epochs=50) + ri2 = RunInference(ToyModel(), seed=0) + svi2 = ri2.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri2, svi2, svi_state="toy_checkpoint.pkl", max_num_epochs=50) + assert ri2._current_step == 100 + + +def _wall_model(): + """A latent pulled toward x = 5 by many observations, and one binding-like + observation, measured with SD 1e-3, of a step that is 'on' only for + x < 0. The guide's width is fixed (in the real model it is held up by + shared hyperparameters), so the optimizer can only trade the pull against + the rare draws that cross the step.""" + + def model(): + x = numpyro.sample("x", dist.Normal(0.0, 10.0)) + numpyro.sample("pull", dist.Normal(x, 1.0).expand([50]).to_event(1), + obs=jnp.full(50, 5.0)) + theta = jax.nn.sigmoid(200.0 * (0.0 - x)) + numpyro.sample("wall", dist.Normal(theta, 1e-3), obs=0.999) + + def guide(): + loc = numpyro.param("x_loc", -1.0) + numpyro.sample("x", dist.Normal(loc, 0.3)) + + return model, guide + + +@pytest.mark.parametrize("clip_norm,crosses", [(1.0, True), (None, False)]) +def test_elementwise_clip_walks_through_rare_penalties(clip_norm, crosses): + """The failure behind the congression-calibration blow-ups. Gradients of + this loss are far above 1, so ClippedAdam follows each draw's gradient + sign: the pull wins every draw that misses the step, and past the step + (where it saturates) every draw, so the location is carried through the + constraint. Unclipped Adam balances the expected gradient and keeps the + guide on the allowed side, crossing on ~1% of draws.""" + model, guide = _wall_model() + svi = SVI(model, guide, adam_optimizer(1e-2, clip_norm), Trace_ELBO()) + result = svi.run(jax.random.PRNGKey(0), 3000, progress_bar=False) + loc = float(result.params["x_loc"]) + draws = loc + 0.3 * np.random.default_rng(0).normal(size=20000) + p_cross = float(np.mean(draws > 0.0)) + if crosses: + assert loc > 0 and p_cross > 0.5 + else: + assert loc < 0 and p_cross < 0.05 + + # ----------------------------------------------------------------------------- # Resume, step counter, checkpoints # ----------------------------------------------------------------------------- @@ -242,6 +333,33 @@ def test_resume_old_checkpoint_without_convergence_state(): assert ri2._monitor.step_size == pytest.approx(1e-3) +def test_resume_migrates_old_convergence_file(): + """A convergence file written before the loss-skew columns existed is + rewritten under the current header on resume; old values keep their + columns and new ones are left empty.""" + ri = RunInference(ToyModel(), seed=0) + svi = ri.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri, svi, max_num_epochs=50) + old_cols = [c for c in ri._CONVERGENCE_COLUMNS + if c not in ("loss_mean", "loss_skew", "loss_skewed")] + with open("toy_convergence.csv", "w") as f: + f.write(",".join(old_cols) + "\n") + f.write(",".join("7" if c == "step" else "x" for c in old_cols) + "\n") + + ri2 = RunInference(ToyModel(), seed=0) + svi2 = ri2.setup_svi(adam_step_size=1e-2, guide_type="component") + _fit(ri2, svi2, svi_state="toy_checkpoint.pkl", max_num_epochs=1000) + + import csv + with open("toy_convergence.csv", newline="") as f: + rows = list(csv.DictReader(f)) + f.seek(0) + header = next(csv.reader(f)) + assert tuple(header) == ri2._CONVERGENCE_COLUMNS + assert rows[0]["step"] == "7" and rows[0]["loss_skew"] == "" + assert len(rows) > 1 and rows[-1]["loss_skew"] != "" + + def test_fresh_run_resets_step_counter(): """A pre-MAP followed by SVI on the same RunInference: SVI's counters, loss file and epoch checkpoints start at zero.""" @@ -319,16 +437,39 @@ def _specs(guide_type, **guide_kwargs): def test_normalizers_component_guide(): _, _, _, specs = _specs("component") - assert specs["theta_locs"] == ("scale", "theta_scales") - assert specs["mu_loc"] == ("scale", "mu_scale") + assert specs["theta_locs"][:2] == ("scale", "theta_scales") + assert specs["mu_loc"][:2] == ("scale", "mu_scale") # LogNormal location (log space) paired with its log-space scale - assert specs["sigma_loc"] == ("scale", "sigma_scale") + assert specs["sigma_loc"][:2] == ("scale", "sigma_scale") assert specs["theta_scales"] == ("unit",) + # Floors: PRIOR_SD_FLOOR x the prior SD in the location's own units -- + # Normal(0, 10) for mu, Normal(mu, 1) for theta, and log units for the + # HalfNormal(1) sigma (log|Z| has SD ~1.1; a robust MC estimate) + np.testing.assert_allclose(specs["mu_loc"][2], 0.1, rtol=1e-5) + np.testing.assert_allclose(specs["theta_locs"][2], + np.full(NUM_GENOTYPE, 0.01), rtol=1e-5) + assert 0.005 < float(specs["sigma_loc"][2]) < 0.02 + + +def test_normalizer_floors_collapsed_guide_scale(): + """A guide scale far below the prior SD is not used as the yardstick.""" + ri, svi, state, specs = _specs("component") + constrained = dict(svi.get_params(state)) + constrained["theta_scales"] = jnp.full(NUM_GENOTYPE, 1e-5) + constrained["mu_scale"] = jnp.asarray(0.5) + theta = ri._normalizer(specs["theta_locs"], constrained) + np.testing.assert_allclose(theta, 0.01, rtol=1e-5) + # a scale above its floor is used as is + mu = ri._normalizer(specs["mu_loc"], constrained) + assert float(mu) == pytest.approx(0.5) + def test_normalizers_auto_normal(): _, _, _, specs = _specs("auto_normal") - assert specs["theta_auto_loc"] == ("scale", "theta_auto_scale") + assert specs["theta_auto_loc"][:2] == ("scale", "theta_auto_scale") + np.testing.assert_allclose(specs["theta_auto_loc"][2], + np.full(NUM_GENOTYPE, 0.01), rtol=1e-5) assert specs["theta_auto_scale"] == ("unit",) @@ -349,12 +490,22 @@ def test_normalizers_delta_use_prior_sd(): ]) def test_normalizers_auto_continuous(guide_type, kwargs): ri, svi, state, specs = _specs(guide_type, **kwargs) - assert specs["auto_loc"] == ("auto_continuous",) + kind, floor = specs["auto_loc"] + assert kind == "auto_continuous" assert not any("scale_tril" in k or "cov_factor" in k for k in specs) norm = ri._normalizer(specs["auto_loc"], svi.get_params(state)) assert norm.shape == (NUM_GENOTYPE + 2,) assert np.all(np.asarray(norm) > 0) + # The floor follows the guide's latent layout: mu, sigma (log units), + # then the theta block. + floor = np.asarray(floor) + assert floor.shape == (NUM_GENOTYPE + 2,) + unpacked = svi.guide._unpack_latent(jnp.asarray(floor)) + np.testing.assert_allclose(unpacked["mu"], 0.1, rtol=1e-5) + np.testing.assert_allclose(unpacked["theta"], 0.01, rtol=1e-5) + assert 0.005 < float(unpacked["sigma"]) < 0.02 + # ----------------------------------------------------------------------------- # Starting points From 985783d49d14fe3e290b1ed746a2b109f96536be Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 17:56:26 -0700 Subject: [PATCH 038/208] Record baseline and profile grids on the new convergence code (3.5) On the noise-referenced convergence code (5bf5b78) and the corrected library (bff2c51), all 13 runs hit the 100,000-step cap without the stop rule firing, and on the lambda-1 seed-1 simulation single and the mixture alike blew up ~5x at full step size, which the step-size cuts then locked in. The lambda-profile grid shares that simulation and is uninterpretable; both failures went to the convergence work. On the stable baseline pairs, the lambda-1 mixture recovers lambda (0.98; 1.30 on the old library), cuts dk_geno RMSE ~3x (0.0023 vs 0.0077) and improves coverage, with bulk theta slightly worse than single (0.121 vs 0.106). At lambda 0 the mixture still finds lambda ~0.15, with theta and dk_geno slightly better than single's. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 8 ++++ .../studies/congression-calibration/README.md | 43 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 9c64d28f..e4ea5d1a 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -645,6 +645,14 @@ checked with `tfs-summarize-calibration`. and dk_geno (RMSE 0.0049 vs 0.0105) but not theta (0.173 vs 0.155), with lambda at 1.30. The convergence overhaul (5bf5b78) is in; next: a lambda profile and the coverage question, on new grids. + Baseline and profile grids (2026-09-25, new convergence code and + library): the stop rule never fired (13/13 hit the cap), and the + lambda-1 seed-1 simulation blew up at full step size in `single` and + the mixture alike, making the profile grid uninterpretable; both went + to the convergence work. On the stable pairs, the lambda-1 mixture + recovers lambda (0.98) and cuts dk_geno error ~3x, theta slightly + worse than `single`; at lambda 0 the mixture still finds lambda + ~0.15. Next: re-run after the convergence fixes. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index a29b50b7..2a87663b 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -405,3 +405,46 @@ wt's co-resident share 0.0026, from 0.39): seed-1 simulation (5 runs). Loss against lambda says whether the data prefer lambda > 1; theta error against lambda says whether theta is recovered at the true lambda. + +## Baseline and profile grids (2026-09-25) + +Both on the noise-referenced convergence code (5bf5b78) and the corrected +library (bff2c51). **The stop rule never fired: all 13 runs ran to the +100,000-step cap** ("SVI run has not yet converged"). After three 10x +step-size cuts (to 1e-6) the parameter criterion still reads hill_mut's +hierarchical scales as moving by 0.3-0.5 posterior SDs; their guide SDs +have collapsed to 0.001-0.005, so noise-level movement counts. + +**Blow-ups on one simulation.** On the lambda-1, seed-1 simulation, both +`single` (baseline 0005) and the mixture (0006), and four of the five +profile runs (lambda fixed at 0.8-1.4), reach a good loss (4-6e4) and then +jump ~5x at full step size between steps 8,000 and 14,000 (profile run +0003: one step at epoch 8,750 took it from 7.2e4 to 2.8e5 with guide +parameters moving at most ~0.4). The step-size cuts then lock the damage in. +Flagged parameters: hill_mut's `theta_sigma_d_*` scales. Not +congression-specific (`single` does it too) and not seen before 5bf5b78 on +the analogous runs. The profile grid is therefore uninterpretable: only the +lambda-0.6 run avoided the blow-up. Both failures went to the convergence +work as a separate task. + +**The stable pairs** (losses ended within ~2% of their best, so usable with +that caveat): + +| | lambda (95%) | dk_geno RMSE | bulk theta RMSE | bulk theta 95% coverage | +|---|---|---|---|---| +| lambda 0, seed 1: `single` / mixture | - / 0.155 (0.151-0.160) | 0.0023 / 0.0017 | 0.133 / 0.121 | 0.82 / 0.83 | +| lambda 0, seed 2: `single` / mixture | - / 0.149 (0.145-0.154) | 0.0021 / 0.0017 | 0.116 / 0.101 | 0.79 / 0.82 | +| lambda 1, seed 2: `single` / mixture | - / 0.98 (0.97-0.99) | 0.0077 / 0.0023 | 0.106 / 0.121 | 0.76 / 0.81 | + +- At lambda 1 the mixture recovers lambda (0.98 at a true 1.0; 1.30 on the + old library) and cuts the dk_geno error ~3x; bulk theta is still slightly + worse than `single`'s. +- At lambda 0 the mixture still finds lambda ~0.15 (matched prior centered + at 0.01), yet its theta and dk_geno are slightly better than `single`'s. + What the congressed classes absorb there is open (the read-count floor is + one candidate). +- Coverage is better than on the old code (0.76-0.83, from 0.55-0.66). + +Next: wait for the convergence fixes, then re-run the profile grid and more +seeds of the baseline. + From ec47f114f97e6ba1e5d57d5395cafe9cd6e4f0e6 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 18:59:29 -0700 Subject: [PATCH 039/208] Add a simulated Hill-coefficient limit; realistic study binding noise hill_mut's simulation adds per-mutation and horseshoe-epistasis effects on log(hill_n), so double mutants reached Hill coefficients in the hundreds (up to 270 in the congression calibration library, 50 of 483 above 4). With the study's binding SD of 0.001 these near-step curves contributed to the SVI blow-ups. Neither is realistic: experimental theta error is ~0.025 and Hill coefficients above ~4 are not expected. Adds an optional max_hill_n to hill_mut's SimPriors, applied in hill_mut.simulate and in binding_params.build_theta_gc_override_hill_mut (the path taken when spiked binding curves come from a params file). Off by default, so existing configs simulate as before. The study config sets it to 4.0 and binding noise to 0.025; ~10% of its genotypes now sit at the limit. Verified: new tests check that both paths cap hill_n, build theta from the capped value, and reject a non-positive limit; simulator and theta suites pass (1,634). The study library now tops out at n = 4.00. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 10 +++++ planning/congression-physics-plan.md | 4 ++ .../studies/congression-calibration/README.md | 15 +++++++ .../simulate_config.yaml | 9 ++-- src/tfscreen/simulate/binding_params.py | 7 +++ .../generative/components/theta/hill_mut.py | 19 +++++++- .../tfscreen/simulate/test_binding_params.py | 36 +++++++++++++++ .../components/theta/test_hill_mut.py | 45 +++++++++++++++++++ 8 files changed, 141 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97f6685b..10f7a904 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,16 @@ fall into two kinds: ### Added +- **Limit on simulated Hill coefficients (`theta_sim_priors.max_hill_n`).** + hill_mut's simulation adds per-mutation and horseshoe-epistasis effects on + log(hill_n), so double mutants could reach Hill coefficients in the + hundreds (270 in the congression calibration study's library, with 50 of + 483 genotypes above 4). An optional `max_hill_n` in hill_mut's `SimPriors` + sets larger draws to the limit, in both `hill_mut.simulate` and + `binding_params.build_theta_gc_override_hill_mut` (the path used when + spiked binding curves come from a params file). Off by default, so + existing configs simulate as before. + - **Guide selection for SVI (`tfs-fit-model --guide_type`).** With `analysis_method=svi`, the variational family can now be any numpyro autoguide as well as the component guide (still the default): diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index e4ea5d1a..b1e78394 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -653,6 +653,10 @@ checked with `tfs-summarize-calibration`. recovers lambda (0.98) and cuts dk_geno error ~3x, theta slightly worse than `single`; at lambda 0 the mixture still finds lambda ~0.15. Next: re-run after the convergence fixes. + Before the re-run (2026-09-26): study binding noise 0.025 (was 0.001) + and a simulated Hill-coefficient limit of 4 (new + `theta_sim_priors.max_hill_n`); the optimizer was updated. Lowering the + model's default binding weight is planned as its own step (user). 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 01c8b387..a46bceba 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -510,3 +510,18 @@ that caveat): Next: wait for the convergence fixes, then re-run the profile grid and more seeds of the baseline. +## Realism fixes before the re-run (2026-09-26) + +The blow-ups traced in part to unrealistic binding data: SD 0.001 on +theta, and near-step curves (the simulator drew Hill coefficients up to 270; +50 of 483 genotypes above 4, including 5 of the 20 in-library binding +anchors). From here on the study config uses binding noise 0.025 (the +experimental theta error, user) and `theta_sim_priors.max_hill_n: 4.0` +(new; larger draws are set to 4, so ~10% of genotypes sit exactly at 4). +The optimizer was also updated. Grids after this date are not comparable +with earlier ones. + +The model's default binding weight (growth rows / binding rows) is also to +be lowered, but that is a change to the model for real fits; it is left +for its own step. These grids run at `--binding_weight 1` regardless. + diff --git a/planning/studies/congression-calibration/simulate_config.yaml b/planning/studies/congression-calibration/simulate_config.yaml index 105814f8..1f1c115e 100644 --- a/planning/studies/congression-calibration/simulate_config.yaml +++ b/planning/studies/congression-calibration/simulate_config.yaml @@ -1,11 +1,13 @@ # Base simulate config for the congression calibration study (step 3.5 of # planning/congression-physics-plan.md). Copied from -# examples/simulate-and-analyze/simulate_config.yaml, with three changes: +# examples/simulate-and-analyze/simulate_config.yaml, with these changes: # - library_mixture is the real design (single-1 100, single-2 100, # double-1-2 1000, spiked 1), as in planning/studies/congression-estimator; # - library_binding adds 20 in-library (bulk) binding anchors; # - transformation_poisson_lambda and the dk_geno hyperparameters are set -# per run by grid.yaml. +# per run by grid.yaml; +# - from 2026-09-26, binding noise 0.025 (the experimental theta error; was +# 0.001) and a Hill coefficient limit of 4 (theta_sim_priors.max_hill_n). # binding_data.spiked_binding.choose_by names hill_params.csv relative to this # file; tfs-setup-sim-grid copies it into the grid's inputs/ directory. @@ -71,6 +73,7 @@ theta_component: "hill_mut" # Pairwise epistasis (regularized horseshoe; used when library has doubles): theta_sim_priors: epi_tau_scale: 0.1 # HalfCauchy scale for global sparsity τ + max_hill_n: 4.0 # physical upper limit on the Hill coefficient # Optional: path to structural/thermodynamic data file required by PnnC and # PddG theta components. Omit (or set to null) for all other models. @@ -252,7 +255,7 @@ binding_data: # The binding assay (shared by both genotype sets). titrant_name: iptg titrant_conc: [0, 0.0001, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1.0] - noise: 0.001 + noise: 0.025 # experimental theta error (user, 2026-09-26) # Clean, monoclonal (congression-free) controls. Pool = spiked_seqs. # choose_by: | stratified | random diff --git a/src/tfscreen/simulate/binding_params.py b/src/tfscreen/simulate/binding_params.py index 1b5e9ece..9414e0c9 100644 --- a/src/tfscreen/simulate/binding_params.py +++ b/src/tfscreen/simulate/binding_params.py @@ -382,6 +382,13 @@ def _horseshoe(size): log_K += _scatter_pair(_horseshoe(P)) log_n += _scatter_pair(_horseshoe(P)) + # Optional upper limit on the Hill coefficient (mirrors hill_mut.simulate) + max_hill_n = getattr(sim_priors, "max_hill_n", None) + if max_hill_n is not None: + if max_hill_n <= 0: + raise ValueError(f"max_hill_n must be > 0; got {max_hill_n}") + log_n = np.minimum(log_n, np.log(max_hill_n)) + # Convert to theta: (G, C) theta_low_arr = 1.0 / (1.0 + np.exp(-logit_low)) theta_high_arr = 1.0 / (1.0 + np.exp(-(logit_low + logit_delta))) diff --git a/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py b/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py index d3b66b51..0445c935 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py +++ b/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py @@ -31,7 +31,7 @@ import numpyro as pyro import numpyro.distributions as dist import pandas as pd -from flax.struct import dataclass +from flax.struct import dataclass, field from typing import Dict, Any, Optional, Union from functools import partial from tfscreen.tfmodel.data_class import GrowthData, BindingData @@ -120,6 +120,12 @@ class SimPriors: scale of the InvGamma slab (c²). epi_slab_df : float Degrees of freedom for the InvGamma slab prior on c². Usually 4. + max_hill_n : float or None + Upper limit on the simulated Hill coefficient (``None``, the + default, applies none). Per-mutation deltas and horseshoe epistasis + on log(hill_n) add up, so double mutants can reach Hill coefficients + far beyond anything physical (hundreds); with a limit, larger draws + are set to it. """ wt_theta_low: float @@ -139,6 +145,9 @@ class SimPriors: epi_slab_scale: float # typical magnitude of a large epistasis effect epi_slab_df: float # InvGamma degrees of freedom (slab; usually 4) + # Optional upper limit on the simulated Hill coefficient. + max_hill_n: Optional[float] = field(pytree_node=False, default=None) + # --------------------------------------------------------------------------- # Internal helpers shared by model and guide @@ -751,6 +760,13 @@ def _horseshoe(size): log_n += _scatter_pair(_horseshoe(P)) # else: tau == 0.0 → all epistasis effects are exactly zero; nothing to add + # Optional upper limit on the Hill coefficient + if sim_priors.max_hill_n is not None: + if sim_priors.max_hill_n <= 0: + raise ValueError( + f"max_hill_n must be > 0; got {sim_priors.max_hill_n}") + log_n = np.minimum(log_n, np.log(sim_priors.max_hill_n)) + # Convert to probability space theta_low_arr = 1.0 / (1.0 + np.exp(-logit_low)) # (G,) theta_high_arr = 1.0 / (1.0 + np.exp(-(logit_low + logit_delta))) # (G,) @@ -852,6 +868,7 @@ def get_sim_hyperparameters() -> Dict[str, Any]: "epi_tau_scale": 0.1, # matches theta_epi_tau_scale in get_hyperparameters() "epi_slab_scale": 2.0, # matches theta_epi_slab_scale "epi_slab_df": 4.0, # matches theta_epi_slab_df + "max_hill_n": None, # no limit on the simulated Hill coefficient } diff --git a/tests/tfscreen/simulate/test_binding_params.py b/tests/tfscreen/simulate/test_binding_params.py index abe1fda5..167e68cf 100644 --- a/tests/tfscreen/simulate/test_binding_params.py +++ b/tests/tfscreen/simulate/test_binding_params.py @@ -91,6 +91,7 @@ def mock_sim_priors(wt_params): sp.epi_tau_scale = 0.0 # no epistasis by default in tests sp.epi_slab_scale = 2.0 sp.epi_slab_df = 4.0 + sp.max_hill_n = None # no Hill coefficient limit by default return sp @@ -401,6 +402,41 @@ def test_double_differs_from_wt(self, simple_csv, small_genotypes, expected_wt = _hill_theta(0.99, 0.01, -4.1, 2.0, log_conc) assert not np.allclose(result["A47V/K84L"], expected_wt) + def test_max_hill_n_caps_assembled_hill_n(self, wt_params, mock_sim_priors): + """max_hill_n limits every assembled genotype's Hill coefficient.""" + genotypes = ["wt"] + [f"M{i}A" for i in range(2, 42)] + sim_data = _make_sim_data_for_genotypes(genotypes) + log_conc = np.array(sim_data.log_titrant_conc) + mock_sim_priors.sigma_d_log_n = 3.0 + + _, free = build_theta_gc_override_hill_mut( + {"wt": wt_params}, genotypes, sim_data, mock_sim_priors, + log_conc, np.random.default_rng(3)) + mock_sim_priors.max_hill_n = 4.0 + result, capped = build_theta_gc_override_hill_mut( + {"wt": wt_params}, genotypes, sim_data, mock_sim_priors, + log_conc, np.random.default_rng(3)) + + n_free = np.array([free[g]["hill_n"] for g in genotypes]) + n_capped = np.array([capped[g]["hill_n"] for g in genotypes]) + assert n_free.max() > 4.0 + np.testing.assert_allclose(n_capped, np.minimum(n_free, 4.0), rtol=1e-6) + # theta is built from the capped value + g = genotypes[int(np.argmax(n_free))] + p = capped[g] + np.testing.assert_allclose( + result[g], _hill_theta(p["theta_low"], p["theta_high"], + p["log_hill_K"], 4.0, log_conc), rtol=1e-5) + + def test_max_hill_n_nonpositive_raises(self, wt_params, mock_sim_priors, rng): + genotypes = ["wt", "M2A"] + sim_data = _make_sim_data_for_genotypes(genotypes) + mock_sim_priors.max_hill_n = 0.0 + with pytest.raises(ValueError, match="max_hill_n"): + build_theta_gc_override_hill_mut( + {"wt": wt_params}, genotypes, sim_data, mock_sim_priors, + np.array(sim_data.log_titrant_conc), rng) + def test_unmeasured_mut_uses_prior(self, wt_params, mock_sim_priors, rng): """A mutation not in the CSV gets a random delta from the prior.""" genotypes = ["wt", "M99A"] # M99A not in CSV diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py index d17fbc18..80b34c57 100644 --- a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py +++ b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_mut.py @@ -680,6 +680,51 @@ def test_deterministic_same_key(self, mock_data_epi): # The fix guards the plate block with `if num_mut > 0` and returns zero-shape # offset arrays when M=0. These tests lock in that behaviour. +class TestSimulateMaxHillN: + """SimPriors.max_hill_n caps the simulated Hill coefficient.""" + + def _params(self, **overrides): + params = get_sim_hyperparameters() + params.update(sigma_d_log_n=3.0, epi_tau_scale=1.0, epi_slab_scale=5.0) + params.update(overrides) + return params + + def test_default_is_no_limit(self): + assert get_sim_hyperparameters()["max_hill_n"] is None + assert SimPriors(**{k: v for k, v in get_sim_hyperparameters().items() + if k != "max_hill_n"}).max_hill_n is None + + def test_limit_caps_hill_n(self, mock_data_epi): + free = SimPriors(**self._params()) + capped = SimPriors(**self._params(max_hill_n=4.0)) + # First seed whose uncapped draw exceeds the limit (the fixture has + # only a few genotypes). + for seed in range(50): + _, p_free = simulate("theta", mock_data_epi, free, jax.random.PRNGKey(seed)) + if np.asarray(p_free.hill_n).max() > 4.0: + break + else: + pytest.fail("no draw exceeded the limit") + _, p_cap = simulate("theta", mock_data_epi, capped, jax.random.PRNGKey(seed)) + n_free = np.asarray(p_free.hill_n) + n_cap = np.asarray(p_cap.hill_n) + assert n_cap.max() <= 4.0 + 1e-5 + np.testing.assert_allclose(n_cap, np.minimum(n_free, 4.0), rtol=1e-6) + + def test_limit_applies_to_theta(self, mock_data_epi): + """theta_gc is computed from the capped Hill coefficient.""" + data = mock_data_epi._replace(scatter_theta=0) + capped = SimPriors(**self._params(max_hill_n=4.0)) + theta_gc, theta_param = simulate("theta", data, capped, jax.random.PRNGKey(5)) + np.testing.assert_allclose(np.asarray(run_model(theta_param, data))[0], + theta_gc.T, rtol=1e-5, atol=1e-6) + + def test_nonpositive_limit_raises(self, mock_data_epi): + with pytest.raises(ValueError, match="max_hill_n"): + simulate("theta", mock_data_epi, SimPriors(**self._params(max_hill_n=0.0)), + jax.random.PRNGKey(0)) + + @pytest.fixture def mock_data_no_mutation(): """1 genotype (wt only), 0 mutations, 0 pairs — the stratified pool case.""" From f76254d8b5cb727231ed4d1fe00132ff355e45c2 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 21:18:18 -0700 Subject: [PATCH 040/208] Record converged 3.5 re-run: mixture beats single under congression With the updated optimizer, binding noise 0.025 and a Hill-coefficient limit of 4, all 13 baseline and profile runs converged with no blow-ups. At lambda 1 the mixture beats single on bulk theta (RMSE 0.104 vs 0.125, 0.074 vs 0.084), dk_geno (~3x lower error), coverage (0.81-0.87 vs 0.58-0.77) and fit; paired, the gain is in bulk genotypes without binding data. Lambda is recovered roughly (0.94, 0.80 at a true 1.0) with overconfident intervals, the lambda profile is flat within loss noise over 0.6-1.4, and theta error changes little across it. At a true lambda 0 the mixture finds ~0.12 yet still fits theta better than single. Also ignores renamed old grid directories (*.old/). Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 8 +++ .../congression-calibration/.gitignore | 2 + .../studies/congression-calibration/README.md | 56 +++++++++++++++++++ 3 files changed, 66 insertions(+) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index b1e78394..73d62d00 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -657,6 +657,14 @@ checked with `tfs-summarize-calibration`. and a simulated Hill-coefficient limit of 4 (new `theta_sim_priors.max_hill_n`); the optimizer was updated. Lowering the model's default binding weight is planned as its own step (user). + Re-run (2026-09-26): all 13 runs converged, no blow-ups. At lambda 1 + the mixture beats `single` (bulk theta RMSE 0.104 vs 0.125 and 0.074 + vs 0.084; dk_geno error ~3x lower; coverage 0.81-0.87 vs 0.58-0.77), + with the gain in bulk genotypes without binding data. Lambda is + recovered roughly (0.94, 0.80 at a true 1.0) with overconfident + intervals; at a true 0 the mixture finds ~0.12 yet still fits theta + better than `single`. The lambda profile is flat within loss noise + over 0.6-1.4, and theta error changes little across it. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index df0652e4..bab36cb9 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -13,3 +13,5 @@ grid_summary.json inputs/ congression_calibration_baseline/ congression_calibration_profile/ +# Renamed copies of old grid runs +*.old/ diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index a46bceba..fe434cb1 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -525,3 +525,59 @@ The model's default binding weight (growth rows / binding rows) is also to be lowered, but that is a change to the model for real fits; it is left for its own step. These grids run at `--binding_weight 1` regardless. +## Re-run with realistic data and the fixed optimizer (2026-09-26) + +`grid_baseline.yaml` and `grid_profile.yaml` again, with binding noise +0.025, `max_hill_n` 4 and the updated optimizer. **All 13 runs converged** +under the stop rule (40,000-48,000 steps), each ending at its best loss; no +blow-ups. `tfs-summarize-calibration` outputs: `calib/baseline_*`. + +Baseline (bulk theta and parameters; 95% intervals for lambda): + +| lambda, seed | fit | lambda | dk_geno RMSE | log_hill_K RMSE | bulk theta RMSE | bulk theta coverage | loss | +|---|---|---|---|---|---|---|---| +| 0, 1 | `single` | | 0.0023 | 0.72 | 0.108 | 0.79 | 35,874 | +| 0, 1 | mixture | 0.131 (0.128-0.134) | 0.0015 | 0.67 | 0.089 | 0.82 | 35,153 | +| 0, 2 | `single` | | 0.0024 | 0.72 | 0.097 | 0.80 | 32,480 | +| 0, 2 | mixture | 0.113 (0.110-0.116) | 0.0013 | 0.71 | 0.079 | 0.86 | 32,116 | +| 1, 1 | `single` | | 0.0092 | 0.94 | 0.125 | 0.58 | 37,837 | +| 1, 1 | mixture | 0.942 (0.936-0.948) | 0.0032 | 0.75 | 0.104 | 0.81 | 36,285 | +| 1, 2 | `single` | | 0.0080 | 0.65 | 0.084 | 0.77 | 29,437 | +| 1, 2 | mixture | 0.803 (0.796-0.810) | 0.0024 | 0.61 | 0.074 | 0.87 | 28,182 | + +Paired against `single` (`calib/baseline_paired_summary.csv`, theta, mean +of 2 seeds), the gain is in bulk genotypes without binding data: + +| lambda | stratum | delta theta RMSE | delta 95% coverage | +|---|---|---|---| +| 0 | bulk, no binding | -0.018 | +0.05 | +| 0 | with binding / spike / mixed | ~0 | small | +| 1 | bulk, no binding | -0.015 | +0.16 | +| 1 | with binding / spike / mixed | ~0 | small | + +Profile (mixture, lambda fixed, lambda-1 seed-1 data): + +| lambda held at | 0.6 | 0.8 | 1.0 | 1.2 | 1.4 | +|---|---|---|---|---|---| +| loss | 36,319 | 35,812 | 36,294 | 35,870 | 36,013 | +| bulk theta RMSE | 0.111 | 0.107 | 0.105 | 0.102 | 0.102 | +| dk_geno RMSE | 0.0044 | 0.0034 | 0.0032 | 0.0041 | 0.0052 | + +- **The mixture now beats `single` where congression is real** (lambda 1): + bulk theta RMSE 0.104 vs 0.125 and 0.074 vs 0.084, dk_geno error cut + ~3x, coverage 0.81-0.87 vs 0.58-0.77, and a better fit. The earlier + "mixture worse on theta" results came from unconverged or unstable fits. +- **Lambda is recovered roughly, with overconfident intervals:** 0.94 and + 0.80 at a true 1.0; intervals ~+/-0.007 exclude the truth. At a true 0 + the mixture still finds 0.11-0.13, yet fits better than `single` on + theta, dk_geno and coverage there too, so its congressed classes absorb + something real in the data (the read-count floor is the leading + candidate). +- **The profile is flat within the loss noise** (differences of a few + hundred, not monotone): these data barely pin lambda between 0.6 and 1.4. + Theta error changes little across that range (0.111 to 0.102), and + dk_geno error is lowest near the true lambda. So a misestimated lambda + costs little in theta. +- Coverage remains below nominal for both fits (0.78-0.87), the mixture's + less so. + From 811018cc005e8e80ce173b45d0a454d53df82d04 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 25 Sep 2026 21:19:41 -0700 Subject: [PATCH 041/208] Set up the 3.5 confirming round; record open items (step 3.5) Records the converged re-run (the mixture beats single under congression, with the gain in bulk genotypes without binding data) and the open items to carry forward: lambda's overconfident intervals and flat profile, what the congressed classes absorb at lambda 0, theta coverage below nominal, and the binding weight and binding SDs. Adds grid_measured.yaml (lambda 0.357 with the matched prior x single / mixture x seeds 1-3, 6 runs) and grid_seed3.yaml (a third seed at lambda 0 and 1, 4 runs). Next is step 4, the theta rule. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 14 ++++++ .../congression-calibration/.gitignore | 2 + .../grid_measured.yaml | 50 +++++++++++++++++++ .../congression-calibration/grid_seed3.yaml | 48 ++++++++++++++++++ 4 files changed, 114 insertions(+) create mode 100644 planning/studies/congression-calibration/grid_measured.yaml create mode 100644 planning/studies/congression-calibration/grid_seed3.yaml diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 73d62d00..2cc0c365 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -665,6 +665,20 @@ checked with `tfs-summarize-calibration`. intervals; at a true 0 the mixture finds ~0.12 yet still fits theta better than `single`. The lambda profile is flat within loss noise over 0.6-1.4, and theta error changes little across it. + Closing (user, 2026-09-26): a confirming round (`grid_measured.yaml`: + lambda 0.357 x seeds 1-3; `grid_seed3.yaml`: a third seed at lambda 0 + and 1), then step 4. Open items, recorded rather than pursued now: + - Lambda's intervals are overconfident and its profile is flat over + 0.6-1.4 in these data; this supports setting lambda from the + measurement (a tight prior or a constant) rather than learning it. + - At a true lambda 0 the mixture finds ~0.12 and still fits theta + better than `single`: its congressed classes absorb something in the + data (the read-count floor is the leading candidate; censoring is + the planned fix). + - Theta 95% coverage is 0.78-0.87 for both models. + - The model's default binding weight (growth rows / binding rows) is + to be lowered, and the binding SDs rethought (raw anisotropy points, + an assay-to-cell term); its own step. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index bab36cb9..9a7067dc 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -15,3 +15,5 @@ congression_calibration_baseline/ congression_calibration_profile/ # Renamed copies of old grid runs *.old/ +congression_calibration_measured/ +congression_calibration_seed3/ diff --git a/planning/studies/congression-calibration/grid_measured.yaml b/planning/studies/congression-calibration/grid_measured.yaml new file mode 100644 index 00000000..5af577aa --- /dev/null +++ b/planning/studies/congression-calibration/grid_measured.yaml @@ -0,0 +1,50 @@ +# --------------------------------------------------------------------------- +# Measured-regime confirmation (congression calibration, step 3.5) +# +# tfs-setup-sim-grid grid_measured.yaml --out_prefix congression_calibration_measured +# for d in congression_calibration_measured/run_*/; do (cd "$d" && sbatch run.srun); done +# +# The real library's lambda (0.357), with the matched prior (0.357 +/- 0.05, +# as on real data), {single, mixture} x seeds 1-3. Same settings as +# grid_baseline.yaml. 6 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.357 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + - seed: 3 + + +template: + + - name: fit + variants: + - fit: single + lam_prior: "off" + - fit: mixture + lam_prior: matched + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 diff --git a/planning/studies/congression-calibration/grid_seed3.yaml b/planning/studies/congression-calibration/grid_seed3.yaml new file mode 100644 index 00000000..8214bda5 --- /dev/null +++ b/planning/studies/congression-calibration/grid_seed3.yaml @@ -0,0 +1,48 @@ +# --------------------------------------------------------------------------- +# Third seed for grid_baseline.yaml (congression calibration, step 3.5) +# +# tfs-setup-sim-grid grid_seed3.yaml --out_prefix congression_calibration_seed3 +# for d in congression_calibration_seed3/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Lambda 0 and 1.0 x {single, mixture}, seed 3; otherwise identical to +# grid_baseline.yaml. 4 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__seed{{ seed }}__{{ fit }}_{{ lam_prior }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + - transformation_poisson_lambda: 1.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 3 + + +template: + + - name: fit + variants: + - fit: single + lam_prior: "off" + - fit: mixture + lam_prior: matched + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 From cdfd5dbd26cfe4899c120e4ddb0a7246d9716dce Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 07:55:28 -0700 Subject: [PATCH 042/208] Build a congressed cell's theta by partition function (step 4) A co-transformed cell's theta came from its highest-theta plasmid. The bench result rules out weak-binder dominance but cannot separate max from mixing, and the plan's physics is a partition function over the repressor mixture, so the default becomes the homodimer rule over equal plasmid shares: logit(theta_cell) = log sum_g x_g exp(l_g), x_g = 1/M. heterodimer (2 log sum_g x_g exp(l_g / 2)) and max remain selectable, in the simulator (simulate/cell_rules.py) and the fit (mixture.cell_classes, a log-sum-exp over valid slots). Breaking: - congression_theta_rule defaults to homodimer in the simulator and in a new ModelOrchestrator setting (written to the config; carried as a static GrowthData field; tfs-configure-model --congression_theta_rule). - The partition-function rules require TF activity 1: the simulator raises otherwise, and ModelOrchestrator refuses a mixture with these rules and a learned activity. The default activity component becomes fixed (was horseshoe_geno) in ModelOrchestrator and tfs-configure-model; the first paper holds A = 1 for lac, and the real treatment waits for activators. - Example simulate configs switch to homodimer. The calibration study keeps max; its run.srun now fits with the simulated rule (fit_theta_rule overrides it). Verified: new test_cell_rules.py (hand calculations, log 2 / log 4 losses, single-plasmid identity, ordering, activity check, masking, NaN); the mixture's reference test covers all three rules and matches the simulator; model and orchestrator tests for the defaults, batching and refusals; tests relying on the old defaults updated with coverage kept. tests/tfscreen --runslow 4933 passed; smoke 42 passed. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 20 +++ CLAUDE.md | 6 +- .../simulate-and-analyze/simulate_config.yaml | 14 +- .../simulate-empirical/simulate_config.yaml | 2 +- examples/simulate/simulate_config.yaml | 14 +- planning/congression-physics-plan.md | 26 ++++ .../studies/congression-calibration/README.md | 9 ++ .../studies/congression-calibration/run.srun | 15 ++- src/tfscreen/simulate/cell_rules.py | 73 +++++++++- src/tfscreen/simulate/selection_experiment.py | 4 +- src/tfscreen/tfmodel/data_class.py | 5 + .../components/transformation/mixture.py | 61 +++++++-- src/tfscreen/tfmodel/model_orchestrator.py | 43 +++++- .../tfmodel/scripts/configure_model_cli.py | 14 +- tests/smoke-tests/test_model_smoke.py | 9 +- tests/smoke-tests/test_posteriors_smoke.py | 5 +- tests/tfscreen/simulate/test_cell_rules.py | 126 ++++++++++++++++++ .../simulate/test_selection_experiment.py | 4 +- .../components/transformation/test_mixture.py | 70 +++++++++- .../tfmodel/generative/test_mixture_model.py | 40 ++++++ .../tfmodel/test_model_orchestrator.py | 27 +++- tests/tfscreen/tfmodel/test_model_stats.py | 8 +- 22 files changed, 535 insertions(+), 60 deletions(-) create mode 100644 tests/tfscreen/simulate/test_cell_rules.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 10f7a904..6a91a7ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -124,6 +124,26 @@ fall into two kinds: ### Changed +- **Breaking: a congressed cell's theta now follows a partition function + (`congression_theta_rule: homodimer`), and TF activity defaults to 1.** + The congression mixture (`transformation: mixture`) and the simulator + took a co-transformed cell's theta from its highest-theta plasmid. Both + now default to the homodimer partition function over equal plasmid + shares, `logit(theta_cell) = log sum_g x_g exp(l_g)` with `x_g = 1/M`; + `heterodimer` (`2 log sum_g x_g exp(l_g / 2)`) and the old `max` remain + selectable. The fit's rule is a new `ModelOrchestrator` setting + (`congression_theta_rule`, written to the config) and + `tfs-configure-model --congression_theta_rule`; the simulator key keeps + its name. The partition-function rules mix the variants' occupancies and + require TF activity 1: the simulator refuses otherwise, and + `ModelOrchestrator` refuses a mixture model with these rules and a + learned activity component. To match, the default activity component is + now `fixed` (was `horseshoe_geno`) in `ModelOrchestrator` and + `tfs-configure-model`. Configs that set neither key change behavior; + set `congression_theta_rule: max` and/or `activity_model: horseshoe_geno` + to keep the old ones. The example simulate configs now use `homodimer`. + See `planning/congression-physics-plan.md`, step 4. + - **Gradient clipping is off by default in `tfs-fit-model` and `tfs-prefit-calibration` (SVI, MAP, pre-MAP, prefit).** Every congression-calibration fit on the step-3.5 grids ran to `max_num_epochs`, diff --git a/CLAUDE.md b/CLAUDE.md index e4274d38..61f17192 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -111,7 +111,7 @@ The hierarchical Bayesian inference engine. Key files: - **`generative/model.py`** — Numpyro probabilistic model definition. The generative model is: `ln_cfu = ln_cfu0 + (k_pre + dk_geno + m_pre·A·θ)·t_pre + (k_sel + dk_geno + m_sel·A·θ)·t_sel` where θ = operator occupancy, A = per-genotype TF activity, dk_geno = pleiotropic growth effect. - With `transformation: mixture` each genotype's cells are split into classes (clean, plus K congressed classes built from fixed co-resident sets) with cell-level θ/A/dk_geno; every class is grown through the same pipeline on a leading class axis and the classes are mixed as `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`. The transformation component's `cell_classes(focal, population, params, data)` builds the classes (`single`: one class); `NEEDS_POPULATION` makes `jax_model` supply library-ordered θ/activity/dk_geno (`return_population=True`, or `GrowthData.external_*_population` in prediction). + With `transformation: mixture` each genotype's cells are split into classes (clean, plus K congressed classes built from fixed co-resident sets) with cell-level θ/A/dk_geno (θ by `congression_theta_rule`, default the homodimer partition function over equal plasmid shares; dk_geno by dilution); every class is grown through the same pipeline on a leading class axis and the classes are mixed as `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`. The transformation component's `cell_classes(focal, population, params, data)` builds the classes (`single`: one class); `NEEDS_POPULATION` makes `jax_model` supply library-ordered θ/activity/dk_geno (`return_population=True`, or `GrowthData.external_*_population` in prediction). - **`model_orchestrator.py`** — `ModelOrchestrator`: top-level class orchestrating data loading, inference, and prediction. @@ -203,7 +203,7 @@ Flow: `genetics.library_composition_table(library_config)` (`genetics/library_de A library-derived spiked genotype that has no growth data is **reported, not fatal** (spikes can drop out of a real dataset), unlike the hand-supplied `spiked_genotypes` list, which still raises. -`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) and is the `f_g` of the `mixture` transformation: a genotype's congressed fraction is `f_g (1 - P(M = 1))`, with `M` ~ zero-truncated Poisson(λ) plasmids per transformant (a cell's abundance is shared among its plasmids, so abundance by co-resident count n is `P(M = n + 1)`; λ is the simulator's `transformation_poisson_lambda`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the old binary `congression_mask` is gone. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. +`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) and is the `f_g` of the `mixture` transformation: a genotype's congressed fraction is `f_g (1 - P(M = 1))`, with `M` ~ zero-truncated Poisson(λ) plasmids per transformant (a cell's abundance is shared among its plasmids, so abundance by co-resident count n is `P(M = n + 1)`; λ is the simulator's `transformation_poisson_lambda`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the old binary `congression_mask` is gone. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. `congression_theta_rule` (default `homodimer`; also `heterodimer`, `max`; `tfs-configure-model --congression_theta_rule`) is a third such setting, carried into the model as the static `GrowthData.congression_theta_rule`; the partition-function rules require `activity='fixed'` (the default activity component; the orchestrator refuses a mixture with these rules and a learned activity). ### Pre-fit model accounting (`tfmodel/model_stats.py`) @@ -315,7 +315,7 @@ These two dicts are the mechanism by which binding data is "pinned" into the gro | `simulate/sim_data_class.py` | `SimData` container and `build_sim_data` factory | | `simulate/build_sample_dataframes.py` | Constructs sample/timepoint DataFrames from simulation config | | `simulate/selection_experiment.py` | Models the selection experiment (transformation, growth, sequencing). A co-transformed cell splits its abundance among its plasmids (`_plasmid_shares`) and has one growth rate built from cell-level physics (`_cell_kt`); `_check_cell_components` fails fast if the phenotype's `k_pre`/`k_sel` can't be rebuilt from its theta/activity/dk_geno | -| `simulate/cell_rules.py` | Pluggable rules combining a co-transformed cell's plasmids: `THETA_RULES` (`max`: highest-θ plasmid sets θ and activity) and `DK_RULES` (`dilution`: share-weighted dk_geno), chosen by `congression_theta_rule`/`congression_dk_rule`. Growth is then `thermo_to_growth.growth_rate_one_condition`, the same formula used per genotype. Never combine whole growth rates across plasmids | +| `simulate/cell_rules.py` | Pluggable rules combining a co-transformed cell's plasmids: `THETA_RULES` (`homodimer`, the default: `logit θ_cell = log Σ x_g exp(l_g)` over equal shares; `heterodimer`: `2 log Σ x_g exp(l_g/2)`; both require activity 1 and raise otherwise; `max`: highest-θ plasmid sets θ and activity) and `DK_RULES` (`dilution`: share-weighted dk_geno), chosen by `congression_theta_rule`/`congression_dk_rule`. The fit's mixture uses the same rules (`mixture.cell_classes`, `THETA_EPS` shared). Growth is then `thermo_to_growth.growth_rate_one_condition`, the same formula used per genotype. Never combine whole growth rates across plasmids | | `simulate/scripts/simulate_cli.py` | `tfs-simulate` CLI entry point; runs `library_prediction` + `selection_experiment` across replicates and writes all output CSVs, delegating the optional `binding_data`/`presplit_data`/`base_growth_data` blocks to their respective generator modules above | | `simulate/scripts/report_cfu0_cli.py` | `tfs-report-cfu0` CLI entry point; reuses `library_prediction` + `selection_experiment` (same pattern as `simulate_cli.py`) across `num_replicates` to report mean `ln_cfu_0` and surviving-genotype counts by class (`wt`/`spiked`/`single`/`double`), for tuning `transform_sizes`/`library_mixture`/`cfu0` against observed real-library values | | `simulate/run_simulation.py` | Simpler, non-CLI orchestrator (`run_simulation`); does not support `binding_data`/`presplit_data`/`base_growth_data` | diff --git a/examples/simulate-and-analyze/simulate_config.yaml b/examples/simulate-and-analyze/simulate_config.yaml index f54d5e63..abd96b74 100644 --- a/examples/simulate-and-analyze/simulate_config.yaml +++ b/examples/simulate-and-analyze/simulate_config.yaml @@ -180,11 +180,15 @@ lib_assembly_skew_sigma: 1.25 transformation_poisson_lambda: 0 # How a cell carrying several plasmids gets its growth rate. The cell's theta -# and TF activity come from congression_theta_rule ('max': the highest-theta -# plasmid sets both, at each condition); its dk_geno from congression_dk_rule -# ('dilution': share-weighted mean). Growth is then computed once from these -# cell-level values. Both keys are optional; these are the defaults. -congression_theta_rule: max +# comes from congression_theta_rule, at each condition: 'homodimer' +# (logit theta_cell = log of the share-weighted mean of the plasmids' +# theta odds), 'heterodimer' (closer to the mean logit) or 'max' (the +# highest-theta plasmid sets theta and TF activity). 'homodimer' and +# 'heterodimer' need activity 1 (activity_mut_scale 0). Its dk_geno comes +# from congression_dk_rule ('dilution': share-weighted mean). Growth is then +# computed once from these cell-level values. Both keys are optional; these +# are the defaults. +congression_theta_rule: homodimer congression_dk_rule: dilution # Colony-forming units per mL at the start of pre-growth. diff --git a/examples/simulate-empirical/simulate_config.yaml b/examples/simulate-empirical/simulate_config.yaml index 3a411118..5203be71 100644 --- a/examples/simulate-empirical/simulate_config.yaml +++ b/examples/simulate-empirical/simulate_config.yaml @@ -144,7 +144,7 @@ lib_assembly_skew_sigma: 1.25 # attenuation your empirical distribution is (currently) uncorrected for, so # keep it matched to the real library. transformation_poisson_lambda: 1.5 -congression_theta_rule: max +congression_theta_rule: homodimer # needs activity 1 (the empirical path forces it) congression_dk_rule: dilution cfu0: 65_000_000.0 diff --git a/examples/simulate/simulate_config.yaml b/examples/simulate/simulate_config.yaml index 89852769..42da8aa1 100644 --- a/examples/simulate/simulate_config.yaml +++ b/examples/simulate/simulate_config.yaml @@ -223,11 +223,15 @@ lib_assembly_skew_sigma: 1.25 transformation_poisson_lambda: 1.5 # How a cell carrying several plasmids gets its growth rate. The cell's theta -# and TF activity come from congression_theta_rule ('max': the highest-theta -# plasmid sets both, at each condition); its dk_geno from congression_dk_rule -# ('dilution': share-weighted mean). Growth is then computed once from these -# cell-level values. Both keys are optional; these are the defaults. -congression_theta_rule: max +# comes from congression_theta_rule, at each condition: 'homodimer' +# (logit theta_cell = log of the share-weighted mean of the plasmids' +# theta odds), 'heterodimer' (closer to the mean logit) or 'max' (the +# highest-theta plasmid sets theta and TF activity). 'homodimer' and +# 'heterodimer' need activity 1 (activity_mut_scale 0). Its dk_geno comes +# from congression_dk_rule ('dilution': share-weighted mean). Growth is then +# computed once from these cell-level values. Both keys are optional; these +# are the defaults. +congression_theta_rule: homodimer congression_dk_rule: dilution # Colony-forming units per mL at the start of pre-growth. diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 2cc0c365..3f69a15b 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -681,5 +681,31 @@ checked with `tfs-summarize-calibration`. an assay-to-cell term); its own step. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. + Design agreed 2026-09-26 (user): + - Rules `max` (kept), `homodimer` (cell logit `log sum_g x_g exp(l_g)`) + and `heterodimer` (`2 log sum_g x_g exp(l_g / 2)`), with `l_g` = logit + theta_g per titrant concentration. The bench result rules out + weak-binder dominance but cannot separate `max` from the + partition-function rules; **default `homodimer`**, as the plan said, + until native mass spec says otherwise. + - **Shares are equal:** `x_g = 1/M` for a cell with M plasmids. Library + frequency sets which plasmids share a cell (the co-resident draw), not + their shares once together. + - **Activity is held at 1.** The partition-function rules require it, on + both sides (the simulator and the fit refuse otherwise), and the + default activity component becomes `fixed` (was `horseshoe_geno`). + Physically, activity would scale a variant's share of active repressor + (cell odds `sum_g x_g A_g z_g`), which disagrees with the clean class's + `A * theta` whenever A != 1. The first paper holds A = 1 for the lac + repressor; the real treatment waits for activators. + - Fit: `mixture.cell_classes` takes a log-sum-exp over the focal plasmid + and its valid co-resident slots in place of the argmax. The rule is an + orchestrator setting (`congression_theta_rule`, default `homodimer`) + written to the config and carried as a static `GrowthData` field; + `tfs-configure-model --congression_theta_rule`. Simulator: new rules in + `simulate/cell_rules.py`; `congression_theta_rule` defaults to + `homodimer`. + - Validation: a cross-rule grid (`max` vs `homodimer`, simulated with one + and fit with the other) at lambda 0.357 and 1. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both simulator and fit. diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index fe434cb1..099252d1 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -581,3 +581,12 @@ Profile (mixture, lambda fixed, lambda-1 seed-1 data): - Coverage remains below nominal for both fits (0.78-0.87), the mixture's less so. +## Step 4 changes that affect this study (2026-09-26) + +The fit's default congression theta rule is now `homodimer` and the default +activity `fixed`. `simulate_config.yaml` keeps `congression_theta_rule: max` +so the recorded grids stay reproducible, and `run.srun` now passes the fit +the rule the simulation used (`fit_theta_rule` overrides it, for cross-rule +grids). The confirming round (`grid_measured.yaml`, `grid_seed3.yaml`) was +set up before this change and runs `max` on both sides. + diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 729d8ade..58297531 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -37,12 +37,18 @@ K_SCALE_CEILING="{{ k_scale_ceiling | default('') }}" ANALYSIS_METHOD="{{ analysis_method | default('svi') }}" # Lambda value for lam_prior "fixed" (grid_profile.yaml). LAM_FIXED="{{ lam_fixed | default('') }}" +# Congression theta rule for the fit (mixture only). Empty = the rule the +# simulation used (tfs_sim_config.yaml's congression_theta_rule); set it to +# fit with a different rule (cross-rule grids). +FIT_THETA_RULE="{{ fit_theta_rule | default('') }}" # The simulated lambda and the seed live in tfs_sim_config.yaml. -read -r SEED LAM_SIM < <(python -c " +read -r SEED LAM_SIM SIM_THETA_RULE < <(python -c " import yaml cf = yaml.safe_load(open('tfs_sim_config.yaml')) -print(cf['seed'], cf.get('transformation_poisson_lambda') or 0.0)") +print(cf['seed'], cf.get('transformation_poisson_lambda') or 0.0, + cf.get('congression_theta_rule') or 'homodimer')") +FIT_THETA_RULE=${FIT_THETA_RULE:-${SIM_THETA_RULE}} # --------------------------------------------------------------------------- # 1. Simulate @@ -81,7 +87,8 @@ else LAM_MEAN=${LAM_MEASURED} fi TRANSFORMATION_ARGS=(--transformation_model mixture - --transformation_lambda "${LAM_MEAN}" "${LAM_PRIOR_SD}") + --transformation_lambda "${LAM_MEAN}" "${LAM_PRIOR_SD}" + --congression_theta_rule "${FIT_THETA_RULE}") fi BINDING_WEIGHT_ARGS=() @@ -89,7 +96,7 @@ if [[ -n "${BINDING_WEIGHT}" ]]; then BINDING_WEIGHT_ARGS=(--binding_weight "${BINDING_WEIGHT}") fi -echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR})" +echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR}, theta rule ${FIT_THETA_RULE})" tfs-configure-model \ tfs_sim_binding.csv \ --growth_df "${GROWTH_CSV}" \ diff --git a/src/tfscreen/simulate/cell_rules.py b/src/tfscreen/simulate/cell_rules.py index 0d2b5a1e..c4f0eb80 100644 --- a/src/tfscreen/simulate/cell_rules.py +++ b/src/tfscreen/simulate/cell_rules.py @@ -20,7 +20,10 @@ - returns two ``(num_cells, num_conditions)`` arrays. TF activity multiplies theta in the growth model, so it is combined by the -theta rule: it comes from whatever sets the cell's theta. +theta rule. Under ``max`` it comes from the plasmid that sets the cell's +theta. The partition-function rules (``homodimer``, ``heterodimer``) mix the +variants' occupancies and require activity 1 (the lac repressor is taken as +fully active; see the congression plan, step 4). dk rules -------- @@ -30,10 +33,15 @@ - returns ``(num_cells,)``. See ``planning/congression-physics-plan.md`` for the physics and the planned -rules (partition-function theta, soft-min dk). +rules (soft-min dk). """ import numpy as np +from scipy.special import logsumexp + +# Theta is clipped to [THETA_EPS, 1 - THETA_EPS] before taking its logit in +# the partition-function rules (the fit uses the same value). +THETA_EPS = 1e-6 def theta_max(theta, activity, shares): @@ -70,6 +78,65 @@ def theta_max(theta, activity, shares): return theta_cell, activity_cell +def _theta_partition(theta, activity, shares, power): + """ + Partition-function cell theta, in logit space. + + ``logit(theta_cell) = (1 / power) * log sum_g x_g exp(power * l_g)``, + with ``l_g = logit(theta_g)`` and ``x_g`` the slot's share. ``power`` 1 + is homodimers, 0.5 random heterodimers with additive half-site energies. + A cell with one plasmid keeps that plasmid's theta. Requires activity 1 + in every valid slot. Masked slots are ignored; a NaN theta in a valid + slot makes the cell's theta NaN. + """ + valid = shares > 0 + if np.any(np.abs(activity[valid] - 1.0) > 1e-9): + raise ValueError( + "The partition-function congression theta rules ('homodimer', " + "'heterodimer') require TF activity 1 for every genotype (set " + "activity_mut_scale to 0 and activity_wt to 1), or use " + "congression_theta_rule 'max'. See the congression physics plan, " + "step 4.") + + clipped = np.clip(theta, THETA_EPS, 1.0 - THETA_EPS) + logit = np.log(clipped) - np.log1p(-clipped) + valid3 = valid[:, :, np.newaxis] + logit = np.where(valid3, logit, 0.0) + weights = np.broadcast_to(shares[:, :, np.newaxis], logit.shape) + + cell_logit = logsumexp(power * logit, axis=1, b=weights) / power + theta_cell = 1.0 / (1.0 + np.exp(-cell_logit)) + + activity_cell = np.ones(theta_cell.shape) + return theta_cell, activity_cell + + +def theta_homodimer(theta, activity, shares): + """ + Homodimers only: the cell's odds are the share-weighted mean of its + variants' odds, ``logit(theta_cell) = log sum_g x_g exp(l_g)``. + + A soft maximum between the share-weighted mean logit and the max; a + strong binder in a 1:1 cell loses ``log 2`` logit units against the + ``max`` rule. Requires activity 1. Arguments and returns as in + :func:`theta_max`. + """ + return _theta_partition(theta, activity, shares, 1.0) + + +def theta_heterodimer(theta, activity, shares): + """ + Random heterodimers with additive half-site energies: + ``logit(theta_cell) = 2 log sum_g x_g exp(l_g / 2)``. + + Closer to the share-weighted mean logit than :func:`theta_homodimer`; + a strong binder in a 1:1 cell loses ``log 4``. Exact per titrant + concentration only if subunits bind ligand independently. Requires + activity 1. Arguments and returns as in :func:`theta_max`. + """ + return _theta_partition(theta, activity, shares, 0.5) + + def dk_dilution(dk_geno, shares): """ Share-weighted mean dk_geno (each variant's burden diluted by its share). @@ -93,6 +160,8 @@ def dk_dilution(dk_geno, shares): THETA_RULES = { "max": theta_max, + "homodimer": theta_homodimer, + "heterodimer": theta_heterodimer, } DK_RULES = { diff --git a/src/tfscreen/simulate/selection_experiment.py b/src/tfscreen/simulate/selection_experiment.py index 84debc30..3166d0bd 100644 --- a/src/tfscreen/simulate/selection_experiment.py +++ b/src/tfscreen/simulate/selection_experiment.py @@ -197,7 +197,7 @@ def _check_cf( "whole growth rates of a cell's plasmids, which let dk_geno decide " "which plasmid set the cell's growth. A co-transformed cell's " "growth is now built from cell-level theta and dk_geno: set " - "'congression_theta_rule' (default 'max') and " + "'congression_theta_rule' (default 'homodimer') and " "'congression_dk_rule' (default 'dilution') instead, or omit both " "for the defaults." ) @@ -243,7 +243,7 @@ def _check_cf( cf["library_selector"] = ["replicate", "library"] # --- Rules for combining a co-transformed cell's plasmids --- - for key, rules, default in (("congression_theta_rule", THETA_RULES, "max"), + for key, rules, default in (("congression_theta_rule", THETA_RULES, "homodimer"), ("congression_dk_rule", DK_RULES, "dilution")): if cf.get(key) is None: cf[key] = default diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index 351ae1a7..30433311 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -84,6 +84,11 @@ class GrowthData: coresident_idx: Any = field(default=None) coresident_n: Any = field(default=None) + # How a congressed cell's theta is built from its plasmids' thetas + # ("max", "homodimer", "heterodimer"; see transformation/mixture.py). + # Static: set by ModelOrchestrator from its congression_theta_rule. + congression_theta_rule: str = field(pytree_node=False, default="homodimer") + growth_shares_replicates: bool = field(pytree_node=False, default=False) # Optional mutation-decomposition matrices (set when using *_mut_decomp components). diff --git a/src/tfscreen/tfmodel/generative/components/transformation/mixture.py b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py index e304b14b..4867aeb2 100644 --- a/src/tfscreen/tfmodel/generative/components/transformation/mixture.py +++ b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py @@ -20,10 +20,18 @@ The congressed term ``E_S exp(G_{g,S}(t))`` over random co-resident sets S is evaluated by a fixed quadrature: K co-resident sets per genotype, drawn once by ``ModelOrchestrator._draw_coresident_sets`` (``data.coresident_idx``, -``data.coresident_n``) and stratified by co-resident count. A congressed cell -takes its theta and TF activity from the plasmid with the highest theta (at -each titrant concentration) and the share-weighted mean dk_geno of its -plasmids (dilution), matching ``simulate/cell_rules.py``. +``data.coresident_n``) and stratified by co-resident count. A congressed +cell's dk_geno is the share-weighted mean of its plasmids' (dilution). Its +theta follows ``data.congression_theta_rule``, per titrant concentration, +with ``l_g = logit(theta_g)`` and equal shares ``x_g = 1/M`` for a cell of M +plasmids: + +- ``homodimer`` (default): ``logit(theta_cell) = log sum_g x_g exp(l_g)``; +- ``heterodimer``: ``logit(theta_cell) = 2 log sum_g x_g exp(l_g / 2)``; +- ``max``: the highest-theta plasmid sets theta and TF activity. + +The homodimer and heterodimer rules require TF activity 1 (checked by +``ModelOrchestrator``). All three match ``simulate/cell_rules.py``. See ``planning/congression-physics-plan.md`` ("Fit design (step 3)") and ``planning/studies/congression-estimator/`` for why this estimator. @@ -44,6 +52,14 @@ ) +# Theta is clipped to [THETA_EPS, 1 - THETA_EPS] before its logit in the +# partition-function rules (same value as simulate/cell_rules.py). +THETA_EPS = 1e-6 + +# power p in logit(theta_cell) = (1/p) log sum_g x_g exp(p l_g) +_PARTITION_POWER = {"homodimer": 1.0, "heterodimer": 0.5} + + # The mixture's congressed cells draw co-residents' theta, activity and # dk_geno from the whole library, so jax_model must supply library-ordered # populations of all three (computed locally in training, or passed in as @@ -171,7 +187,7 @@ def cell_classes(focal, population, lam, data: GrowthData) -> CellClasses: valid = idx >= 0 safe = jnp.where(valid, idx, 0) - # --- theta and activity: the highest-theta plasmid sets both --------- + # --- theta and activity ----------------------------------------------- # Slots: the focal plasmid, then the set's co-residents. co_theta = theta_pop[..., safe] # (..., B, K, N) focal_theta = jnp.broadcast_to(theta[..., None, None], @@ -179,15 +195,34 @@ def cell_classes(focal, population, lam, data: GrowthData) -> CellClasses: slot_theta = jnp.concatenate([focal_theta, co_theta], axis=-1) slot_valid = jnp.concatenate( [jnp.ones(valid.shape[:-1] + (1,), dtype=bool), valid], axis=-1) - slot_theta = jnp.where(slot_valid, slot_theta, -jnp.inf) - best = jnp.argmax(slot_theta, axis=-1)[..., None] # (..., B, K, 1) - cell_theta = jnp.take_along_axis(slot_theta, best, axis=-1)[..., 0] - act_focal = jnp.broadcast_to(activity, theta.shape) - slot_act = jnp.concatenate( - [jnp.broadcast_to(act_focal[..., None, None], focal_theta.shape), - jnp.broadcast_to(activity_pop[safe], co_theta.shape)], axis=-1) - cell_act = jnp.take_along_axis(slot_act, best, axis=-1)[..., 0] + + rule = data.congression_theta_rule + if rule == "max": + # The highest-theta plasmid sets both theta and activity. + slot_theta = jnp.where(slot_valid, slot_theta, -jnp.inf) + best = jnp.argmax(slot_theta, axis=-1)[..., None] # (..., B, K, 1) + cell_theta = jnp.take_along_axis(slot_theta, best, axis=-1)[..., 0] + slot_act = jnp.concatenate( + [jnp.broadcast_to(act_focal[..., None, None], focal_theta.shape), + jnp.broadcast_to(activity_pop[safe], co_theta.shape)], axis=-1) + cell_act = jnp.take_along_axis(slot_act, best, axis=-1)[..., 0] + elif rule in _PARTITION_POWER: + # Partition function over equal shares: logit(theta_cell) = + # (1/p) log sum_g x_g exp(p l_g). Activity is 1 (orchestrator check). + power = _PARTITION_POWER[rule] + clipped = jnp.clip(slot_theta, THETA_EPS, 1.0 - THETA_EPS) + logit = jnp.log(clipped) - jnp.log1p(-clipped) + num_slots = jnp.sum(slot_valid, axis=-1, keepdims=True) + log_share = jnp.where(slot_valid, -jnp.log(num_slots.astype(float)), + -jnp.inf) + cell_logit = jax.scipy.special.logsumexp( + log_share + power * jnp.where(slot_valid, logit, 0.0), + axis=-1) / power + cell_theta = jax.nn.sigmoid(cell_logit) + cell_act = jnp.broadcast_to(act_focal[..., None], cell_theta.shape) + else: + raise ValueError(f"unknown congression_theta_rule {rule!r}") # --- dk_geno: share-weighted mean (dilution) -------------------------- co_dk = jnp.where(valid, dk_pop[safe], 0.0) # (B, K, N) diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index cc605793..dbd30384 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -694,6 +694,9 @@ def _setup_batching(growth_genotypes, # Transformation components that were removed or renamed, with the reason. # Refused by name so an old config fails loudly instead of silently meaning # something new. +# Rules for a congressed cell's theta (transformation/mixture.py). +_CONGRESSION_THETA_RULES = ("homodimer", "heterodimer", "max") + _RETIRED_TRANSFORMATIONS = { "empirical": ( "transformation 'empirical' has been replaced by 'mixture'. The old " @@ -762,8 +765,9 @@ class ModelOrchestrator: Model name for genotype-specific death rate. Allowed values are 'hierarchical' (default) or 'fixed'. activity : str, optional - Model name for genotype activity. Allowed values are "horseshoe" (default), - "hierarchical", or "fixed". + Model name for genotype activity: "fixed" (default; activity 1 for + every genotype), "hierarchical_geno", "horseshoe_geno", + "hierarchical_mut" or "horseshoe_mut". theta : str, optional Model name for theta calculation (e.g., "hill"). transformation : str, optional @@ -805,6 +809,13 @@ class ModelOrchestrator: congression_seed : int, optional Seed for drawing the co-resident sets (default 0). Recorded in the config, so a refit reproduces the same draws. + congression_theta_rule : str, optional + How the congression mixture builds a congressed cell's theta from its + plasmids' thetas: ``"homodimer"`` (default; ``logit theta_cell = log + sum_g x_g exp(l_g)``), ``"heterodimer"`` (``2 log sum_g x_g exp(l_g / + 2)``) or ``"max"`` (the highest-theta plasmid sets theta and + activity). The homodimer and heterodimer rules require + ``activity='fixed'`` (activity 1). Attributes ---------- @@ -832,7 +843,7 @@ def __init__(self, ln_cfu0="hierarchical", dk_geno="hierarchical_geno", dk_geno_pins_file=None, - activity="horseshoe_geno", + activity="fixed", theta="hill_geno", transformation="single", transformation_lambda=None, @@ -850,7 +861,8 @@ def __init__(self, presplit_df=None, base_growth_df=None, congression_sets=(12, 3, 1), - congression_seed=0): + congression_seed=0, + congression_theta_rule="homodimer"): self._ln_cfu_df = growth_df self._binding_df = binding_df @@ -884,10 +896,29 @@ def __init__(self, self._binding_weight = binding_weight self._congression_sets = _check_congression_sets(congression_sets) self._congression_seed = int(congression_seed) + self._congression_theta_rule = congression_theta_rule if self._transformation in _RETIRED_TRANSFORMATIONS: raise ValueError(_RETIRED_TRANSFORMATIONS[self._transformation]) + if self._congression_theta_rule not in _CONGRESSION_THETA_RULES: + raise ValueError( + f"congression_theta_rule must be one of " + f"{list(_CONGRESSION_THETA_RULES)}; got " + f"{self._congression_theta_rule!r}." + ) + if (self._transformation == "mixture" + and self._congression_theta_rule != "max" + and self._activity != "fixed"): + raise ValueError( + f"congression_theta_rule={self._congression_theta_rule!r} " + f"mixes the occupancies of a cell's variants and requires TF " + f"activity 1 (activity='fixed'); got " + f"activity={self._activity!r}. Use activity='fixed', or " + f"congression_theta_rule='max'. See the congression physics " + f"plan, step 4." + ) + if self._library_file is not None: if self._spiked_genotypes is not None: raise ValueError( @@ -1073,7 +1104,8 @@ def _initialize_data(self): "ln_cfu0_library_masks":jnp.array(_library_masks,dtype=bool), "bulk_fraction":jnp.array(bulk_fraction,dtype=float), "coresident_idx":jnp.array(coresident_idx,dtype=jnp.int32), - "coresident_n":jnp.array(coresident_n,dtype=jnp.int32)} + "coresident_n":jnp.array(coresident_n,dtype=jnp.int32), + "congression_theta_rule":self._congression_theta_rule} # Grab the titrant concentration and log_titrant_conc (1D array from # the tensor labels along dimension 6) @@ -2049,4 +2081,5 @@ def settings(self): "base_growth_df": getattr(self, "_base_growth_df", None), "congression_sets": list(self._congression_sets), "congression_seed": self._congression_seed, + "congression_theta_rule": self._congression_theta_rule, } diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index be712f08..a39059a4 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -130,10 +130,11 @@ def configure_model(binding_df, growth_transition_model="instant", ln_cfu0_model="hierarchical", dk_geno_model="hierarchical_geno", - activity_model="horseshoe_geno", + activity_model="fixed", theta_model="hill_geno", transformation_model="single", transformation_lambda=None, + congression_theta_rule="homodimer", theta_rescale_model="passthrough", theta_growth_noise_model="zero", theta_binding_noise_model="zero", @@ -205,8 +206,9 @@ def configure_model(binding_df, activity_model : str, optional Model to use to describe activity, a scalar multiplied against occupancy that defines how strongly a genotype alters transcription - given its occupancy. Allowed values are 'fixed', 'hierarchical_geno', - 'horseshoe_geno' (default), 'hierarchical_mut', or 'horseshoe_mut'. + given its occupancy. Allowed values are 'fixed' (default; activity 1 + for every genotype), 'hierarchical_geno', 'horseshoe_geno', + 'hierarchical_mut', or 'horseshoe_mut'. theta_model : str, optional Model to use to describe theta, the fractional occupancy of a genotype on the transcription factor binding site. Allowed values are @@ -227,6 +229,11 @@ def configure_model(binding_df, when it is 'single'. Used to moment-match a LogNormal prior for the transformation's lambda parameter, replacing the manual step of hand-editing the priors/guesses CSVs with rescaled log-space values. + congression_theta_rule : str, optional + How the 'mixture' transformation builds a congressed cell's theta + from its plasmids' thetas: 'homodimer' (default), 'heterodimer' or + 'max'. The homodimer and heterodimer rules require activity_model + 'fixed'. Ignored by 'single'. theta_rescale_model : str, optional Rescaling applied to theta before it enters the growth model. Allowed values are 'passthrough' (default, identity) or 'logit' (maps theta to @@ -367,6 +374,7 @@ def configure_model(binding_df, theta=theta_model, transformation=transformation_model, transformation_lambda=transformation_lambda, + congression_theta_rule=congression_theta_rule, theta_rescale=theta_rescale_model, theta_growth_noise=theta_growth_noise_model, theta_binding_noise=theta_binding_noise_model, diff --git a/tests/smoke-tests/test_model_smoke.py b/tests/smoke-tests/test_model_smoke.py index 4e90b9af..2d44c76d 100644 --- a/tests/smoke-tests/test_model_smoke.py +++ b/tests/smoke-tests/test_model_smoke.py @@ -12,14 +12,14 @@ # ModelOrchestrator arguments. We want to make sure every entry in the # model_registry is tested at least once. SMOKE_CONFIGS = [ - # Default-ish config + # Default-ish config (homodimer congression rule, activity fixed at 1) { "condition_growth":"linear", "transformation":"mixture", "theta":"hill_geno", "growth_transition":"instant", "dk_geno":"hierarchical_geno", - "activity":"horseshoe_geno", + "activity":"fixed", "ln_cfu0":"hierarchical", "theta_growth_noise":"zero", "theta_binding_noise":"zero" @@ -32,6 +32,7 @@ "growth_transition":"memory", "dk_geno":"fixed", "activity":"hierarchical_geno", + "congression_theta_rule":"max", # learned activity needs the max rule "theta_growth_noise":"beta", "theta_binding_noise":"beta" }, @@ -42,11 +43,13 @@ "theta":"hill_geno", "growth_transition":"baranyi", "activity":"fixed", + "congression_theta_rule":"heterodimer", }, - # test power and saturation + # test power and saturation (and learned horseshoe activity) { "condition_growth":"power", "transformation":"single", + "activity":"horseshoe_geno", }, { "condition_growth":"saturation", diff --git a/tests/smoke-tests/test_posteriors_smoke.py b/tests/smoke-tests/test_posteriors_smoke.py index dafbf956..041f2afa 100644 --- a/tests/smoke-tests/test_posteriors_smoke.py +++ b/tests/smoke-tests/test_posteriors_smoke.py @@ -82,7 +82,10 @@ def test_extract_parameters_smoke(growth_smoke_csv, growth_df=growth_smoke_csv, binding_df=binding_smoke_csv, theta="hill_geno", - transformation="mixture" + transformation="mixture", + # a learned activity (extracted below) needs the max congression rule + activity="horseshoe_geno", + congression_theta_rule="max", ) inference = RunInference(model=model, seed=42) diff --git a/tests/tfscreen/simulate/test_cell_rules.py b/tests/tfscreen/simulate/test_cell_rules.py new file mode 100644 index 00000000..c549a0db --- /dev/null +++ b/tests/tfscreen/simulate/test_cell_rules.py @@ -0,0 +1,126 @@ +"""Tests for the co-transformed cell rules (simulate/cell_rules.py).""" + +import numpy as np +import pytest + +from tfscreen.simulate.cell_rules import ( + DK_RULES, + THETA_EPS, + THETA_RULES, + dk_dilution, + theta_heterodimer, + theta_homodimer, + theta_max, +) + + +def _logit(p): + return np.log(p / (1 - p)) + + +def _expit(x): + return 1.0 / (1.0 + np.exp(-x)) + + +def _cells(): + """Two cells over two conditions: a 2-plasmid cell and a 3-plasmid cell + stored with one masked slot in the first.""" + theta = np.array([[[0.9, 0.2], [0.3, 0.6], [0.5, 0.5]], + [[0.1, 0.8], [0.7, 0.4], [0.95, 0.05]]]) + shares = np.array([[0.5, 0.5, 0.0], + [1 / 3, 1 / 3, 1 / 3]]) + activity = np.ones_like(theta) + return theta, activity, shares + + +def test_registry(): + assert set(THETA_RULES) == {"max", "homodimer", "heterodimer"} + assert set(DK_RULES) == {"dilution"} + + +def test_max_takes_highest_theta_and_its_activity(): + theta, _, shares = _cells() + activity = np.arange(theta.size, dtype=float).reshape(theta.shape) + 1 + cell, act = theta_max(theta, activity, shares) + np.testing.assert_allclose(cell, [[0.9, 0.6], [0.95, 0.8]]) + np.testing.assert_allclose(act, [[1, 4], [11, 8]]) + + +@pytest.mark.parametrize("rule,power", [(theta_homodimer, 1.0), + (theta_heterodimer, 0.5)]) +def test_partition_rules_match_hand_calculation(rule, power): + theta, activity, shares = _cells() + cell, act = rule(theta, activity, shares) + for c in range(2): + n = int(np.sum(shares[c] > 0)) + for j in range(2): + logits = _logit(theta[c, :n, j]) + expected = _expit(np.log(np.mean(np.exp(power * logits))) / power) + assert cell[c, j] == pytest.approx(expected, rel=1e-10) + np.testing.assert_array_equal(act, np.ones_like(cell)) + + +def test_partition_rules_ordering(): + """heterodimer <= homodimer <= max; all at least the mean logit.""" + theta, activity, shares = _cells() + het, _ = theta_heterodimer(theta, activity, shares) + hom, _ = theta_homodimer(theta, activity, shares) + mx, _ = theta_max(theta, activity, shares) + assert np.all(het <= hom + 1e-12) + assert np.all(hom <= mx + 1e-12) + for c in range(2): + n = int(np.sum(shares[c] > 0)) + mean_logit = np.mean(_logit(theta[c, :n]), axis=0) + assert np.all(_logit(het[c]) >= mean_logit - 1e-10) + + +def test_strong_binder_loses_log2_and_log4(): + """A strong binder with a dead partner in a 1:1 cell loses log 2 + (homodimer) or log 4 (heterodimer) logit units against max.""" + strong, dead = 0.999, THETA_EPS + theta = np.array([[[strong], [dead]]]) + shares = np.array([[0.5, 0.5]]) + activity = np.ones_like(theta) + hom, _ = theta_homodimer(theta, activity, shares) + het, _ = theta_heterodimer(theta, activity, shares) + assert _logit(strong) - _logit(hom[0, 0]) == pytest.approx(np.log(2), abs=1e-3) + assert _logit(strong) - _logit(het[0, 0]) == pytest.approx(np.log(4), abs=1e-2) + + +@pytest.mark.parametrize("rule", [theta_homodimer, theta_heterodimer, theta_max]) +def test_single_plasmid_keeps_its_theta(rule): + theta = np.array([[[0.3, 0.8], [0.9, 0.9]]]) + shares = np.array([[1.0, 0.0]]) + cell, _ = rule(theta, np.ones_like(theta), shares) + np.testing.assert_allclose(cell, [[0.3, 0.8]], rtol=1e-9) + + +@pytest.mark.parametrize("rule", [theta_homodimer, theta_heterodimer]) +def test_partition_rules_require_activity_one(rule): + theta, activity, shares = _cells() + activity[0, 1, 0] = 0.5 + with pytest.raises(ValueError, match="activity 1"): + rule(theta, activity, shares) + + +@pytest.mark.parametrize("rule", [theta_homodimer, theta_heterodimer]) +def test_partition_rules_ignore_masked_slot_activity(rule): + """A masked slot's activity is not checked.""" + theta, activity, shares = _cells() + activity[0, 2, :] = 0.5 # slot 2 of cell 0 is masked + rule(theta, activity, shares) + + +@pytest.mark.parametrize("rule", [theta_homodimer, theta_heterodimer, theta_max]) +def test_nan_in_valid_slot_propagates(rule): + theta, activity, shares = _cells() + theta[1, 0, 1] = np.nan + cell, _ = rule(theta, activity, shares) + assert np.isnan(cell[1, 1]) + assert np.all(np.isfinite(cell[0])) + + +def test_dk_dilution_is_share_weighted_mean(): + dk = np.array([[0.0, -0.02, 5.0], [-0.03, 0.0, 0.03]]) + shares = np.array([[0.5, 0.5, 0.0], [1 / 3, 1 / 3, 1 / 3]]) + np.testing.assert_allclose(dk_dilution(dk, shares), [-0.01, 0.0]) diff --git a/tests/tfscreen/simulate/test_selection_experiment.py b/tests/tfscreen/simulate/test_selection_experiment.py index 0d918f45..0a3c4896 100644 --- a/tests/tfscreen/simulate/test_selection_experiment.py +++ b/tests/tfscreen/simulate/test_selection_experiment.py @@ -268,9 +268,9 @@ def test_check_cf_rejects_multi_plasmid_combine_fcn(base_config: dict): def test_check_cf_congression_rule_defaults(base_config: dict): - """Omitted congression rules default to max theta and dilution dk.""" + """Omitted congression rules default to homodimer theta and dilution dk.""" cf = _check_cf(dict(base_config)) - assert cf["congression_theta_rule"] == "max" + assert cf["congression_theta_rule"] == "homodimer" assert cf["congression_dk_rule"] == "dilution" diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py index 826d8c84..e3724d0e 100644 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py +++ b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py @@ -178,7 +178,7 @@ def mix(lam): # --------------------------------------------------------------------------- def _toy(seed=0, num_genotype=6, num_tn=2, num_tc=3, - batch_idx=(4, 0, 2), sets=(3, 2, 1)): + batch_idx=(4, 0, 2), sets=(3, 2, 1), rule="max"): rng = np.random.default_rng(seed) batch_idx = np.array(batch_idx) counts = np.asarray(_counts(list(sets))) @@ -192,6 +192,8 @@ def _toy(seed=0, num_genotype=6, num_tn=2, num_tc=3, theta_pop = rng.uniform(0.05, 0.95, (1, 1, 1, 1, num_tn, num_tc, num_genotype)) activity_pop = rng.uniform(0.5, 2.0, num_genotype) + if rule != "max": + activity_pop = np.ones(num_genotype) # partition rules need activity 1 dk_pop = rng.normal(0.0, 0.01, num_genotype) bulk_fraction = rng.uniform(0.0, 1.0, num_genotype) bulk_fraction[batch_idx[1]] = 0.0 # a spike-only genotype @@ -199,7 +201,8 @@ def _toy(seed=0, num_genotype=6, num_tn=2, num_tc=3, data = SimpleNamespace(batch_idx=jnp.array(batch_idx), bulk_fraction=jnp.array(bulk_fraction), coresident_idx=jnp.array(coresident_idx), - coresident_n=jnp.array(counts)) + coresident_n=jnp.array(counts), + congression_theta_rule=rule) # The batch's own values; theta perturbed (noise acts on the focal theta # only), so the focal plasmid is not just its population value. @@ -234,9 +237,18 @@ def _reference_classes(data, focal, population, lam): [theta_pop[0, 0, 0, 0, i, j, h] for h in co] acts = [activity.reshape(-1)[b]] + \ [activity_pop[h] for h in co] - best = int(np.argmax(values)) - c_theta[1 + k, i, j, b] = values[best] - c_act[1 + k, i, j, b] = acts[best] + if data.congression_theta_rule == "max": + best = int(np.argmax(values)) + c_theta[1 + k, i, j, b] = values[best] + c_act[1 + k, i, j, b] = acts[best] + else: + p = {"homodimer": 1.0, "heterodimer": 0.5}[ + data.congression_theta_rule] + v = np.clip(np.array(values), 1e-6, 1 - 1e-6) + logit = np.log(v / (1 - v)) + cell = np.log(np.mean(np.exp(p * logit))) / p + c_theta[1 + k, i, j, b] = 1.0 / (1.0 + np.exp(-cell)) + c_act[1 + k, i, j, b] = 1.0 c_dk[1 + k, b] = np.mean([dk_geno.reshape(-1)[b]] + [dk_pop[h] for h in co]) @@ -254,8 +266,9 @@ def _reference_classes(data, focal, population, lam): return c_theta, c_act, c_dk, w -def test_cell_classes_match_reference(): - data, focal, population = _toy() +@pytest.mark.parametrize("rule", ["max", "homodimer", "heterodimer"]) +def test_cell_classes_match_reference(rule): + data, focal, population = _toy(rule=rule) lam = 0.357 classes = mixture.cell_classes(focal, population, jnp.array(lam), data) c_theta, c_act, c_dk, w = _reference_classes(data, focal, population, lam) @@ -283,3 +296,46 @@ def test_cell_classes_mixture_reduces_to_clean_as_lambda_vanishes(): -1, *([1] * (classes.log_weight.ndim - 1))) mixed = jax.scipy.special.logsumexp(classes.log_weight + growth, axis=0) np.testing.assert_allclose(np.asarray(mixed), 0.0, atol=1e-6) + + +def test_partition_rules_order_and_single_plasmid(): + """heterodimer <= homodimer <= max per cell, all between the mean and the + max logit; a cell with no co-residents keeps its own theta.""" + out = {} + for rule in ("max", "homodimer", "heterodimer"): + data, focal, population = _toy(rule=rule) + out[rule] = np.asarray(mixture.cell_classes( + focal, population, jnp.array(0.357), data).theta) + assert np.all(out["heterodimer"] <= out["homodimer"] + 1e-6) + assert np.all(out["homodimer"] <= out["max"] + 1e-6) + + data, focal, population = _toy(rule="homodimer", sets=(1,)) + data.coresident_idx = jnp.full_like(data.coresident_idx, -1) + classes = mixture.cell_classes(focal, population, jnp.array(0.357), data) + np.testing.assert_allclose(np.asarray(classes.theta)[1], + np.asarray(focal[0]), rtol=1e-5) + + +def test_partition_rule_matches_simulator(): + """The fit's homodimer/heterodimer cell theta equals simulate/cell_rules.""" + from tfscreen.simulate.cell_rules import THETA_RULES, THETA_EPS + assert THETA_EPS == mixture.THETA_EPS + for rule in ("homodimer", "heterodimer"): + data, focal, population = _toy(rule=rule) + classes = mixture.cell_classes(focal, population, jnp.array(0.357), data) + theta, _, _ = focal + theta_pop = population[0] + idx = np.asarray(data.coresident_idx) + for b, g in enumerate(np.asarray(data.batch_idx)): + for k in range(idx.shape[1]): + co = [h for h in idx[g, k] if h >= 0] + slots = np.stack([theta[0, 0, 0, 0, :, :, b]] + + [theta_pop[0, 0, 0, 0, :, :, h] for h in co]) + m = len(co) + 1 + cell, act = THETA_RULES[rule]( + slots.reshape(1, m, -1), np.ones((1, m, slots[0].size)), + np.full((1, m), 1.0 / m)) + np.testing.assert_allclose( + np.asarray(classes.theta)[1 + k, 0, 0, 0, 0, :, :, b].ravel(), + cell[0], rtol=1e-5) + diff --git a/tests/tfscreen/tfmodel/generative/test_mixture_model.py b/tests/tfscreen/tfmodel/generative/test_mixture_model.py index 793ca59c..3b29b6d2 100644 --- a/tests/tfscreen/tfmodel/generative/test_mixture_model.py +++ b/tests/tfscreen/tfmodel/generative/test_mixture_model.py @@ -164,3 +164,43 @@ def test_mixture_posteriors_independent_of_chunk_size(): out[forward_batch_size] = f["growth_pred"][()] np.testing.assert_allclose(out[512], out[2], rtol=1e-5, atol=1e-5) + + +# --------------------------------------------------------------------------- +# Congression theta rule and activity defaults +# --------------------------------------------------------------------------- + +def test_defaults_are_homodimer_and_fixed_activity(): + orchestrator = _orchestrator("mixture") + assert orchestrator.settings["activity"] == "fixed" + assert orchestrator.settings["congression_theta_rule"] == "homodimer" + assert orchestrator.data.growth.congression_theta_rule == "homodimer" + + +def test_max_rule_allows_learned_activity(): + orchestrator = _orchestrator("mixture", activity="horseshoe_geno", + congression_theta_rule="max") + assert orchestrator.data.growth.congression_theta_rule == "max" + + +@pytest.mark.parametrize("rule", ["homodimer", "heterodimer", "max"]) +def test_every_rule_runs_and_rule_survives_batching(rule): + orchestrator = _orchestrator("mixture", congression_theta_rule=rule) + batch = _full_batch(orchestrator) + assert batch.growth.congression_theta_rule == rule + pred = np.asarray(_trace(orchestrator)["growth_pred"]["value"]) + assert np.all(np.isfinite(pred)) + + +def test_rules_give_different_predictions(): + """Same latents, different rules: the congressed classes differ.""" + base = _orchestrator("mixture", congression_theta_rule="max") + latents = _latents(_trace(base)) + latents["transformation_lam"] = jnp.array(1.0) + preds = {} + for rule in ("max", "homodimer", "heterodimer"): + o = _orchestrator("mixture", congression_theta_rule=rule) + preds[rule] = np.asarray(_trace(o, latents)["growth_pred"]["value"]) + assert not np.allclose(preds["max"], preds["homodimer"]) + assert not np.allclose(preds["homodimer"], preds["heterodimer"]) + diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index 5812bfd5..4c8cfca6 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -410,7 +410,8 @@ def test_initialize_classes_logic(mocker): "growth_transition": {"instant": MagicMock(), "linear": MagicMock()}, "ln_cfu0": {"hierarchical": MagicMock()}, "dk_geno": {"hierarchical_geno": MagicMock()}, - "activity": {"hierarchical_geno": MagicMock(), "horseshoe_geno": MagicMock()}, + "activity": {"hierarchical_geno": MagicMock(), "horseshoe_geno": MagicMock(), + "fixed": MagicMock()}, "theta": {"categorical_geno": MagicMock(), "hill_geno": MagicMock(), "fixed": MagicMock()}, "transformation": {"mixture": MagicMock(), "single": MagicMock()}, "theta_rescale": {"passthrough": MagicMock()}, @@ -744,6 +745,7 @@ def _build_orchestrator_with_transformation_spy(mocker, spy, transformation_lamb transformation_lambda=transformation_lambda, condition_growth="independent", growth_transition="instant", activity="hierarchical_geno", theta_growth_noise="zero", + congression_theta_rule="max", ) @@ -809,7 +811,7 @@ def test_transformation_control_kwargs_carry_needs_population_flag( "growth_transition": {"instant": MagicMock()}, "ln_cfu0": {"hierarchical": MagicMock()}, "dk_geno": {"hierarchical_geno": MagicMock()}, - "activity": {"horseshoe_geno": MagicMock()}, + "activity": {"horseshoe_geno": MagicMock(), "fixed": MagicMock()}, "theta": {"hill_geno": MagicMock()}, "transformation": {transformation_key: real_transformation_module}, "theta_rescale": {"passthrough": MagicMock()}, @@ -861,6 +863,25 @@ def test_model_orchestrator_refuses_retired_transformations(name, match, binding_only=binding_only) +# --------------------------------------------------------------------------- +# Congression theta rule +# --------------------------------------------------------------------------- + +def test_model_orchestrator_refuses_unknown_congression_theta_rule(): + with pytest.raises(ValueError, match="congression_theta_rule must be one of"): + ModelOrchestrator("g.csv", "b.csv", congression_theta_rule="min") + + +@pytest.mark.parametrize("rule", ["homodimer", "heterodimer"]) +def test_model_orchestrator_partition_rules_need_fixed_activity(rule): + """The partition-function rules mix variants' occupancies and require + activity 1; refused before any data I/O.""" + with pytest.raises(ValueError, match="requires TF activity 1"): + ModelOrchestrator("g.csv", "b.csv", transformation="mixture", + activity="horseshoe_geno", + congression_theta_rule=rule) + + def test_model_class_properties(initialized_model_class): model = initialized_model_class model._jax_model = "jm" @@ -893,6 +914,7 @@ def test_model_class_properties(initialized_model_class): model._base_growth_df = "bg.csv" model._congression_sets = (12, 3, 1) model._congression_seed = 0 + model._congression_theta_rule = "homodimer" assert ModelOrchestrator.jax_model.fget(model) == "jm" assert ModelOrchestrator.jax_model_guide.fget(model) == "jmg" @@ -900,6 +922,7 @@ def test_model_class_properties(initialized_model_class): assert ModelOrchestrator.priors.fget(model) == "p" assert ModelOrchestrator.init_params.fget(model) == "ip" assert ModelOrchestrator.settings.fget(model)["activity"] == "a" + assert ModelOrchestrator.settings.fget(model)["congression_theta_rule"] == "homodimer" assert ModelOrchestrator.settings.fget(model)["theta"] == "t" assert ModelOrchestrator.settings.fget(model)["transformation"] == "tr" assert ModelOrchestrator.settings.fget(model)["transformation_lambda"] is None diff --git a/tests/tfscreen/tfmodel/test_model_stats.py b/tests/tfscreen/tfmodel/test_model_stats.py index 8416ffd4..2cdcde10 100644 --- a/tests/tfscreen/tfmodel/test_model_stats.py +++ b/tests/tfscreen/tfmodel/test_model_stats.py @@ -91,7 +91,10 @@ def binding_df(): # configure_model -- the caller this tool actually runs under -- defaults it to # "zero". Pin it so the base fixture reflects the CLI default; the # logit_normal case gets its own test. -BASE_KWARGS = {"batch_size": None, "theta_growth_noise": "zero"} +# activity is set explicitly: the census checks a learned activity +# component's scale latents (the default activity is now "fixed"). +BASE_KWARGS = {"batch_size": None, "theta_growth_noise": "zero", + "activity": "horseshoe_geno"} @pytest.fixture @@ -530,7 +533,8 @@ def test_minibatching_does_not_change_counts(growth_df, binding_df): ModelOrchestrator(growth_df, binding_df, **BASE_KWARGS)) batched = count_model_dimensions( ModelOrchestrator(growth_df, binding_df, batch_size=2, - theta_growth_noise="zero")) + theta_growth_noise="zero", + activity=BASE_KWARGS["activity"])) assert full.summary["parameters"]["n_param_total"] == \ batched.summary["parameters"]["n_param_total"] From 6696510396995cca195cb0dc6cf9c7ec7cca6b2b Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 07:56:24 -0700 Subject: [PATCH 043/208] Record the 3.5 confirming round and close step 3.5 The confirming round (grid_measured.yaml: lambda 0.357 x seeds 1-3; grid_seed3.yaml: a third seed at lambda 0 and 1) was set up to check that the converged re-run's result holds across seeds and in the real library's regime before moving on to the theta rule. All 10 runs converged. The mixture beats single in all 9 pairs on loss, bulk theta RMSE (-0.018, -0.034, -0.017 at lambda 0, 0.357, 1; 3-seed paired means), 95% coverage (+0.04, +0.13, +0.18) and dk_geno error; genotypes with binding data are unchanged. Lambda is right on average at 0.357 (0.27, 0.44, 0.35) but low at 1.0 (0.94, 0.80, 0.66) and high at 0 (~0.12), with a seed-to-seed spread 30-50 times the reported posterior SD, which strengthens the case for setting lambda from the measurement. Coverage stays below nominal (mixture 0.64-0.86). The study README gains the tables; the plan marks 3.5 done. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 10 +++- .../studies/congression-calibration/README.md | 51 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 3f69a15b..583dae3d 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -580,7 +580,7 @@ checked with `tfs-summarize-calibration`. - *`tfs-summarize-calibration`* strata: `origin` (spiked/bulk) became `purity` (`spike`/`mixed`/`bulk`, from the sub-libraries encoding each genotype, i.e. `bulk_fraction` 0, between, or 1). - - [ ] **3.5 Calibration.** Step 2 simulator vs the new fit, with + - [x] **3.5 Calibration.** Step 2 simulator vs the new fit, with `tfs-summarize-calibration`; watch bulk genotypes without binding data. Grid set up 2026-09-24 (user: cluster, both extra arms, `mixed` left unstratified): `planning/studies/congression-calibration/`, 54 runs = @@ -679,6 +679,14 @@ checked with `tfs-summarize-calibration`. - The model's default binding weight (growth rows / binding rows) is to be lowered, and the binding SDs rethought (raw anisotropy points, an assay-to-cell term); its own step. + Confirming round (2026-09-26, all 10 converged): the mixture beats + `single` in all 9 pairs (3 seeds x lambda 0, 0.357, 1) on loss, bulk + theta RMSE (-0.018, -0.034, -0.017), coverage (+0.04, +0.13, +0.18) + and dk_geno. Lambda is right on average at 0.357 (0.27, 0.44, 0.35) + but low at 1.0 (0.94, 0.80, 0.66) and high at 0 (~0.12); the + seed-to-seed spread is 30-50 times the reported posterior SD, which + strengthens the case for setting lambda from the measurement. Step 3.5 + closed. 4. **Theta rule.** Homodimer vs heterodimer soft max, chosen from the bench results, in both simulator and fit. Design agreed 2026-09-26 (user): diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 099252d1..c8d61cbf 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -581,6 +581,57 @@ Profile (mixture, lambda fixed, lambda-1 seed-1 data): - Coverage remains below nominal for both fits (0.78-0.87), the mixture's less so. +## Confirming round (grid_measured.yaml, grid_seed3.yaml, 2026-09-26) + +Same settings as the re-run above (`max` rule on both sides). **All 10 runs +converged** (38,000-48,000 steps). Outputs: `calib/measured_*`, and +`calib/pooled_*` for the baseline grid plus seed 3 (runs linked into +`calib/pooled_all/`). + +Measured regime (lambda 0.357, prior 0.357 +/- 0.05): + +| seed | fit | lambda (95%) | dk_geno RMSE | bulk theta RMSE | bulk theta coverage | loss | +|---|---|---|---|---|---|---| +| 1 | `single` | | 0.0057 | 0.112 | 0.69 | 32,654 | +| 1 | mixture | 0.266 (0.262-0.269) | 0.0025 | 0.083 | 0.83 | 31,733 | +| 2 | `single` | | 0.0056 | 0.145 | 0.53 | 31,228 | +| 2 | mixture | 0.439 (0.434-0.444) | 0.0017 | 0.110 | 0.64 | 29,604 | +| 3 | `single` | | 0.0064 | 0.106 | 0.72 | 34,176 | +| 3 | mixture | 0.347 (0.341-0.353) | 0.0026 | 0.068 | 0.85 | 32,850 | + +Seed 3 at lambda 0 and 1: + +| lambda | fit | lambda (95%) | dk_geno RMSE | bulk theta RMSE | bulk theta coverage | loss | +|---|---|---|---|---|---|---| +| 0 | `single` | | 0.0023 | 0.103 | 0.69 | 33,228 | +| 0 | mixture | 0.119 (0.116-0.123) | 0.0018 | 0.086 | 0.71 | 32,675 | +| 1 | `single` | | 0.0088 | 0.099 | 0.56 | 25,878 | +| 1 | mixture | 0.656 (0.650-0.662) | 0.0037 | 0.078 | 0.78 | 24,694 | + +Paired against `single` (bulk genotypes without binding data; mean +/- SE +over 3 seeds): + +| lambda | delta theta RMSE | delta 95% coverage | delta dk_geno RMSE | +|---|---|---|---| +| 0 | -0.018 +/- 0.000 | +0.04 +/- 0.01 | -0.0008 | +| 0.357 | -0.034 +/- 0.003 | +0.13 +/- 0.01 | -0.0036 | +| 1 | -0.017 +/- 0.004 | +0.18 +/- 0.04 | -0.0056 | + +Genotypes with binding data are unchanged (delta theta RMSE ~0). + +- **The mixture beats `single` in all 9 pairs** on fit (loss), bulk theta + RMSE, coverage and dk_geno. The gain is largest in the measured regime. +- **Lambda: roughly right on average, badly overconfident per run.** At + 0.357 the three seeds give 0.27, 0.44 and 0.35 (mean 0.35); at 1.0 they + give 0.94, 0.80 and 0.66; at 0 they give 0.13, 0.11 and 0.12. The + seed-to-seed spread (SD ~0.09 at 0.357, ~0.14 at 1.0) is 30-50 times + the reported posterior SD (~0.003), and seed 3 at 1.0 sits 7 prior SDs + below its matched prior. Theta is recovered well regardless, as the flat + profile predicted. +- Coverage is still below nominal (mixture 0.64-0.86). + +Step 3.5 is closed on these results. Open items are recorded in the plan. + ## Step 4 changes that affect this study (2026-09-26) The fit's default congression theta rule is now `homodimer` and the default From 510639b6d7f7aeb279f5fffc92e7c9b861acada7 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 08:32:47 -0700 Subject: [PATCH 044/208] Set up the step 4 cross-rule validation grid Step 4 made homodimer the default congression theta rule without data that separate it from max. The cross-rule grid asks whether fitting with the right rule recovers theta and what the wrong one costs: simulate with max or homodimer, then fit each simulation with single and with the mixture under each rule, at lambda 0.357 and 1.0 x seeds 1-2 (24 runs; matched lambda prior, otherwise grid_baseline.yaml's settings). single runs carry fit_theta_rule "na" so they can serve as the paired baseline; the grid header gives the summary commands against single and homodimer against max. Verified by rendering the grid and running simulate and configure locally for a homodimer-simulated, homodimer-fit run (config: congression_theta_rule homodimer, activity fixed). The plan and study README record the grid. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 4 + .../studies/congression-calibration/README.md | 6 ++ .../grid_crossrule.yaml | 73 +++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 planning/studies/congression-calibration/grid_crossrule.yaml diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 583dae3d..9160f548 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -715,5 +715,9 @@ checked with `tfs-summarize-calibration`. `homodimer`. - Validation: a cross-rule grid (`max` vs `homodimer`, simulated with one and fit with the other) at lambda 0.357 and 1. + Implemented 2026-09-26. Cross-rule grid set up: + `planning/studies/congression-calibration/grid_crossrule.yaml` + (simulate {max, homodimer} x fit {single, mixture-max, + mixture-homodimer} x lambda {0.357, 1} x seeds 1-2; 24 runs). 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both simulator and fit. diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index c8d61cbf..e8539ba0 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -641,3 +641,9 @@ the rule the simulation used (`fit_theta_rule` overrides it, for cross-rule grids). The confirming round (`grid_measured.yaml`, `grid_seed3.yaml`) was set up before this change and runs `max` on both sides. +`grid_crossrule.yaml` (set up 2026-09-26) is the step 4 validation: simulate +with `max` or `homodimer`, then fit each simulation with `single` and with +the mixture under each rule, at lambda 0.357 and 1.0 x seeds 1-2 (24 runs). +Does the right rule recover theta, and what does the wrong one cost? The +summary commands are in the grid file's header. + diff --git a/planning/studies/congression-calibration/grid_crossrule.yaml b/planning/studies/congression-calibration/grid_crossrule.yaml new file mode 100644 index 00000000..a2b9f990 --- /dev/null +++ b/planning/studies/congression-calibration/grid_crossrule.yaml @@ -0,0 +1,73 @@ +# --------------------------------------------------------------------------- +# Cross-rule validation (congression physics plan, step 4) +# +# tfs-setup-sim-grid grid_crossrule.yaml --out_prefix congression_calibration_crossrule +# for d in congression_calibration_crossrule/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Simulate with the max or the homodimer theta rule; fit each simulation +# with `single` and with the mixture under each rule (matched lambda prior). +# Lambda 0.357 (the real library) and 1.0 x seeds 1-2; otherwise the +# settings of grid_baseline.yaml. 24 runs. The simulate-max / fit-max cells +# repeat runs from grid_measured.yaml and grid_baseline.yaml, so the grid +# stands on its own. +# +# Summaries: against `single` (fit_theta_rule na), and homodimer against +# max on the same simulation: +# +# tfs-summarize-calibration congression_calibration_crossrule \ +# --out_prefix calib/crossrule \ +# --baseline fit=single lam_prior=off fit_theta_rule=na +# tfs-summarize-calibration congression_calibration_crossrule \ +# --out_prefix calib/crossrule_vs_max --baseline fit_theta_rule=max +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__sim{{ congression_theta_rule }}__seed{{ seed }}__{{ fit }}_{{ fit_theta_rule }}" + +output_file: run.srun + + +simulate: + + - name: lam + variants: + - transformation_poisson_lambda: 0.357 + - transformation_poisson_lambda: 1.0 + + - name: sim_rule + variants: + - congression_theta_rule: max + - congression_theta_rule: homodimer + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + + +template: + + # fit_theta_rule "na": `single` has no theta rule (run.srun ignores it). + - name: fit + variants: + - fit: single + lam_prior: "off" + fit_theta_rule: na + - fit: mixture + lam_prior: matched + fit_theta_rule: max + - fit: mixture + lam_prior: matched + fit_theta_rule: homodimer + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 From 3f628bf785e6b0fb0b111d6b50507c277a14387b Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 08:57:15 -0700 Subject: [PATCH 045/208] Add planning idea for wt-relative growth-only fitting The joint fit asserts that in vitro binding equals in vivo occupancy and that growth is linear in it, and weights binding as heavily as the whole growth dataset, so any mismatch distorts the growth fit. File an idea to infer a wt-relative, IPTG-dependent growth variable X from growth data alone, then measure the X-to-binding map empirically before building it into a joint fit. Records why the relative scale is identifiable, what remains assumed, a model-free first step, the design of the map-finding stage, and the growth-only plumbing audit. Co-Authored-By: Claude Opus 5.5 --- planning/growth-only-relative-fit.md | 173 +++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 planning/growth-only-relative-fit.md diff --git a/planning/growth-only-relative-fit.md b/planning/growth-only-relative-fit.md new file mode 100644 index 00000000..9aba700c --- /dev/null +++ b/planning/growth-only-relative-fit.md @@ -0,0 +1,173 @@ +--- +title: Fit growth alone on a wt-relative scale, then measure the growth-binding map +status: idea +filed: 2026-09-26 +area: tfmodel +revisit_when: >- + When we want to test, rather than assume, that in vitro binding and in vivo + growth report the same occupancy. Step 0 (model-free look) can be run any + time on the existing real data. +related: + - src/tfscreen/tfmodel/model_orchestrator.py + - src/tfscreen/tfmodel/generative/model.py + - src/tfscreen/tfmodel/scripts/configure_model_cli.py + - src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py + - src/tfscreen/tfmodel/analysis/prediction.py + - src/tfscreen/tfmodel/generative/components/theta/hill_geno.py + - src/tfscreen/tfmodel/generative/components/theta_rescale/ + - planning/congression-physics-plan.md + - planning/studies/congression-calibration/README.md +--- + +**Context:** While calibrating fits for congression, it became clear we want +to fit growth data without binding data, at least to check whether the two +are consistent. An investigation (2026-09-25) found the plumbing is small but +that growth data alone do not fix an absolute theta scale. Discussion then +reframed the goal: don't ask for absolute theta yet. + +The joint fit currently asserts, at minimum: + +1. In vitro binding equals in vivo occupancy (same effective [IPTG], same + [protein], no genomic-site competition, ...). +2. Growth is linear in that occupancy: `g = k_c + dk_g + m_c·A_g·θ_g`. + +It also overweights binding: each binding row is scaled by +`N_growth_rows / N_binding_rows` (`model_orchestrator.py`, `binding_weight` +auto-computation), so the binding set as a whole counts as much as the entire +growth dataset. Any binding/growth mismatch is resolved by distorting growth. + +**Idea:** Infer a hidden, IPTG-dependent growth variable X from growth alone, +on a scale defined relative to wt. Then ask empirically what transfer function +maps X to the theta measured in vitro. Base case: linear. Likely case: +monotone but nonlinear. Worst case: no map. Only after that, build whatever +map we find into a joint fit. + +*Why a relative scale is identifiable.* Growth data fix X only up to a global +affine map `X -> a·X + b` (m and k compensate); this is exactly the +scale/sign non-identifiability of theta without binding (m -> c·m, +θ -> θ/c; θ -> 1-θ, m -> -m, k -> k+m). Hill K and n are invariant under it, +as are ratios to wt (e.g. a genotype's dynamic range relative to wt's). Fix +the gauge by convention: `X_wt = 1` at no IPTG, `X_wt = 0` at saturating +IPTG. Then `k_c` = wt's growth at saturating IPTG and `m_c` = wt's growth +change across IPTG, read straight from abundant wt data; the sign of m falls +out per condition. No binding data and no binding-based prefit needed. +(Design choice: pin wt's Hill asymptotes, simplest, or its values at the +measured end concentrations, if wt does not saturate in range.) + +*What stays assumed.* +- One X per genotype × [IPTG], shared across conditions and pre/sel phases. + Within a condition "growth linear in X" is a definition; across conditions + it is testable (kan and 4CP responses should be affine in each other per + genotype). +- X is Hill-shaped in IPTG. A strongly nonlinear true map would show as lack + of fit. +- dk_geno is independent of IPTG and condition. The baselines are the weakest + quantity: a genotype's X at no IPTG trades against dk_geno and is separated + only by selective-vs-control contrasts (control conditions have not ranked + dk_geno well so far). +- Congression: the mixture's max-theta rule is invariant under any increasing + map (`max f(θ) = f(max θ)`), so it carries over if X is oriented to + increase with repression. + +**Step 0 (model-free, do first).** For the genotypes with binding data: +regress ln_cfu on t_sel per genotype × replicate × condition × concentration +(slope = selection-phase growth rate, since t_pre is fixed within a sample); +subtract wt (cancels per-tube artifacts, leaving `dk_g + m_c·(X_g - X_wt)`); +plot against binding theta, interpolating binding through its Hill fits if +concentrations differ. Spiked genotypes are deep and congression-free. One +collapsing curve → linear/monotone case; genotype-specific scatter → the +worse case. This answers which case we are in before any component is built. + +**Stage 2 design (the map).** +- The map is between curves, not points: `X_g(c) = f(θ_g(s·c))` with a global + concentration scale s (in vivo effective [IPTG], assumption 1) and a value + map f (assumption 2). Nested family: identity → affine f → monotone f, plus + per-genotype deviations (activity, in-cell effects). +- Stratify spiked vs bulk: congression should show as bulk genotypes on a + compressed version of the spiked curve. +- Errors in both variables; genotype is the unit, concentrations are + within-genotype points. +- Risk: converged mean-field SVI is overconfident (bulk theta 95% coverage + ~0.66 in the congression-calibration study), which would make a real + monotone map look like "no map". Needs an extra dispersion term or better + calibrated posteriors. +- Eventual formalization: `theta_rescale` is already a fixed transfer + function slot (`passthrough`/`logit`); the joint model would make it + learnable and add s, with binding at weight 1. + +**Why not now:** Current work is the congression physics plan; this is a +change of strategy for what the fit asserts, and step 0 should decide whether +it is worth building. + +**What it would take:** + +*Growth-only plumbing* (found 2026-09-25; no model component reads +`data.binding`, and batching, `get_batch`, `batch_safety`, `RunInference`, +extraction, `predict-theta`/`-epistasis`, `model_stats` counts and config data +paths already cope with no binding): +- `configure_model_cli.py`: `binding_df` is a required positional that raises + when None → make it `--binding_df`, require at least one of growth/binding + in the body (like `--library_config`). Line ~389 writes a phantom + `data.binding: binding.csv` when binding is absent. Breaks positional + callers: `examples/simulate-and-analyze/run.sh`, `test_base_growth.py`, + `test_configure_and_run.py` (which asserts `configure_model(None)` raises). +- `ModelOrchestrator`: joint `_initialize_data` builds binding tensors, + `BindingData` and auto `binding_weight` unconditionally (first failure at + `_read_binding_df`); gate them. `_setup_batching` with an empty binding set + already gives `num_binding=0`. In `_initialize_classes`, drop + `theta_binding_noise`, skip `observe_binding`, set `priors.binding=None` + explicitly (`populate_dataclass(BindingPriors, {})` raises). Infer the mode + from `binding_df is None` rather than adding a `growth_only` config key + (every `components:` key becomes an orchestrator kwarg). +- `generative/model.py`: gate the binding prediction, noise, deterministics + and observer on `data.binding is not None` (static structure, jit-safe). +- `analysis/prediction.py`: `orchestrator.binding_df.copy()` crashes, breaking + `tfs-predict-growth`, `tfs-sample-prior` and summarize-fit trajectories. +- `summarize_fit_cli.py`: with no binding genotypes the trajectory plots fan + out to every genotype (a CSV + PDF each); needs a default subset. +- Fail fast on `binding_weight` or non-`zero` `theta_binding_noise_model` + without binding. Minor: `predict_growth_cli.py` survives only via a + try/except; `model_stats` warning wording; setup-grid `auto` enumerates + `theta_binding_noise`; `None` prior leaves round-trip through the priors CSV + as NaN (pre-existing, binding-only has it too). +- Tests: none cover growth-only. `growth-smoke.csv` + `library-smoke.yaml` + without binding is a ready fixture. Needs analogues in `test_model.py`, + `test_model_orchestrator.py`, `test_batch_safety.py`, `test_model_stats.py`, + `test_configure_and_run.py`, and a smoke test. + +*Relative-X fit:* +- New theta component (e.g. relative Hill): hill_geno's curve form but with + real-valued baselines (not logit-bounded to [0,1], since mutants can fall + outside wt's range), wt baselines pinned to (1, 0), population priors + re-centered on wt. Must follow the registry rules (library-sized plates, + `return_population`, `{site}_loc(s)`/`{site}_scale(s)` naming). +- Force `activity=fixed` (redundant with X's amplitude), `passthrough`, + `linear` growth; per-genotype curves only (hill_mut's logit additivity and + the thermo components presuppose absolute theta). +- `tfs-prefit-calibration` (needs binding by construction) becomes + unnecessary or a wt-only fit. +- Downstream: logit epistasis, `in_regime` and anything assuming θ in (0,1) + do not apply to X; only additive-on-X epistasis until f is known. + +*Stage 2 analysis:* a study script first (`planning/studies/`), a CLI only if +it earns one. + +*Validation:* on one sim, compare joint vs relative-X fits; +`tfs-summarize-calibration` stratifies by `has_binding` from the simulated +binding file (not what the fit saw), so held-out comparison is free. A sim +with a known nonlinear f and an [IPTG] scale s would test whether stage 2 +recovers them. + +*Alternative considered (absolute theta without binding in the fit):* keep +absolute theta but take m from binding only through the prefit +(`tfs-prefit-calibration --binding_df` for a growth-only config, with +`--pin_m`), or copy a calibration from another run, or rely on priors. Set +aside because it still asserts assumptions 1 and 2; the out11 ablation also +found free m with ~20 in-library binding anchors beat the prefit clamp +(theta slope 0.91 vs 0.85; older machinery). + +**Open questions:** +- Gauge: pin wt asymptotes or wt values at the measured end concentrations? +- Shared X across conditions, or per-condition X and test the relation? +- Do growth and binding concentrations coincide in the real data? +- Default genotype subset for summarize-fit trajectories without binding. From 3d60dfd2b2a0039fa7d3d2345b886a43699137fe Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 10:21:06 -0700 Subject: [PATCH 046/208] Record the cross-rule grid: theta rule not identifiable (step 4) The cross-rule grid asked whether fitting with the right congression theta rule recovers theta and what the wrong one costs. All 24 runs converged. Homodimer and max fits of the same simulation differ by -0.006 to +0.005 in bulk theta RMSE, ~0 in dk_geno and <= 0.03 in coverage, whichever rule simulated the data: these screen data cannot identify the rule, and a mismatch costs nothing measurable. The homodimer fit has the lower loss in 7 of 8 pairs (within loss noise) and puts lambda 0.01-0.07 higher. Both mixture fits beat single in all 16 pairs (bulk theta RMSE -0.010 to -0.041, coverage +0.12 to +0.18, dk_geno error ~2.5x lower). homodimer stays the default on physical grounds; the choice waits on native mass spec. The study README gains the tables; the plan closes step 4. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 7 +++ .../studies/congression-calibration/README.md | 48 +++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 9160f548..b2c8ff45 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -719,5 +719,12 @@ checked with `tfs-summarize-calibration`. `planning/studies/congression-calibration/grid_crossrule.yaml` (simulate {max, homodimer} x fit {single, mixture-max, mixture-homodimer} x lambda {0.357, 1} x seeds 1-2; 24 runs). + Cross-rule results (2026-09-26, all 24 converged): the rule is not + identifiable from screen data at this design. Homodimer vs max fits + of the same simulation differ by -0.006 to +0.005 in bulk theta RMSE + and ~0 in dk_geno, whichever rule simulated the data, and both beat + `single` in all 16 pairs. The homodimer fit has the lower loss in 7 + of 8 pairs and puts lambda 0.01-0.07 higher. `homodimer` stays the + default; the physical choice waits on native mass spec. Step 4 done. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both simulator and fit. diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index e8539ba0..b6cdebaa 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -647,3 +647,51 @@ the mixture under each rule, at lambda 0.357 and 1.0 x seeds 1-2 (24 runs). Does the right rule recover theta, and what does the wrong one cost? The summary commands are in the grid file's header. +## Cross-rule grid (grid_crossrule.yaml, 2026-09-26) + +**All 24 runs converged**, and each fit used the rule it was set up with +(`max` and `homodimer` fits of the same data stop at the same step only +because the windows are 2,000 steps). Outputs: `calib/crossrule_*` +(against `single`), `calib/crossrule_vs_max_*` (homodimer against max on +the same simulation). + +Bulk genotypes without binding data (theta RMSE, 95% coverage, loss): + +| lambda | simulated | seed | `single` | mixture, `max` | mixture, `homodimer` | +|---|---|---|---|---|---| +| 0.357 | `max` | 1 | 0.112, 0.69, 32,610 | 0.083, 0.83, 31,727 | 0.076, 0.85, 31,675 | +| 0.357 | `max` | 2 | 0.144, 0.53, 31,240 | 0.108, 0.65, 29,468 | 0.104, 0.69, 29,411 | +| 0.357 | `homodimer` | 1 | 0.122, 0.69, 32,739 | 0.091, 0.81, 31,824 | 0.083, 0.82, 31,770 | +| 0.357 | `homodimer` | 2 | 0.147, 0.53, 31,169 | 0.108, 0.67, 29,694 | 0.105, 0.63, 29,581 | +| 1 | `max` | 1 | 0.125, 0.58, 37,829 | 0.104, 0.81, 36,292 | 0.117, 0.79, 35,861 | +| 1 | `max` | 2 | 0.084, 0.77, 29,421 | 0.074, 0.87, 28,173 | 0.071, 0.86, 28,159 | +| 1 | `homodimer` | 1 | 0.125, 0.55, 37,729 | 0.095, 0.83, 36,202 | 0.101, 0.82, 36,241 | +| 1 | `homodimer` | 2 | 0.087, 0.76, 29,479 | 0.086, 0.84, 28,251 | 0.075, 0.85, 28,171 | + +Homodimer fit minus max fit, same simulation (mean +/- SE over 2 seeds): + +| lambda | simulated | delta theta RMSE | delta coverage | delta dk_geno RMSE | fitted lambda (max / homodimer) | +|---|---|---|---|---|---| +| 0.357 | `max` | -0.006 +/- 0.001 | +0.03 | 0.0000 | 0.27, 0.44 / 0.27, 0.47 | +| 0.357 | `homodimer` | -0.006 +/- 0.003 | -0.01 | 0.0000 | 0.26, 0.43 / 0.27, 0.45 | +| 1 | `max` | +0.005 +/- 0.008 | -0.01 | 0.0000 | 0.94, 0.80 / 0.98, 0.85 | +| 1 | `homodimer` | -0.003 +/- 0.008 | +0.00 | -0.0001 | 0.88, 0.77 / 0.91, 0.84 | + +- **The rule is not identifiable from these data, and the wrong one costs + nothing measurable.** Theta, dk_geno and coverage differ between the two + mixture fits by less than the seed-to-seed spread whichever rule + simulated the data. The homodimer fit has the lower loss in 7 of 8 + pairs, including all 4 simulated with `max`, by 14-430, within the + loss noise seen in the lambda profile. +- **Both mixture fits beat `single` in all 16 pairs** (bulk theta RMSE + -0.010 to -0.041, coverage +0.12 to +0.18, dk_geno error ~2.5x lower). +- The homodimer fit puts lambda slightly higher (by 0.01-0.07), closer to + the truth at 1.0. Partition-function mixing pulls a strong binder's + theta down in a congressed cell, so matching the same data takes a + little more congression than `max` needs. +- The simulated data do differ by rule (`ln_cfu` differs by 0.1 on average + between the `max` and `homodimer` simulations of the same seed; this + includes resampled read counts), but not in a way the fit can pin. + +`homodimer` stays the default (the physics, the user's call in step 4); the +choice between the rules waits on native mass spec, not on screen data. From 8254642f6dff4404d46c9f65990787483924f824 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 11:04:51 -0700 Subject: [PATCH 047/208] Add soft-min congression dk rules and a sensitivity grid (step 5) A congressed cell's dk_geno was always the share-weighted mean of its plasmids' (dilution), the alpha -> 0 limit of the plan's soft-min family dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g). Whether burden dilutes (misfolded protein) or dominates (aggregation, mixed- dimer poisoning) is a biological question the single-lambda dataset cannot answer, so alpha is set from biology and checked by sensitivity. - congression_dk_rule gains softmin (finite alpha from the new congression_dk_alpha, in units of 1/dk) and min (alpha -> inf, the worst variant sets the cost), in the simulator (cell_rules.dk_softmin, dk_min; config keys of the same names) and the fit (mixture.cell_classes: log-sum-exp or min over valid slots, equal shares). dilution stays the default. Alpha is required by softmin and refused by the other rules. - ModelOrchestrator settings written to the config and carried as static GrowthData fields; tfs-configure-model --congression_dk_rule, --congression_dk_alpha. - The calibration study's run.srun fits with the simulated dk rule and alpha (fit_dk_rule/fit_dk_alpha override). grid_dkrule.yaml (36 runs) simulates dilution or min and fits single, mixture-dilution and mixture-min, homodimer theta on both sides, on the wide dk spread (worst case) at lambda 0.357 and 1 and the tight realistic spread at 0.357, x seeds 1-2. Verified: hand calculations, limits and ordering (min <= softmin <= dilution), single-plasmid identity, masking, NaN, alpha validation; the fit matches the simulator for every rule with finite gradients; rules survive batching and change predictions; config round trip (softmin alpha 100 reloads as a float; a short fit runs); a min-simulated, min-fit study run simulates and configures locally. tests/tfscreen --runslow 4979 passed; smoke 42 passed. Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 13 +++ CLAUDE.md | 6 +- .../simulate-and-analyze/simulate_config.yaml | 9 +- examples/simulate/simulate_config.yaml | 9 +- planning/congression-physics-plan.md | 28 +++++ .../congression-calibration/.gitignore | 12 +- .../studies/congression-calibration/README.md | 12 ++ .../congression-calibration/grid_dkrule.yaml | 84 +++++++++++++ .../studies/congression-calibration/run.srun | 22 +++- .../simulate_config.yaml | 6 +- src/tfscreen/simulate/cell_rules.py | 54 ++++++++- src/tfscreen/simulate/selection_experiment.py | 23 +++- src/tfscreen/tfmodel/data_class.py | 6 + .../components/transformation/mixture.py | 45 +++++-- src/tfscreen/tfmodel/model_orchestrator.py | 60 +++++++++- .../tfmodel/scripts/configure_model_cli.py | 14 +++ tests/tfscreen/simulate/test_cell_rules.py | 60 +++++++++- .../simulate/test_selection_experiment.py | 52 +++++++++ .../components/transformation/test_mixture.py | 110 ++++++++++++++++-- .../tfmodel/generative/test_mixture_model.py | 29 +++++ .../tfmodel/test_model_orchestrator.py | 29 +++++ 21 files changed, 633 insertions(+), 50 deletions(-) create mode 100644 planning/studies/congression-calibration/grid_dkrule.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a91a7ed..1ffc7a91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,19 @@ fall into two kinds: ### Added +- **Soft-min congression dk rules (`congression_dk_rule` `softmin`, `min`).** + A congressed cell's dk_geno can now follow the whole soft-min family + `dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g)`, not only its + `alpha -> 0` limit: `dilution` (still the default, the share-weighted + mean), `softmin` (finite alpha, from the new `congression_dk_alpha`, in + units of 1/dk) and `min` (`alpha -> inf`, the worst variant sets the + cell's cost). Available in the simulator (`simulate/cell_rules.py`, + config keys `congression_dk_rule`/`congression_dk_alpha`) and the fit's + `mixture` transformation (`ModelOrchestrator` settings written to the + config and carried as static `GrowthData` fields; `tfs-configure-model + --congression_dk_rule`/`--congression_dk_alpha`). Alpha is required by + `softmin` and refused by the other rules. Congression physics plan, + step 5. - **Limit on simulated Hill coefficients (`theta_sim_priors.max_hill_n`).** hill_mut's simulation adds per-mutation and horseshoe-epistasis effects on log(hill_n), so double mutants could reach Hill coefficients in the diff --git a/CLAUDE.md b/CLAUDE.md index 61f17192..650592af 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -111,7 +111,7 @@ The hierarchical Bayesian inference engine. Key files: - **`generative/model.py`** — Numpyro probabilistic model definition. The generative model is: `ln_cfu = ln_cfu0 + (k_pre + dk_geno + m_pre·A·θ)·t_pre + (k_sel + dk_geno + m_sel·A·θ)·t_sel` where θ = operator occupancy, A = per-genotype TF activity, dk_geno = pleiotropic growth effect. - With `transformation: mixture` each genotype's cells are split into classes (clean, plus K congressed classes built from fixed co-resident sets) with cell-level θ/A/dk_geno (θ by `congression_theta_rule`, default the homodimer partition function over equal plasmid shares; dk_geno by dilution); every class is grown through the same pipeline on a leading class axis and the classes are mixed as `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`. The transformation component's `cell_classes(focal, population, params, data)` builds the classes (`single`: one class); `NEEDS_POPULATION` makes `jax_model` supply library-ordered θ/activity/dk_geno (`return_population=True`, or `GrowthData.external_*_population` in prediction). + With `transformation: mixture` each genotype's cells are split into classes (clean, plus K congressed classes built from fixed co-resident sets) with cell-level θ/A/dk_geno (θ by `congression_theta_rule`, default the homodimer partition function over equal plasmid shares; dk_geno by `congression_dk_rule`, default dilution); every class is grown through the same pipeline on a leading class axis and the classes are mixed as `ln_cfu = ln_cfu0 + logsumexp_c(log w_c + G_c)`. The transformation component's `cell_classes(focal, population, params, data)` builds the classes (`single`: one class); `NEEDS_POPULATION` makes `jax_model` supply library-ordered θ/activity/dk_geno (`return_population=True`, or `GrowthData.external_*_population` in prediction). - **`model_orchestrator.py`** — `ModelOrchestrator`: top-level class orchestrating data loading, inference, and prediction. @@ -203,7 +203,7 @@ Flow: `genetics.library_composition_table(library_config)` (`genetics/library_de A library-derived spiked genotype that has no growth data is **reported, not fatal** (spikes can drop out of a real dataset), unlike the hand-supplied `spiked_genotypes` list, which still raises. -`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) and is the `f_g` of the `mixture` transformation: a genotype's congressed fraction is `f_g (1 - P(M = 1))`, with `M` ~ zero-truncated Poisson(λ) plasmids per transformant (a cell's abundance is shared among its plasmids, so abundance by co-resident count n is `P(M = n + 1)`; λ is the simulator's `transformation_poisson_lambda`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the old binary `congression_mask` is gone. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. `congression_theta_rule` (default `homodimer`; also `heterodimer`, `max`; `tfs-configure-model --congression_theta_rule`) is a third such setting, carried into the model as the static `GrowthData.congression_theta_rule`; the partition-function rules require `activity='fixed'` (the default activity component; the orchestrator refuses a mixture with these rules and a learned activity). +`pool_fraction`/`bulk_fraction` are computed and snapshotted. `bulk_fraction` is carried into the model as `GrowthData.bulk_fraction` (library-sized float per genotype, indexed by `batch_idx`; built by `ModelOrchestrator._build_bulk_fraction`: the table's value, `__unknown__` → 1.0, any other missing genotype raises; legacy `spiked_genotypes` → 0 spiked / 1 otherwise) and is the `f_g` of the `mixture` transformation: a genotype's congressed fraction is `f_g (1 - P(M = 1))`, with `M` ~ zero-truncated Poisson(λ) plasmids per transformant (a cell's abundance is shared among its plasmids, so abundance by co-resident count n is `P(M = n + 1)`; λ is the simulator's `transformation_poisson_lambda`). Purity (`bulk_fraction`) and the `ln_cfu0` prior class (`ln_cfu0_spiked_mask`, from `in_spiked_origin`) are separate fields; the old binary `congression_mask` is gone. The orchestrator also draws each genotype's fixed co-resident plasmid sets for the mixture — `GrowthData.coresident_idx`/`coresident_n`, via `_draw_coresident_sets`, from the bulk share `pool_fraction * bulk_fraction` of genotypes with growth data (legacy: uniform over non-spiked); `congression_sets` (default `[12, 3, 1]`) and `congression_seed` are orchestrator settings written to the config, so draws are reproducible. `congression_theta_rule` (default `homodimer`; also `heterodimer`, `max`; `tfs-configure-model --congression_theta_rule`) is a third such setting, carried into the model as the static `GrowthData.congression_theta_rule`; the partition-function rules require `activity='fixed'` (the default activity component; the orchestrator refuses a mixture with these rules and a learned activity). `congression_dk_rule` (default `dilution`; also `softmin`, which needs `congression_dk_alpha` > 0, and `min`; `tfs-configure-model --congression_dk_rule`/`--congression_dk_alpha`) sets a congressed cell's dk_geno the same way (static `GrowthData.congression_dk_rule`/`congression_dk_alpha`). ### Pre-fit model accounting (`tfmodel/model_stats.py`) @@ -315,7 +315,7 @@ These two dicts are the mechanism by which binding data is "pinned" into the gro | `simulate/sim_data_class.py` | `SimData` container and `build_sim_data` factory | | `simulate/build_sample_dataframes.py` | Constructs sample/timepoint DataFrames from simulation config | | `simulate/selection_experiment.py` | Models the selection experiment (transformation, growth, sequencing). A co-transformed cell splits its abundance among its plasmids (`_plasmid_shares`) and has one growth rate built from cell-level physics (`_cell_kt`); `_check_cell_components` fails fast if the phenotype's `k_pre`/`k_sel` can't be rebuilt from its theta/activity/dk_geno | -| `simulate/cell_rules.py` | Pluggable rules combining a co-transformed cell's plasmids: `THETA_RULES` (`homodimer`, the default: `logit θ_cell = log Σ x_g exp(l_g)` over equal shares; `heterodimer`: `2 log Σ x_g exp(l_g/2)`; both require activity 1 and raise otherwise; `max`: highest-θ plasmid sets θ and activity) and `DK_RULES` (`dilution`: share-weighted dk_geno), chosen by `congression_theta_rule`/`congression_dk_rule`. The fit's mixture uses the same rules (`mixture.cell_classes`, `THETA_EPS` shared). Growth is then `thermo_to_growth.growth_rate_one_condition`, the same formula used per genotype. Never combine whole growth rates across plasmids | +| `simulate/cell_rules.py` | Pluggable rules combining a co-transformed cell's plasmids: `THETA_RULES` (`homodimer`, the default: `logit θ_cell = log Σ x_g exp(l_g)` over equal shares; `heterodimer`: `2 log Σ x_g exp(l_g/2)`; both require activity 1 and raise otherwise; `max`: highest-θ plasmid sets θ and activity) and `DK_RULES`, the soft-min family `dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g)` (`dilution`, the default: share-weighted mean, alpha -> 0; `softmin`: finite `congression_dk_alpha`; `min`: the worst variant, alpha -> inf), chosen by `congression_theta_rule`/`congression_dk_rule`. The fit's mixture uses the same rules (`mixture.cell_classes`, `THETA_EPS` shared). Growth is then `thermo_to_growth.growth_rate_one_condition`, the same formula used per genotype. Never combine whole growth rates across plasmids | | `simulate/scripts/simulate_cli.py` | `tfs-simulate` CLI entry point; runs `library_prediction` + `selection_experiment` across replicates and writes all output CSVs, delegating the optional `binding_data`/`presplit_data`/`base_growth_data` blocks to their respective generator modules above | | `simulate/scripts/report_cfu0_cli.py` | `tfs-report-cfu0` CLI entry point; reuses `library_prediction` + `selection_experiment` (same pattern as `simulate_cli.py`) across `num_replicates` to report mean `ln_cfu_0` and surviving-genotype counts by class (`wt`/`spiked`/`single`/`double`), for tuning `transform_sizes`/`library_mixture`/`cfu0` against observed real-library values | | `simulate/run_simulation.py` | Simpler, non-CLI orchestrator (`run_simulation`); does not support `binding_data`/`presplit_data`/`base_growth_data` | diff --git a/examples/simulate-and-analyze/simulate_config.yaml b/examples/simulate-and-analyze/simulate_config.yaml index abd96b74..72539c3d 100644 --- a/examples/simulate-and-analyze/simulate_config.yaml +++ b/examples/simulate-and-analyze/simulate_config.yaml @@ -185,9 +185,12 @@ transformation_poisson_lambda: 0 # theta odds), 'heterodimer' (closer to the mean logit) or 'max' (the # highest-theta plasmid sets theta and TF activity). 'homodimer' and # 'heterodimer' need activity 1 (activity_mut_scale 0). Its dk_geno comes -# from congression_dk_rule ('dilution': share-weighted mean). Growth is then -# computed once from these cell-level values. Both keys are optional; these -# are the defaults. +# from congression_dk_rule, the soft-min family +# dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g): 'dilution' +# (alpha -> 0, the share-weighted mean), 'softmin' (finite alpha, set by +# congression_dk_alpha, in units of 1/dk) or 'min' (alpha -> inf, the worst +# variant sets the cost). Growth is then computed once from these cell-level +# values. All three keys are optional; these are the defaults (no alpha). congression_theta_rule: homodimer congression_dk_rule: dilution diff --git a/examples/simulate/simulate_config.yaml b/examples/simulate/simulate_config.yaml index 42da8aa1..852b45d6 100644 --- a/examples/simulate/simulate_config.yaml +++ b/examples/simulate/simulate_config.yaml @@ -228,9 +228,12 @@ transformation_poisson_lambda: 1.5 # theta odds), 'heterodimer' (closer to the mean logit) or 'max' (the # highest-theta plasmid sets theta and TF activity). 'homodimer' and # 'heterodimer' need activity 1 (activity_mut_scale 0). Its dk_geno comes -# from congression_dk_rule ('dilution': share-weighted mean). Growth is then -# computed once from these cell-level values. Both keys are optional; these -# are the defaults. +# from congression_dk_rule, the soft-min family +# dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g): 'dilution' +# (alpha -> 0, the share-weighted mean), 'softmin' (finite alpha, set by +# congression_dk_alpha, in units of 1/dk) or 'min' (alpha -> inf, the worst +# variant sets the cost). Growth is then computed once from these cell-level +# values. All three keys are optional; these are the defaults (no alpha). congression_theta_rule: homodimer congression_dk_rule: dilution diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index b2c8ff45..86889dd9 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -728,3 +728,31 @@ checked with `tfs-summarize-calibration`. default; the physical choice waits on native mass spec. Step 4 done. 5. **dk rule.** Soft-min family with an alpha sensitivity check, in both simulator and fit. + Design agreed 2026-09-26 (user): + - Rules `dilution` (alpha -> 0, the share-weighted mean; **stays the + default**), `softmin` (finite alpha from `congression_dk_alpha`, in + units of 1/dk) and `min` (alpha -> inf, the worst variant sets the + cost). The limits are named rules, so neither end is approximated by + an extreme alpha; alpha is required by `softmin` and refused by the + others. Equal shares `x_g = 1/M`, as for theta. + - Scale: alpha matters once alpha times the spread of a cell's dk values + reaches ~1. For a 1:1 cell with dk 0 and -0.03: dilution -0.015, + alpha 100 -0.024, min -0.030. + - Fit: `mixture.cell_classes` takes a log-sum-exp (softmin) or a min + over the focal plasmid and its valid co-resident slots; orchestrator + settings `congression_dk_rule`/`congression_dk_alpha`, written to the + config and carried as static `GrowthData` fields; + `tfs-configure-model --congression_dk_rule/--congression_dk_alpha`. + Simulator: `simulate/cell_rules.py` (`dk_softmin`, `dk_min`), config + keys of the same names. In float32 the fit's softmin has absolute + error ~1e-7 / alpha, so tiny alpha is a job for `dilution`. + - Sensitivity check: simulate {dilution, min} x fit {single, + mixture-dilution, mixture-min}, homodimer theta rule on both sides, + x seeds 1-2, on the study's wide dk spread (a deliberate worst case, + user) at lambda 0.357 and 1, plus the realistic tight spread at 0.357 + (36 runs, `planning/studies/congression-calibration/grid_dkrule.yaml`). + No intermediate alpha: if the two ends agree, everything between does. + - Side effect to watch: under `min` a slow genotype's congressed cells + are at least as slow as it is, closing the route (an earlier, + unconverged diagnosis) by which a genotype pushes its own dk down and + lets its congressed cells carry its growth. diff --git a/planning/studies/congression-calibration/.gitignore b/planning/studies/congression-calibration/.gitignore index 9a7067dc..7419ba81 100644 --- a/planning/studies/congression-calibration/.gitignore +++ b/planning/studies/congression-calibration/.gitignore @@ -1,19 +1,11 @@ # Grid outputs (tens of GB) and the calibration summary; see README.md. -congression_calibration/ +# Every grid is set up as congression_calibration_/. +congression_calibration*/ calib/ -congression_calibration_masked/ diagnosis/*.csv -congression_calibration_bw1/ -congression_calibration_anchor/ -congression_calibration_controls/ fetch.sh -congression_calibration_anchor_resumed/ # Written by tfs-setup-sim-grid next to a grid set up here; not inputs. grid_summary.json inputs/ -congression_calibration_baseline/ -congression_calibration_profile/ # Renamed copies of old grid runs *.old/ -congression_calibration_measured/ -congression_calibration_seed3/ diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index b6cdebaa..4b0c64ba 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -695,3 +695,15 @@ Homodimer fit minus max fit, same simulation (mean +/- SE over 2 seeds): `homodimer` stays the default (the physics, the user's call in step 4); the choice between the rules waits on native mass spec, not on screen data. + +## Step 5: dk rule sensitivity (grid_dkrule.yaml, set up 2026-09-26) + +The fit and simulator now offer the soft-min dk family (`dilution`, +`softmin` with `congression_dk_alpha`, `min`). `run.srun` fits with the +simulation's dk rule and alpha unless `fit_dk_rule`/`fit_dk_alpha` are +set. `grid_dkrule.yaml` simulates with `dilution` or `min` and fits each +simulation with `single` and the mixture under each rule (homodimer theta +rule on both sides), at the wide dk spread (worst case) at lambda 0.357 and +1.0 and the tight, realistic spread at 0.357, x seeds 1-2 (36 runs). Does +the dk rule matter, and does it matter at a realistic dk spread? Summary +commands are in the grid file's header. diff --git a/planning/studies/congression-calibration/grid_dkrule.yaml b/planning/studies/congression-calibration/grid_dkrule.yaml new file mode 100644 index 00000000..312855c7 --- /dev/null +++ b/planning/studies/congression-calibration/grid_dkrule.yaml @@ -0,0 +1,84 @@ +# --------------------------------------------------------------------------- +# dk rule sensitivity (congression physics plan, step 5) +# +# tfs-setup-sim-grid grid_dkrule.yaml --out_prefix congression_calibration_dkrule +# for d in congression_calibration_dkrule/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Simulate with the dilution or the min dk rule (the two ends of the soft-min +# family); fit each simulation with `single` and with the mixture under each +# rule (matched lambda prior). Theta rule homodimer on both sides (the +# default; step 4 found the theta rule does not matter here). +# +# Designs: the study's wide dk_geno spread (SD ~0.018/min, a worst case) at +# lambda 0.357 and 1.0, and a realistic tight spread (bench: 0.024 +/- 0.001) +# at lambda 0.357 only. x seeds 1-2 = 36 runs. +# +# Summaries: against `single` (fit_dk_rule na), and min against dilution on +# the same simulation: +# +# tfs-summarize-calibration congression_calibration_dkrule \ +# --out_prefix calib/dkrule \ +# --baseline fit=single lam_prior=off fit_dk_rule=na +# tfs-summarize-calibration congression_calibration_dkrule \ +# --out_prefix calib/dkrule_vs_dilution --baseline fit_dk_rule=dilution +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "lam{{ transformation_poisson_lambda }}__dk{{ dk_geno_hyper_loc }}__sim{{ congression_dk_rule }}__seed{{ seed }}__{{ fit }}_{{ fit_dk_rule }}" + +output_file: run.srun + + +simulate: + + # lambda and dk spread move together: wide at 0.357 and 1.0, tight at 0.357. + - name: design + variants: + - transformation_poisson_lambda: 0.357 + dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + - transformation_poisson_lambda: 1.0 + dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + - transformation_poisson_lambda: 0.357 + dk_geno_hyper_loc: -7.0 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.001 + + - name: theta_rule + variants: + - congression_theta_rule: homodimer + + - name: sim_dk_rule + variants: + - congression_dk_rule: dilution + - congression_dk_rule: min + + - name: seed + variants: + - seed: 1 + - seed: 2 + + +template: + + # fit_dk_rule "na": `single` has no dk rule (run.srun ignores it). + - name: fit + variants: + - fit: single + lam_prior: "off" + fit_dk_rule: na + - fit: mixture + lam_prior: matched + fit_dk_rule: dilution + - fit: mixture + lam_prior: matched + fit_dk_rule: min + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 58297531..a517a17d 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -41,14 +41,24 @@ LAM_FIXED="{{ lam_fixed | default('') }}" # simulation used (tfs_sim_config.yaml's congression_theta_rule); set it to # fit with a different rule (cross-rule grids). FIT_THETA_RULE="{{ fit_theta_rule | default('') }}" +# Congression dk rule (and softmin alpha) for the fit (mixture only). Empty = +# the simulation's (congression_dk_rule, congression_dk_alpha). +FIT_DK_RULE="{{ fit_dk_rule | default('') }}" +FIT_DK_ALPHA="{{ fit_dk_alpha | default('') }}" # The simulated lambda and the seed live in tfs_sim_config.yaml. -read -r SEED LAM_SIM SIM_THETA_RULE < <(python -c " +read -r SEED LAM_SIM SIM_THETA_RULE SIM_DK_RULE SIM_DK_ALPHA < <(python -c " import yaml cf = yaml.safe_load(open('tfs_sim_config.yaml')) print(cf['seed'], cf.get('transformation_poisson_lambda') or 0.0, - cf.get('congression_theta_rule') or 'homodimer')") + cf.get('congression_theta_rule') or 'homodimer', + cf.get('congression_dk_rule') or 'dilution', + cf.get('congression_dk_alpha') or '')") FIT_THETA_RULE=${FIT_THETA_RULE:-${SIM_THETA_RULE}} +if [[ -z "${FIT_DK_RULE}" ]]; then + FIT_DK_RULE=${SIM_DK_RULE} + FIT_DK_ALPHA=${SIM_DK_ALPHA} +fi # --------------------------------------------------------------------------- # 1. Simulate @@ -88,7 +98,11 @@ else fi TRANSFORMATION_ARGS=(--transformation_model mixture --transformation_lambda "${LAM_MEAN}" "${LAM_PRIOR_SD}" - --congression_theta_rule "${FIT_THETA_RULE}") + --congression_theta_rule "${FIT_THETA_RULE}" + --congression_dk_rule "${FIT_DK_RULE}") + if [[ -n "${FIT_DK_ALPHA}" ]]; then + TRANSFORMATION_ARGS+=(--congression_dk_alpha "${FIT_DK_ALPHA}") + fi fi BINDING_WEIGHT_ARGS=() @@ -96,7 +110,7 @@ if [[ -n "${BINDING_WEIGHT}" ]]; then BINDING_WEIGHT_ARGS=(--binding_weight "${BINDING_WEIGHT}") fi -echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR}, theta rule ${FIT_THETA_RULE})" +echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR}, theta rule ${FIT_THETA_RULE}, dk rule ${FIT_DK_RULE}${FIT_DK_ALPHA:+ alpha ${FIT_DK_ALPHA}})" tfs-configure-model \ tfs_sim_binding.csv \ --growth_df "${GROWTH_CSV}" \ diff --git a/planning/studies/congression-calibration/simulate_config.yaml b/planning/studies/congression-calibration/simulate_config.yaml index 1f1c115e..53893ce4 100644 --- a/planning/studies/congression-calibration/simulate_config.yaml +++ b/planning/studies/congression-calibration/simulate_config.yaml @@ -196,8 +196,10 @@ transformation_poisson_lambda: 0 # How a cell carrying several plasmids gets its growth rate. The cell's theta # and TF activity come from congression_theta_rule ('max': the highest-theta # plasmid sets both, at each condition); its dk_geno from congression_dk_rule -# ('dilution': share-weighted mean). Growth is then computed once from these -# cell-level values. Both keys are optional; these are the defaults. +# ('dilution': share-weighted mean; also 'softmin' with congression_dk_alpha, +# or 'min'). Growth is then computed once from these cell-level values. The +# study keeps 'max' so its recorded grids stay reproducible (the default is +# now 'homodimer'); grids set the rules they test. congression_theta_rule: max congression_dk_rule: dilution diff --git a/src/tfscreen/simulate/cell_rules.py b/src/tfscreen/simulate/cell_rules.py index c4f0eb80..a4e35ce4 100644 --- a/src/tfscreen/simulate/cell_rules.py +++ b/src/tfscreen/simulate/cell_rules.py @@ -27,13 +27,18 @@ dk rules -------- -``fcn(dk_geno, shares) -> dk_cell`` +``fcn(dk_geno, shares, alpha=None) -> dk_cell`` - ``dk_geno``: ``(num_cells, max_plasmids)`` - returns ``(num_cells,)``. -See ``planning/congression-physics-plan.md`` for the physics and the planned -rules (soft-min dk). +The soft-min family ``dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g)`` +(congression plan, step 5): ``dilution`` (``alpha -> 0``, the default: the +share-weighted mean), ``softmin`` (finite ``alpha > 0``, in units of 1/dk) +and ``min`` (``alpha -> inf``: the worst variant sets the cell's cost). Only +``softmin`` takes ``alpha``. + +See ``planning/congression-physics-plan.md`` for the physics. """ import numpy as np @@ -137,7 +142,13 @@ def theta_heterodimer(theta, activity, shares): return _theta_partition(theta, activity, shares, 0.5) -def dk_dilution(dk_geno, shares): +def _check_no_alpha(name, alpha): + if alpha is not None: + raise ValueError(f"congression_dk_rule '{name}' takes no alpha " + f"(got {alpha}); only 'softmin' does.") + + +def dk_dilution(dk_geno, shares, alpha=None): """ Share-weighted mean dk_geno (each variant's burden diluted by its share). @@ -149,15 +160,48 @@ def dk_dilution(dk_geno, shares): ``(num_cells, max_plasmids)``. shares : numpy.ndarray ``(num_cells, max_plasmids)``; rows sum to 1. + alpha : None + Not used; must be None. Returns ------- numpy.ndarray ``(num_cells,)``. """ + _check_no_alpha("dilution", alpha) return np.sum(np.where(shares > 0, dk_geno, 0.0) * shares, axis=1) +def dk_softmin(dk_geno, shares, alpha=None): + """ + Soft minimum: ``dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g)``. + + Between the share-weighted mean (``alpha -> 0``) and the minimum + (``alpha -> inf``); ``alpha`` is in units of 1/dk (minutes when dk is + per minute), so it matters once ``alpha`` times the spread of a cell's + dk values reaches ~1. Masked slots are ignored; a NaN dk_geno in a + valid slot makes the cell's dk NaN. Arguments and returns as in + :func:`dk_dilution`, with ``alpha`` a positive float. + """ + if alpha is None or not alpha > 0 or not np.isfinite(alpha): + raise ValueError(f"congression_dk_rule 'softmin' needs a finite " + f"alpha > 0, not {alpha}.") + valid = shares > 0 + dk = np.where(valid, dk_geno, 0.0) + return -logsumexp(-alpha * dk, axis=1, b=shares) / alpha + + +def dk_min(dk_geno, shares, alpha=None): + """ + The worst variant (lowest dk_geno) sets the cell's cost: the + ``alpha -> inf`` limit of the soft-min family. Masked slots are ignored; + a NaN dk_geno in a valid slot makes the cell's dk NaN. Arguments and + returns as in :func:`dk_dilution`. + """ + _check_no_alpha("min", alpha) + return np.min(np.where(shares > 0, dk_geno, np.inf), axis=1) + + THETA_RULES = { "max": theta_max, "homodimer": theta_homodimer, @@ -166,4 +210,6 @@ def dk_dilution(dk_geno, shares): DK_RULES = { "dilution": dk_dilution, + "softmin": dk_softmin, + "min": dk_min, } diff --git a/src/tfscreen/simulate/selection_experiment.py b/src/tfscreen/simulate/selection_experiment.py index 3166d0bd..5aa04071 100644 --- a/src/tfscreen/simulate/selection_experiment.py +++ b/src/tfscreen/simulate/selection_experiment.py @@ -61,7 +61,7 @@ # Experimental simulation parameters "transform_sizes", "library_mixture", "lib_assembly_skew_sigma", "transformation_poisson_lambda", "cfu0", - "congression_theta_rule", "congression_dk_rule", + "congression_theta_rule", "congression_dk_rule", "congression_dk_alpha", "tube_noise_sigma", "growth_transition", # Data collection "total_num_reads", "prob_index_hop", "seed", @@ -251,6 +251,22 @@ def _check_cf( raise ValueError(f"'{key}' must be one of {sorted(rules)}, " f"not '{cf[key]}'.") + # congression_dk_alpha: required by 'softmin', refused by the other rules. + if cf.get("congression_dk_alpha") is None: + cf["congression_dk_alpha"] = None + if cf["congression_dk_rule"] == "softmin": + cf = _check_dict_number("congression_dk_alpha", cf, cast_type=float, + min_allowed=0, inclusive_min=False) + if not np.isfinite(cf["congression_dk_alpha"]): + raise ValueError("'congression_dk_alpha' must be finite; use " + "congression_dk_rule 'min' for the alpha -> inf " + "limit.") + elif cf["congression_dk_alpha"] is not None: + raise ValueError( + f"'congression_dk_alpha' is only used by congression_dk_rule " + f"'softmin' (got rule '{cf['congression_dk_rule']}'); remove it " + f"or set the rule to 'softmin'.") + if not isinstance(cf["condition_selector"], list): raise ValueError("condition_selector must be a list of column names.") if not isinstance(cf["library_selector"], list): @@ -798,7 +814,7 @@ def _cell_kt( cf : dict Validated config (``growth``, ``theta_rescale``, ``growth_transition``, ``congression_theta_rule``, - ``congression_dk_rule``). + ``congression_dk_rule``, ``congression_dk_alpha``). Returns ------- @@ -832,7 +848,8 @@ def _cell_kt( slot_activity = np.broadcast_to(genotype_activity[multi_trans][:, :, np.newaxis], slot_theta.shape) theta_cell, activity_cell = theta_rule(slot_theta, slot_activity, shares) - dk_cell = dk_rule(genotype_dk_geno[multi_trans], shares) + dk_cell = dk_rule(genotype_dk_geno[multi_trans], shares, + alpha=cf.get("congression_dk_alpha")) growth_params = cf["growth"] theta_rescale = cf.get("theta_rescale", "passthrough") diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index 30433311..2a48d4b3 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -89,6 +89,12 @@ class GrowthData: # Static: set by ModelOrchestrator from its congression_theta_rule. congression_theta_rule: str = field(pytree_node=False, default="homodimer") + # How a congressed cell's dk_geno is built from its plasmids' ("dilution", + # "softmin" with congression_dk_alpha, "min"). Static: set by + # ModelOrchestrator. + congression_dk_rule: str = field(pytree_node=False, default="dilution") + congression_dk_alpha: Any = field(pytree_node=False, default=None) + growth_shares_replicates: bool = field(pytree_node=False, default=False) # Optional mutation-decomposition matrices (set when using *_mut_decomp components). diff --git a/src/tfscreen/tfmodel/generative/components/transformation/mixture.py b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py index 4867aeb2..42ebdd94 100644 --- a/src/tfscreen/tfmodel/generative/components/transformation/mixture.py +++ b/src/tfscreen/tfmodel/generative/components/transformation/mixture.py @@ -21,17 +21,24 @@ evaluated by a fixed quadrature: K co-resident sets per genotype, drawn once by ``ModelOrchestrator._draw_coresident_sets`` (``data.coresident_idx``, ``data.coresident_n``) and stratified by co-resident count. A congressed -cell's dk_geno is the share-weighted mean of its plasmids' (dilution). Its -theta follows ``data.congression_theta_rule``, per titrant concentration, -with ``l_g = logit(theta_g)`` and equal shares ``x_g = 1/M`` for a cell of M -plasmids: +cell's plasmids have equal shares ``x_g = 1/M`` for a cell of M plasmids. +Its theta follows ``data.congression_theta_rule``, per titrant +concentration, with ``l_g = logit(theta_g)``: - ``homodimer`` (default): ``logit(theta_cell) = log sum_g x_g exp(l_g)``; - ``heterodimer``: ``logit(theta_cell) = 2 log sum_g x_g exp(l_g / 2)``; - ``max``: the highest-theta plasmid sets theta and TF activity. The homodimer and heterodimer rules require TF activity 1 (checked by -``ModelOrchestrator``). All three match ``simulate/cell_rules.py``. +``ModelOrchestrator``). Its dk_geno follows ``data.congression_dk_rule``, the +soft-min family ``dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g)``: + +- ``dilution`` (default; ``alpha -> 0``): the share-weighted mean; +- ``softmin``: finite ``alpha = data.congression_dk_alpha > 0`` (in float32 + its absolute error is ~1e-7 / alpha, so use ``dilution`` for tiny alpha); +- ``min`` (``alpha -> inf``): the worst variant sets the cell's cost. + +All rules match ``simulate/cell_rules.py``. See ``planning/congression-physics-plan.md`` ("Fit design (step 3)") and ``planning/studies/congression-estimator/`` for why this estimator. @@ -173,7 +180,8 @@ def cell_classes(focal, population, lam, data: GrowthData) -> CellClasses: Congression Poisson rate. data : GrowthData Uses ``batch_idx``, ``bulk_fraction``, ``coresident_idx``, - ``coresident_n``. + ``coresident_n``, ``congression_theta_rule``, ``congression_dk_rule`` + and ``congression_dk_alpha``. Returns ------- @@ -224,10 +232,31 @@ def cell_classes(focal, population, lam, data: GrowthData) -> CellClasses: else: raise ValueError(f"unknown congression_theta_rule {rule!r}") - # --- dk_geno: share-weighted mean (dilution) -------------------------- + # --- dk_geno: soft-min family over equal shares ------------------------ co_dk = jnp.where(valid, dk_pop[safe], 0.0) # (B, K, N) num_plasmids = 1.0 + jnp.sum(valid, axis=-1) # (B, K) - cell_dk = (dk_geno[..., None] + jnp.sum(co_dk, axis=-1)) / num_plasmids + dk_rule = data.congression_dk_rule + if dk_rule == "dilution": + cell_dk = (dk_geno[..., None] + jnp.sum(co_dk, axis=-1)) / num_plasmids + else: + focal_dk = jnp.broadcast_to(dk_geno[..., None, None], + dk_geno.shape + valid.shape[-2:-1] + (1,)) + co_dk = jnp.broadcast_to(co_dk, focal_dk.shape[:-1] + co_dk.shape[-1:]) + slot_dk = jnp.concatenate([focal_dk, co_dk], axis=-1) # (..., B, K, 1+N) + dk_valid = jnp.broadcast_to( + jnp.concatenate([jnp.ones(valid.shape[:-1] + (1,), dtype=bool), + valid], axis=-1), slot_dk.shape) + if dk_rule == "min": + cell_dk = jnp.min(jnp.where(dk_valid, slot_dk, jnp.inf), axis=-1) + elif dk_rule == "softmin": + alpha = data.congression_dk_alpha + log_share = jnp.where(dk_valid, -jnp.log(num_plasmids)[..., None], + -jnp.inf) + cell_dk = -jax.scipy.special.logsumexp( + log_share - alpha * jnp.where(dk_valid, slot_dk, 0.0), + axis=-1) / alpha + else: + raise ValueError(f"unknown congression_dk_rule {dk_rule!r}") # --- stack classes on a leading axis (clean first) -------------------- def stack(clean, congressed): diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index dbd30384..42bb0d6f 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -696,6 +696,9 @@ def _setup_batching(growth_genotypes, # something new. # Rules for a congressed cell's theta (transformation/mixture.py). _CONGRESSION_THETA_RULES = ("homodimer", "heterodimer", "max") +# Rules for a congressed cell's dk_geno (the soft-min family; only +# "softmin" takes congression_dk_alpha). +_CONGRESSION_DK_RULES = ("dilution", "softmin", "min") _RETIRED_TRANSFORMATIONS = { "empirical": ( @@ -737,6 +740,34 @@ def _check_congression_sets(congression_sets): return tuple(values) +def _check_congression_dk_alpha(congression_dk_rule, congression_dk_alpha): + """ + Validate ``congression_dk_alpha`` against the dk rule: ``"softmin"`` + needs a finite alpha > 0 (returned as a float); every other rule takes + none (returns None). + """ + if congression_dk_rule != "softmin": + if congression_dk_alpha is not None: + raise ValueError( + f"congression_dk_alpha is only used by " + f"congression_dk_rule='softmin'; got " + f"congression_dk_rule={congression_dk_rule!r} with " + f"congression_dk_alpha={congression_dk_alpha!r}." + ) + return None + try: + alpha = float(congression_dk_alpha) + except (TypeError, ValueError): + alpha = None + if alpha is None or not np.isfinite(alpha) or alpha <= 0: + raise ValueError( + f"congression_dk_rule='softmin' needs a finite " + f"congression_dk_alpha > 0; got {congression_dk_alpha!r}. Use " + f"'dilution' or 'min' for the alpha -> 0 and alpha -> inf limits." + ) + return alpha + + class ModelOrchestrator: """ Manages the data wrangling and configuration for the JAX growth model. @@ -816,6 +847,16 @@ class ModelOrchestrator: 2)``) or ``"max"`` (the highest-theta plasmid sets theta and activity). The homodimer and heterodimer rules require ``activity='fixed'`` (activity 1). + congression_dk_rule : str, optional + How the congression mixture builds a congressed cell's dk_geno from + its plasmids', the soft-min family ``dk_cell = -(1/alpha) log sum_g + x_g exp(-alpha dk_g)``: ``"dilution"`` (default; alpha -> 0, the + share-weighted mean), ``"softmin"`` (finite alpha, from + ``congression_dk_alpha``) or ``"min"`` (alpha -> inf, the worst + variant sets the cost). + congression_dk_alpha : float, optional + alpha for ``congression_dk_rule="softmin"`` (> 0, in units of 1/dk); + required by that rule and refused by the others. Attributes ---------- @@ -862,7 +903,9 @@ def __init__(self, base_growth_df=None, congression_sets=(12, 3, 1), congression_seed=0, - congression_theta_rule="homodimer"): + congression_theta_rule="homodimer", + congression_dk_rule="dilution", + congression_dk_alpha=None): self._ln_cfu_df = growth_df self._binding_df = binding_df @@ -897,6 +940,9 @@ def __init__(self, self._congression_sets = _check_congression_sets(congression_sets) self._congression_seed = int(congression_seed) self._congression_theta_rule = congression_theta_rule + self._congression_dk_rule = congression_dk_rule + self._congression_dk_alpha = _check_congression_dk_alpha( + congression_dk_rule, congression_dk_alpha) if self._transformation in _RETIRED_TRANSFORMATIONS: raise ValueError(_RETIRED_TRANSFORMATIONS[self._transformation]) @@ -907,6 +953,12 @@ def __init__(self, f"{list(_CONGRESSION_THETA_RULES)}; got " f"{self._congression_theta_rule!r}." ) + if self._congression_dk_rule not in _CONGRESSION_DK_RULES: + raise ValueError( + f"congression_dk_rule must be one of " + f"{list(_CONGRESSION_DK_RULES)}; got " + f"{self._congression_dk_rule!r}." + ) if (self._transformation == "mixture" and self._congression_theta_rule != "max" and self._activity != "fixed"): @@ -1105,7 +1157,9 @@ def _initialize_data(self): "bulk_fraction":jnp.array(bulk_fraction,dtype=float), "coresident_idx":jnp.array(coresident_idx,dtype=jnp.int32), "coresident_n":jnp.array(coresident_n,dtype=jnp.int32), - "congression_theta_rule":self._congression_theta_rule} + "congression_theta_rule":self._congression_theta_rule, + "congression_dk_rule":self._congression_dk_rule, + "congression_dk_alpha":self._congression_dk_alpha} # Grab the titrant concentration and log_titrant_conc (1D array from # the tensor labels along dimension 6) @@ -2082,4 +2136,6 @@ def settings(self): "congression_sets": list(self._congression_sets), "congression_seed": self._congression_seed, "congression_theta_rule": self._congression_theta_rule, + "congression_dk_rule": self._congression_dk_rule, + "congression_dk_alpha": self._congression_dk_alpha, } diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index a39059a4..fba9213a 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -135,6 +135,8 @@ def configure_model(binding_df, transformation_model="single", transformation_lambda=None, congression_theta_rule="homodimer", + congression_dk_rule="dilution", + congression_dk_alpha=None, theta_rescale_model="passthrough", theta_growth_noise_model="zero", theta_binding_noise_model="zero", @@ -234,6 +236,15 @@ def configure_model(binding_df, from its plasmids' thetas: 'homodimer' (default), 'heterodimer' or 'max'. The homodimer and heterodimer rules require activity_model 'fixed'. Ignored by 'single'. + congression_dk_rule : str, optional + How the 'mixture' transformation builds a congressed cell's dk_geno + from its plasmids': 'dilution' (default; the share-weighted mean), + 'softmin' (with congression_dk_alpha) or 'min' (the worst variant + sets the cost). Ignored by 'single'. + congression_dk_alpha : float, optional + alpha for congression_dk_rule 'softmin' (> 0, in units of 1/dk): + ``dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g)``. Required by + 'softmin', refused by the other rules. theta_rescale_model : str, optional Rescaling applied to theta before it enters the growth model. Allowed values are 'passthrough' (default, identity) or 'logit' (maps theta to @@ -375,6 +386,8 @@ def configure_model(binding_df, transformation=transformation_model, transformation_lambda=transformation_lambda, congression_theta_rule=congression_theta_rule, + congression_dk_rule=congression_dk_rule, + congression_dk_alpha=congression_dk_alpha, theta_rescale=theta_rescale_model, theta_growth_noise=theta_growth_noise_model, theta_binding_noise=theta_binding_noise_model, @@ -409,6 +422,7 @@ def configure_model(binding_df, def main(): return generalized_main(configure_model, manual_arg_types={"binding_df":str, + "congression_dk_alpha":float, "growth_df":str, "presplit_df":str, "base_growth_df":str, diff --git a/tests/tfscreen/simulate/test_cell_rules.py b/tests/tfscreen/simulate/test_cell_rules.py index c549a0db..3a10676f 100644 --- a/tests/tfscreen/simulate/test_cell_rules.py +++ b/tests/tfscreen/simulate/test_cell_rules.py @@ -8,6 +8,8 @@ THETA_EPS, THETA_RULES, dk_dilution, + dk_min, + dk_softmin, theta_heterodimer, theta_homodimer, theta_max, @@ -35,7 +37,7 @@ def _cells(): def test_registry(): assert set(THETA_RULES) == {"max", "homodimer", "heterodimer"} - assert set(DK_RULES) == {"dilution"} + assert set(DK_RULES) == {"dilution", "softmin", "min"} def test_max_takes_highest_theta_and_its_activity(): @@ -124,3 +126,59 @@ def test_dk_dilution_is_share_weighted_mean(): dk = np.array([[0.0, -0.02, 5.0], [-0.03, 0.0, 0.03]]) shares = np.array([[0.5, 0.5, 0.0], [1 / 3, 1 / 3, 1 / 3]]) np.testing.assert_allclose(dk_dilution(dk, shares), [-0.01, 0.0]) + + +def _dk_cells(): + dk = np.array([[0.0, -0.03, 5.0], [-0.03, 0.0, 0.03]]) + shares = np.array([[0.5, 0.5, 0.0], [1 / 3, 1 / 3, 1 / 3]]) + return dk, shares + + +def test_dk_min_takes_worst_valid_slot(): + dk, shares = _dk_cells() + np.testing.assert_allclose(dk_min(dk, shares), [-0.03, -0.03]) + + +def test_dk_softmin_matches_hand_calculation(): + dk, shares = _dk_cells() + alpha = 100.0 + expected = [-np.log(0.5 * np.exp(0.0) + 0.5 * np.exp(3.0)) / alpha, + -np.log(np.mean(np.exp(-alpha * dk[1]))) / alpha] + np.testing.assert_allclose(dk_softmin(dk, shares, alpha=alpha), expected) + # The worked example in the plan: 1:1 cell, dk 0 and -0.03 -> -0.024 + assert dk_softmin(dk, shares, alpha=alpha)[0] == pytest.approx(-0.0236, abs=1e-4) + + +def test_dk_softmin_limits_and_order(): + dk, shares = _dk_cells() + dil, mn = dk_dilution(dk, shares), dk_min(dk, shares) + np.testing.assert_allclose(dk_softmin(dk, shares, alpha=1e-6), dil, atol=1e-9) + np.testing.assert_allclose(dk_softmin(dk, shares, alpha=1e6), mn, atol=1e-5) + soft = dk_softmin(dk, shares, alpha=50.0) + assert np.all(mn <= soft) and np.all(soft <= dil) + + +@pytest.mark.parametrize("rule", [dk_dilution, dk_min]) +def test_dk_rules_without_alpha_refuse_one(rule): + dk, shares = _dk_cells() + with pytest.raises(ValueError, match="takes no alpha"): + rule(dk, shares, alpha=10.0) + + +@pytest.mark.parametrize("alpha", [None, 0.0, -1.0, np.inf]) +def test_dk_softmin_needs_positive_finite_alpha(alpha): + dk, shares = _dk_cells() + with pytest.raises(ValueError, match="alpha > 0"): + dk_softmin(dk, shares, alpha=alpha) + + +@pytest.mark.parametrize("rule,kwargs", [(dk_dilution, {}), (dk_min, {}), + (dk_softmin, {"alpha": 100.0})]) +def test_dk_rules_single_plasmid_and_nan(rule, kwargs): + single = np.array([[-0.02, 7.0]]) + np.testing.assert_allclose(rule(single, np.array([[1.0, 0.0]]), **kwargs), + [-0.02], atol=1e-12) + dk, shares = _dk_cells() + dk[1, 0] = np.nan + out = rule(dk, shares, **kwargs) + assert np.isnan(out[1]) and np.isfinite(out[0]) diff --git a/tests/tfscreen/simulate/test_selection_experiment.py b/tests/tfscreen/simulate/test_selection_experiment.py index 0a3c4896..8e0a1207 100644 --- a/tests/tfscreen/simulate/test_selection_experiment.py +++ b/tests/tfscreen/simulate/test_selection_experiment.py @@ -274,6 +274,38 @@ def test_check_cf_congression_rule_defaults(base_config: dict): assert cf["congression_dk_rule"] == "dilution" +def test_check_cf_dk_alpha_default_none(base_config: dict): + cf = _check_cf(dict(base_config)) + assert cf["congression_dk_alpha"] is None + + +def test_check_cf_softmin_takes_alpha(base_config: dict): + cf = dict(base_config) + cf["congression_dk_rule"] = "softmin" + cf["congression_dk_alpha"] = 100 + cf = _check_cf(cf) + assert cf["congression_dk_alpha"] == 100.0 + assert isinstance(cf["congression_dk_alpha"], float) + + +@pytest.mark.parametrize("alpha", [None, 0, -1.0, float("inf")]) +def test_check_cf_softmin_needs_positive_finite_alpha(base_config: dict, alpha): + cf = dict(base_config) + cf["congression_dk_rule"] = "softmin" + cf["congression_dk_alpha"] = alpha + with pytest.raises(ValueError, match="congression_dk_alpha"): + _check_cf(cf) + + +@pytest.mark.parametrize("rule", ["dilution", "min"]) +def test_check_cf_other_dk_rules_refuse_alpha(base_config: dict, rule): + cf = dict(base_config) + cf["congression_dk_rule"] = rule + cf["congression_dk_alpha"] = 100.0 + with pytest.raises(ValueError, match="only used by"): + _check_cf(cf) + + @pytest.mark.parametrize("key", ["congression_theta_rule", "congression_dk_rule"]) def test_check_cf_bad_congression_rule(base_config: dict, key): cf = dict(base_config) @@ -664,6 +696,26 @@ def test_cell_kt_co_transformed_cell_uses_cell_physics(): np.testing.assert_allclose(result[1], gkt[2] + tube_kt) +@pytest.mark.parametrize("dk_rule,alpha", [("min", None), ("softmin", 100.0)]) +def test_cell_kt_dk_rule(dk_rule, alpha): + """The congression_dk_rule (and its alpha) sets a co-transformed cell's + dk_geno.""" + cf, theta, activity, dk, info, gkt, kt = _cell_kt_inputs() + cf["congression_dk_rule"] = dk_rule + cf["congression_dk_alpha"] = alpha + transformants = np.array([[0, 1]]) + trans_mask = np.zeros((1, 2), dtype=bool) + result = _cell_kt(transformants, trans_mask, gkt, theta, activity, dk, + info, np.zeros(2), cf) + if dk_rule == "min": + dk_cell = min(dk[0], dk[1]) + else: + dk_cell = -np.log(0.5*np.exp(-alpha*dk[0]) + + 0.5*np.exp(-alpha*dk[1])) / alpha + np.testing.assert_allclose(result[0], [kt(0.8, 0.5, dk_cell), + kt(0.9, 1.0, dk_cell)]) + + def test_cell_kt_duplicate_genotype_matches_genotype(): """A cell with two copies of one genotype grows like that genotype.""" cf, theta, activity, dk, info, gkt, _ = _cell_kt_inputs() diff --git a/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py index e3724d0e..5c62e8d0 100644 --- a/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py +++ b/tests/tfscreen/tfmodel/generative/components/transformation/test_mixture.py @@ -178,7 +178,8 @@ def mix(lam): # --------------------------------------------------------------------------- def _toy(seed=0, num_genotype=6, num_tn=2, num_tc=3, - batch_idx=(4, 0, 2), sets=(3, 2, 1), rule="max"): + batch_idx=(4, 0, 2), sets=(3, 2, 1), rule="max", + dk_rule="dilution", dk_alpha=None): rng = np.random.default_rng(seed) batch_idx = np.array(batch_idx) counts = np.asarray(_counts(list(sets))) @@ -202,7 +203,9 @@ def _toy(seed=0, num_genotype=6, num_tn=2, num_tc=3, bulk_fraction=jnp.array(bulk_fraction), coresident_idx=jnp.array(coresident_idx), coresident_n=jnp.array(counts), - congression_theta_rule=rule) + congression_theta_rule=rule, + congression_dk_rule=dk_rule, + congression_dk_alpha=dk_alpha) # The batch's own values; theta perturbed (noise acts on the focal theta # only), so the focal plasmid is not just its population value. @@ -249,8 +252,14 @@ def _reference_classes(data, focal, population, lam): cell = np.log(np.mean(np.exp(p * logit))) / p c_theta[1 + k, i, j, b] = 1.0 / (1.0 + np.exp(-cell)) c_act[1 + k, i, j, b] = 1.0 - c_dk[1 + k, b] = np.mean([dk_geno.reshape(-1)[b]] + - [dk_pop[h] for h in co]) + dks = np.array([dk_geno.reshape(-1)[b]] + [dk_pop[h] for h in co]) + if data.congression_dk_rule == "dilution": + c_dk[1 + k, b] = np.mean(dks) + elif data.congression_dk_rule == "min": + c_dk[1 + k, b] = np.min(dks) + else: + a = data.congression_dk_alpha + c_dk[1 + k, b] = -np.log(np.mean(np.exp(-a * dks))) / a f = np.asarray(data.bulk_fraction)[batch_idx] w_cong = f * (1.0 - _ztp_pmf(1, lam)) @@ -266,9 +275,16 @@ def _reference_classes(data, focal, population, lam): return c_theta, c_act, c_dk, w -@pytest.mark.parametrize("rule", ["max", "homodimer", "heterodimer"]) -def test_cell_classes_match_reference(rule): - data, focal, population = _toy(rule=rule) +@pytest.mark.parametrize("rule,dk_rule,dk_alpha", + [("max", "dilution", None), + ("homodimer", "dilution", None), + ("heterodimer", "dilution", None), + ("homodimer", "softmin", 100.0), + ("homodimer", "min", None), + ("max", "min", None)]) +def test_cell_classes_match_reference(rule, dk_rule, dk_alpha): + data, focal, population = _toy(rule=rule, dk_rule=dk_rule, + dk_alpha=dk_alpha) lam = 0.357 classes = mixture.cell_classes(focal, population, jnp.array(lam), data) c_theta, c_act, c_dk, w = _reference_classes(data, focal, population, lam) @@ -339,3 +355,83 @@ def test_partition_rule_matches_simulator(): np.asarray(classes.theta)[1 + k, 0, 0, 0, 0, :, :, b].ravel(), cell[0], rtol=1e-5) + + +def _cell_dk(dk_rule, dk_alpha=None, **kwargs): + data, focal, population = _toy(rule="homodimer", dk_rule=dk_rule, + dk_alpha=dk_alpha, **kwargs) + classes = mixture.cell_classes(focal, population, jnp.array(0.357), data) + return np.asarray(classes.dk_geno) + + +def test_dk_rules_order_and_limits(): + """min <= softmin <= dilution; softmin tends to dilution as alpha -> 0 + and to min as alpha -> inf.""" + dilution, minimum = _cell_dk("dilution"), _cell_dk("min") + soft = _cell_dk("softmin", 100.0) + assert np.all(minimum <= soft + 1e-12) + assert np.all(soft <= dilution + 1e-12) + assert np.any(minimum < dilution - 1e-4) + # Small alpha: within alpha * var / 2 (< 1e-5 here) of dilution. (In + # float32 the soft-min's absolute error is ~1e-7 / alpha, so much smaller + # alpha is a job for 'dilution'.) + np.testing.assert_allclose(_cell_dk("softmin", 0.1), dilution, atol=1e-5) + np.testing.assert_allclose(_cell_dk("softmin", 1e5), minimum, atol=1e-4) + # The clean class keeps the focal dk under every rule. + np.testing.assert_array_equal(soft[0], dilution[0]) + + +@pytest.mark.parametrize("dk_rule,dk_alpha", [("softmin", 100.0), + ("min", None)]) +def test_dk_rule_single_plasmid_keeps_own_dk(dk_rule, dk_alpha): + data, focal, population = _toy(rule="homodimer", sets=(1,), + dk_rule=dk_rule, dk_alpha=dk_alpha) + data.coresident_idx = jnp.full_like(data.coresident_idx, -1) + classes = mixture.cell_classes(focal, population, jnp.array(0.357), data) + np.testing.assert_allclose(np.asarray(classes.dk_geno)[1].ravel(), + np.asarray(focal[2]).ravel(), rtol=1e-6) + + +@pytest.mark.parametrize("dk_rule,dk_alpha", [("dilution", None), + ("softmin", 100.0), + ("min", None)]) +def test_dk_rule_matches_simulator(dk_rule, dk_alpha): + """The fit's congressed-cell dk equals simulate/cell_rules's DK_RULES.""" + from tfscreen.simulate.cell_rules import DK_RULES + data, focal, population = _toy(rule="homodimer", dk_rule=dk_rule, + dk_alpha=dk_alpha) + classes = mixture.cell_classes(focal, population, jnp.array(0.357), data) + dk_geno, dk_pop = np.asarray(focal[2]).ravel(), population[2] + idx = np.asarray(data.coresident_idx) + n_max = idx.shape[2] + 1 + for b, g in enumerate(np.asarray(data.batch_idx)): + for k in range(idx.shape[1]): + co = [h for h in idx[g, k] if h >= 0] + m = len(co) + 1 + slots = np.zeros((1, n_max)) + slots[0, :m] = [dk_geno[b]] + [dk_pop[h] for h in co] + shares = np.zeros((1, n_max)) + shares[0, :m] = 1.0 / m + expected = DK_RULES[dk_rule](slots, shares, alpha=dk_alpha) + np.testing.assert_allclose( + np.asarray(classes.dk_geno)[1 + k].ravel()[b], expected[0], + rtol=1e-5, atol=1e-9) + + +@pytest.mark.parametrize("dk_rule,dk_alpha", [("softmin", 100.0), + ("min", None)]) +def test_dk_rule_gradient_is_finite(dk_rule, dk_alpha): + data, focal, population = _toy(rule="homodimer", dk_rule=dk_rule, + dk_alpha=dk_alpha) + theta, activity, _ = focal + + def total(dk_geno, dk_pop): + classes = mixture.cell_classes( + (theta, activity, dk_geno), + (population[0], population[1], dk_pop), jnp.array(0.357), data) + return jnp.sum(classes.dk_geno) + + grads = jax.grad(total, argnums=(0, 1))(jnp.array(focal[2]), + jnp.array(population[2])) + for grad in grads: + assert np.all(np.isfinite(np.asarray(grad))) diff --git a/tests/tfscreen/tfmodel/generative/test_mixture_model.py b/tests/tfscreen/tfmodel/generative/test_mixture_model.py index 3b29b6d2..2a16d081 100644 --- a/tests/tfscreen/tfmodel/generative/test_mixture_model.py +++ b/tests/tfscreen/tfmodel/generative/test_mixture_model.py @@ -175,6 +175,9 @@ def test_defaults_are_homodimer_and_fixed_activity(): assert orchestrator.settings["activity"] == "fixed" assert orchestrator.settings["congression_theta_rule"] == "homodimer" assert orchestrator.data.growth.congression_theta_rule == "homodimer" + assert orchestrator.settings["congression_dk_rule"] == "dilution" + assert orchestrator.settings["congression_dk_alpha"] is None + assert orchestrator.data.growth.congression_dk_rule == "dilution" def test_max_rule_allows_learned_activity(): @@ -204,3 +207,29 @@ def test_rules_give_different_predictions(): assert not np.allclose(preds["max"], preds["homodimer"]) assert not np.allclose(preds["homodimer"], preds["heterodimer"]) + + +@pytest.mark.parametrize("dk_rule,dk_alpha", [("dilution", None), + ("softmin", 100.0), + ("min", None)]) +def test_every_dk_rule_runs_and_survives_batching(dk_rule, dk_alpha): + orchestrator = _orchestrator("mixture", congression_dk_rule=dk_rule, + congression_dk_alpha=dk_alpha) + batch = _full_batch(orchestrator) + assert batch.growth.congression_dk_rule == dk_rule + assert batch.growth.congression_dk_alpha == dk_alpha + pred = np.asarray(_trace(orchestrator)["growth_pred"]["value"]) + assert np.all(np.isfinite(pred)) + + +def test_dk_rules_give_different_predictions(): + """Same latents, different dk rules: the congressed classes differ.""" + base = _orchestrator("mixture") + latents = _latents(_trace(base)) + latents["transformation_lam"] = jnp.array(1.0) + preds = {} + for dk_rule, dk_alpha in (("dilution", None), ("min", None)): + o = _orchestrator("mixture", congression_dk_rule=dk_rule, + congression_dk_alpha=dk_alpha) + preds[dk_rule] = np.asarray(_trace(o, latents)["growth_pred"]["value"]) + assert not np.allclose(preds["dilution"], preds["min"]) diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index 4c8cfca6..3ec52f78 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -882,6 +882,31 @@ def test_model_orchestrator_partition_rules_need_fixed_activity(rule): congression_theta_rule=rule) +def test_model_orchestrator_refuses_unknown_congression_dk_rule(): + with pytest.raises(ValueError, match="congression_dk_rule must be one of"): + ModelOrchestrator("g.csv", "b.csv", congression_dk_rule="max") + + +@pytest.mark.parametrize("alpha", [None, 0.0, -2.0, float("inf"), "x"]) +def test_model_orchestrator_softmin_needs_positive_finite_alpha(alpha): + with pytest.raises(ValueError, match="needs a finite"): + ModelOrchestrator("g.csv", "b.csv", congression_dk_rule="softmin", + congression_dk_alpha=alpha) + + +@pytest.mark.parametrize("rule", ["dilution", "min"]) +def test_model_orchestrator_other_dk_rules_refuse_alpha(rule): + with pytest.raises(ValueError, match="only used by"): + ModelOrchestrator("g.csv", "b.csv", congression_dk_rule=rule, + congression_dk_alpha=10.0) + + +def test_check_congression_dk_alpha_casts(): + from tfscreen.tfmodel.model_orchestrator import _check_congression_dk_alpha + assert _check_congression_dk_alpha("softmin", "100") == 100.0 + assert _check_congression_dk_alpha("dilution", None) is None + + def test_model_class_properties(initialized_model_class): model = initialized_model_class model._jax_model = "jm" @@ -915,6 +940,8 @@ def test_model_class_properties(initialized_model_class): model._congression_sets = (12, 3, 1) model._congression_seed = 0 model._congression_theta_rule = "homodimer" + model._congression_dk_rule = "softmin" + model._congression_dk_alpha = 50.0 assert ModelOrchestrator.jax_model.fget(model) == "jm" assert ModelOrchestrator.jax_model_guide.fget(model) == "jmg" @@ -923,6 +950,8 @@ def test_model_class_properties(initialized_model_class): assert ModelOrchestrator.init_params.fget(model) == "ip" assert ModelOrchestrator.settings.fget(model)["activity"] == "a" assert ModelOrchestrator.settings.fget(model)["congression_theta_rule"] == "homodimer" + assert ModelOrchestrator.settings.fget(model)["congression_dk_rule"] == "softmin" + assert ModelOrchestrator.settings.fget(model)["congression_dk_alpha"] == 50.0 assert ModelOrchestrator.settings.fget(model)["theta"] == "t" assert ModelOrchestrator.settings.fget(model)["transformation"] == "tr" assert ModelOrchestrator.settings.fget(model)["transformation_lambda"] is None From b949095f603ae38c31fb250aede4e897381b4d56 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 12:18:48 -0700 Subject: [PATCH 048/208] Add an analysis roadmap; document the sampling protocol The growth-only relative fit, the count likelihood and modeling each tube's total population from OD600 all touch the orchestrator, the configure CLI and the growth likelihood, and all interact with the congression mixture still being finished on main. Order them in one plan so they are built compatibly on a parallel branch. planning/analysis-roadmap.md (new, active): - Reads and totals: reads measure frequencies; a growth shift shared by a whole tube cancels from them, so the absolute scale (and with it k_c, and m_c in the relative fit) comes only from the tube totals: the presplit OD600 and dilution (a known start per replicate), OD600 on visible tubes, and nothing on tubes too sparse for the reader. - Disposition of every idea in planning/. - Constraints C1-C11, including: a relative-X fit can use only the max congression rule (homodimer needs absolute theta); observers become a config setting (lncfu | counts); tube noise lives in the OD600 likelihood, not on genotypes; the calibration method is generic and the calibration data stay out of the repo; the calibration's own error is shared by every tube. - Steps 0-9 in two tracks: studies (growth-binding map, read noise, OD600), binding-optional plumbing, counts and OD600 through processing, tfs-calibrate-od600, simulator realism, the relative-X fit, a population model in the fit, the count likelihood, a growth regime test and purge (7b), the growth-binding map, and a joint fit with the learned map. - Decisions D1-D8, D10, D12-D13 (no censoring; sample_offset becomes a per-tube composition offset; wt pinned at 0 and 1 mM IPTG; X shared by kan and 4CP; no per-row or extraction-batch term; latent calibration parameters; breaking changes allowed; one growth-regime framing). Open: D9 (population curve form), D11 (does the calibration transfer to selected cells). planning/absolute-abundance-measurements.md (new, idea): bench measurements that fix tube totals where OD600 is blind. For the current data: wt monoculture growth rates at the gauge concentrations, OD600 against plate counts under selection, qPCR of leftover DNA. For the next screen: a cell spike-in counting standard, or flow cytometry with counting beads. Idea files: - growth-only-relative-fit.md: only the max congression rule is invariant on a relative scale, not the homodimer default; record the gauge and shared-X decisions. - per-sample-level-offset.md, count-likelihood.md: point to the population-curve design; totals come from OD600, not plating. docs/source/process-raw.rst, CLAUDE.md: document the protocol (presplit OD600 and one identical dilution into every tube; one tube per condition, concentration and timepoint; whole rows pulled, read, spun down and frozen; extraction in batches of about 20 that were not recorded for the current data; one PCR block), the ln(cfu/mL * 5 mL) units, why a total smoothed across bioreplicates beats per-tube CFU, and that a tube below the OD600 threshold gives only an upper bound. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 4 +- docs/source/process-raw.rst | 73 ++- planning/absolute-abundance-measurements.md | 108 ++++ planning/analysis-roadmap.md | 518 ++++++++++++++++++++ planning/count-likelihood.md | 6 +- planning/growth-only-relative-fit.md | 14 +- planning/per-sample-level-offset.md | 10 +- 7 files changed, 719 insertions(+), 14 deletions(-) create mode 100644 planning/absolute-abundance-measurements.md create mode 100644 planning/analysis-roadmap.md diff --git a/CLAUDE.md b/CLAUDE.md index 61f17192..bb236593 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -522,8 +522,8 @@ Both grid CLIs import from `tfscreen.util.grid_utils` for run-name generation, J ### Terminology - **Condition**: unique growth setting (marker + selection) — same avg growth rate for same genotype -- **Sample**: one experimental tube (replicate + condition) -- **Timepoint**: one aliquot (replicate + condition + time) +- **Tube = sequenced sample = timepoint**: after `presplit` the culture is split into one tube per condition × titrant × planned timepoint (a grid: rows = timepoints, columns = IPTG); pre-growth and selection both happen in the tubes; a timepoint is taken by pulling every tube in its row and reading its OD600, spinning it down and freezing it; sequencing comes later. Total CFU per tube comes from OD600 through a lab-specific calibration (not in this repo). There are no aliquots from a shared tube (stopping the shaker to pipette disturbed the trajectories more than tube-to-tube noise does). So anything tube-level (growth environment, OD600 reading, PCR) is independent across timepoints, not a trajectory-wide effect. Rationale: `docs/source/process-raw.rst`, "One tube per time-point" +- **Sample** (in `sample_df`/`sample_ln_cfu`): one sequenced tube, i.e. one replicate × condition × titrant × time. Older text sometimes says "sample" for a replicate × condition; read it per this entry - **theta (θ)**: operator occupancy — fraction of operators bound by TF - **A**: per-genotype TF activity (multiplied by theta to scale occupancy) - **dk_geno**: pleiotropic growth effect of mutation independent of TF activity diff --git a/docs/source/process-raw.rst b/docs/source/process-raw.rst index 768dfb19..ca06cc2f 100644 --- a/docs/source/process-raw.rst +++ b/docs/source/process-raw.rst @@ -4,15 +4,82 @@ Processing Raw Data A typical TF screen involves growing bacteria transformed with a plasmid-encoded library of TF variants under one or more selection conditions (e.g. antibiotic resistance -driven by a TF-regulated promoter). At each time-point an aliquot is -plated to measure total colony-forming units (CFU) and deep-sequenced so -that the absolute abundance of every genotype can be determined. The raw +driven by a TF-regulated promoter). Each time-point is a tube of its own +(see "One tube per time-point" below). Its total colony-forming units (CFU) +are estimated, typically from OD600 through a lab-specific calibration, and +it is deep-sequenced, so that the absolute abundance of every genotype can be +determined. The raw inputs to the pipeline are paired-end FASTQ files (one pair per sample) and a sample metadata table (``sample_df``) that links each sequenced tube to its biological context and its measured CFU count. The pipeline converts read counts into per-genotype log-CFU estimates (``ln_cfu``) that feed the hierarchical Bayesian growth model. +One tube per time-point +----------------------- + +The protocol: + +1. Transform the library. +2. Grow the transformed culture to a set OD. +3. Take the ``presplit`` sample and read its OD600. +4. Dilute the culture by the same factor into every tube, one per + condition, titrant concentration and planned time-point. Every tube of a + replicate therefore starts from the same, known total (the presplit + OD600 estimate divided by the dilution factor). For a titration this is a grid: rows are + time-points, columns are IPTG concentrations. +5. At each time-point, pull every tube in that row. Each pulled tube's + OD600 is read, and the tubes are spun down and frozen immediately; the spread in stop time within + a row is seconds, negligible on the time scale of growth. +6. After the experiment, all samples are processed together: thaw and DNA + extraction in batches of about 20 (three batches for 60 samples), then + one PCR block for every sample, then sequencing. Record each sample's + extraction batch; for the current dataset it was not recorded (batches + generally, but not reliably, followed processing order). + +Pre-growth and selection both happen in the tubes, after the split. OD600 +is read on three bioreplicates of the experiment; two are sequenced. + +Total CFU per tube comes from OD600 through an OD-to-CFU calibration. The +calibration depends on the plate reader, plate, volume and strain, so it is +the lab's, not part of this package; the pipeline takes the resulting CFU +estimate per tube (``sample_cfu`` and its uncertainty, or the log-space +equivalents). A calibration gives cfu/mL; the pipeline's ``ln_cfu`` is cells +in the 5 mL tube, ``ln(cfu/mL * 5 mL)``. Under the strongest selection a +tube may never reach the reader's detection threshold, so its OD600 bounds +its total from above rather than measuring it. + +Why tubes and not aliquots: pulling aliquots from a single tube over time +meant stopping the shaker, pipetting and returning the tube across many +IPTG conditions, and that disturbed the growth trajectories more than the +tube-to-tube differences of this design do. + +Consequences for the model: + +- A sequenced sample *is* a tube, and the time-points of one condition come + from different tubes. Anything that affects a whole tube (its growth + environment over ``t_pre + t_sel``, its OD600 reading, its PCR) is independent + from one time-point to the next, not carried along a trajectory. The + model's per-tube offset (``sample_offset``) is indexed accordingly: one + offset per replicate x time x condition x titrant, scaled by + ``t_pre + t_sel``. +- A growth difference shared by every cell in a tube changes every + genotype's abundance by the same factor, so it does not change the + genotype *frequencies* the reads measure. It enters ``ln_cfu`` only + through the tube's total CFU. This is why a total smoothed across + bioreplicates (earlier analyses used the pooled mean per condition and + time-point) gives much steadier ``ln_cfu`` trajectories than each tube's + own OD600 estimate. +- Everything before the split (transformation, outgrowth) is shared by all + tubes of a replicate. It sets each genotype's starting abundance, + ``ln_cfu0``, which the ``presplit`` sample measures directly. +- No step is shared by the tubes of one row and not by the others: rows + are stopped within seconds and processed with everything else. The one + batched step is DNA extraction. Extraction yield does not change a + sample's genotype frequencies, so it should not shift ``ln_cfu``; if it + matters at all, it is through the amount of template going into PCR, + which changes how noisy the counts are. + There are three primary scripts for processing raw data: 1. ``tfs-process-fastq``: Analyses paired-end FASTQ files to count the diff --git a/planning/absolute-abundance-measurements.md b/planning/absolute-abundance-measurements.md new file mode 100644 index 00000000..9c2ae6cd --- /dev/null +++ b/planning/absolute-abundance-measurements.md @@ -0,0 +1,108 @@ +--- +title: Measurements that fix each tube's total population, especially under strong selection +status: idea +filed: 2026-09-26 +area: experiment +revisit_when: >- + Now for the few bench experiments the current dataset can still use + (they feed roadmap steps 5-6); again when the next screen is designed + (earlier timepoints, longer time base). +related: + - planning/analysis-roadmap.md + - docs/source/process-raw.rst + - src/tfscreen/tfmodel/generative/observe/base_growth.py +--- + +**Context:** The analysis roadmap (`planning/analysis-roadmap.md`, "Reads and +totals") builds each tube's total population `N_s` into the fit as a smooth +curve observed through OD600. Reads measure only frequencies, so the total is +the sole source of the absolute scale, and with it the condition growth rates +`k_c` and, in the relative fit, `m_c`. Two gaps (user, 2026-09-26): + +- **OD600 has no signal under the strongest selection.** Tubes that barely + grow (particularly kan) stay below the reader's detection threshold + (OD 0.096) at the timepoints we have. Censoring turns such a reading into + an upper bound, not a measurement. +- **The next screen should sample earlier**, to resolve growth over a longer + time base, and early tubes are below the threshold too. + +What already constrains a blind tube: + +- **The start.** The culture is grown to a presplit OD600, then diluted by + the same factor into every tube, so every tube of a replicate starts from + a known total (calibration plus pipetting error), shared by all of them. +- **Later, visible tubes of the same curve.** A smooth curve through a known + start and later detectable points interpolates the early blind ones. This + covers the future design if late points stay visible. +- **Other columns of the same condition.** `k_c` and `m_c` are shared by all + IPTG columns of a condition and each genotype's X is a smooth Hill curve + across columns, so a total that is visible in some columns constrains the + others through the reads. This fails when every column of a condition is + blind at a timepoint (then `k_c` trades freely with the curves), and it + leans on the Hill shape exactly where the gauge needs it most (wt at 0 and + 1 mM). + +**Idea:** add measurements of the absolute scale that do not depend on +OD600, chosen by what each one pins. + +*For the current dataset (a few targeted experiments):* + +1. **wt monoculture growth rates in each selection condition at the gauge + concentrations** (0 and 1 mM IPTG), in the screen's tube format and + volume, started at the screen's split density (known from presplit OD + and dilution; aminoglycoside killing depends on inoculum density, so + matching it matters), counted by plating over the screen's time window. + Three replicates. In the relative fit this measures `k_c` (wt at 1 mM) + and `m_c` (wt at 0 minus wt at 1 mM) directly: the gauge stops depending + on the blind tubes. Add one or two controls: a non-binding repressor + (IPTG-independent X, the internal standard of roadmap C4) and, if one + exists, a super-repressor. Needs a new observer (roadmap step 6): the + clean growth rate `k_c + dk_g + m_c X_g(c)` of a named genotype in a + named condition and concentration. Today's `base_growth` observes only + `k_ref + dk_geno` in one reference condition. Caveat: a monoculture + lacks the library's other cells (density, any cross-protection), which + the matched starting density only partly addresses. +2. **OD600 against plate counts under selection**, a few screen-like tubes + in the strongest conditions at densities the reader can see. Tests + whether the unstressed calibration transfers to stressed cells: dead + cells and filaments scatter light without forming colonies (roadmap + D11). Roughly ten to fifteen plates. +3. **qPCR of total plasmid in the extracted DNA, if any remains.** Relative + plasmid amount per sample, calibrated against the samples whose OD600 was + visible, gives relative totals for the blind ones. Limited by extraction + yield and copy number varying between samples, so it is a weak + constraint, but it reaches where OD600 cannot. Only if the DNA exists. + +*For the next screen (built into the design):* + +4. **A cell spike-in counting standard.** At each pull, before spin-down, + pipette a fixed volume of a quantified frozen stock of cells carrying a + plasmid with the same amplicon and a unique sequence absent from the + library (for example a synonymous-codon wt, the same trick planned for + telling spikes from bulk). Then `N_s = N_std * reads_library / + reads_std`, at any density sequencing can see, with no plates and one + pipetting step per tube. It is co-extracted and co-amplified with the + library, so extraction and PCR differences cancel; the stock is + quantified once, carefully, by plating. Choose `N_std` so the standard + takes about 1-5% of reads. It also cross-checks OD600 wherever both + exist. In the model it is one more "genotype" with a known, non-growing + abundance per tube, and it fixes `P_s` directly. +5. **Flow cytometry with counting beads** (and a live/dead stain), as an + alternative or check: absolute counts well below OD600's floor, and it + separates live from dead cells. Costs instrument time per tube. +6. Keep OD600 for the visible tubes and the presplit; it is free and the + calibration exists. + +**Why not now:** Filed while revising the roadmap; the user will choose which +bench experiments are feasible for the current analysis (a few, not many). + +**What it would take:** + +- Bench time for 1-3 (1 is the most valuable for the relative fit). +- Model: the monoculture growth observer (roadmap step 6); a spike-in + standard is a small addition to the count likelihood (roadmap step 7). +- Simulator: monoculture rates and a spike-in standard as optional outputs, + to size how much each helps before running it (roadmap step 4). +- Open question for 1: which conditions are blind at which timepoints in the + current data (roadmap study 0c answers it), so the experiment covers + exactly those. diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md new file mode 100644 index 00000000..00c444c4 --- /dev/null +++ b/planning/analysis-roadmap.md @@ -0,0 +1,518 @@ +--- +title: Roadmap for analysis improvements alongside the congression plan +status: active +filed: 2026-09-26 +area: tfmodel +revisit_when: >- + Active now, on a branch parallel to main. Update the step list as steps + finish, and re-check the constraints each time a congression step lands on + main. +related: + - planning/congression-physics-plan.md + - planning/growth-only-relative-fit.md + - planning/count-likelihood.md + - planning/per-sample-level-offset.md + - planning/empirical-mixture-refit.md + - planning/estimate-spike-fraction-from-growth-curvature.md + - planning/estimate-dk-alpha-by-varying-lambda.md + - planning/plasmid-segregation-low-copy.md + - planning/combination-specific-expression-effects.md + - planning/absolute-abundance-measurements.md + - src/tfscreen/process_raw/counts_to_lncfu.py + - src/tfscreen/tfmodel/generative/components/sample_offset/normal.py +--- + +## Why + +The congression plan (`planning/congression-physics-plan.md`) is close to +done on `main` (step 4 is implemented and its cross-rule grid is set up; step +5, the dk rule, is left). Its remaining work is mostly waiting for +simulations. This plan orders the other analysis changes, to be built in +parallel on a second branch, so that they fit together and fit with what +congression still changes. + +The user's priorities (2026-09-26): + +1. **Growth-only, wt-relative fit**, then measure the growth-binding map + empirically (`planning/growth-only-relative-fit.md`). +2. **Low-count genotypes handled rigorously** instead of by pseudocount + (`planning/count-likelihood.md`, with `planning/per-sample-level-offset.md` + as its first half). + +A third item joined on 2026-09-26: **model the total population in each +tube**, from OD600 through a lab-specific calibration, instead of ingesting a +per-tube CFU estimate. Once the fit works from reads, the total is the only +source of the absolute scale, so it has to be modeled at the same level. + +## Reads and totals: where each number comes from + +The experiment (`docs/source/process-raw.rst`, "One tube per time-point"): +after the `presplit` sample, a replicate's culture is split into one tube per +condition x IPTG concentration x timepoint; a timepoint pulls a whole row of +tubes. Each pulled tube gets an OD600 reading, is spun down and frozen, and +is later extracted and sequenced. OD600 is read for three bioreplicates; +two are sequenced. + +For tube s, with true total population `N_s` and genotype populations +`n_{g,s}`: + +- **Reads measure frequencies.** `reads_{g,s} ~ depth_s * n_{g,s} / N_s`, + plus a small per-tube composition offset `u_s` (PCR and genotype-calling + efficiency: the `__unknown__` fraction differs between tubes; the + denominator review measured it at about 0.026 ln units). +- **OD600 measures the total.** `N_s = cal(OD_s) * volume`, where `cal` is + the lab's OD-to-CFU calibration. +- **Tube growth noise cancels from frequencies.** A tube that grew a little + faster or slower than its neighbors (a shared rate shift `eps_s`) scales + every `n_{g,s}` and `N_s` by the same `exp(eps_s)`, so `n_{g,s} / N_s` does + not see it. It shows up only in the OD600 value. + +So the genotype model can predict smooth `n_{g,s}` (no tube term), the +population is a smooth curve `P_s = ln N_s` fitted across tubes, and +`ln_cfu_{g,s} = ln(freq_{g,s}) + P_s` is free of tube noise. This is why the +earlier practice (every tube assigned the pooled CFU of its condition and +timepoint across the three bioreplicates) worked so much better than per-tube +CFU: it removed the tube noise along with the OD noise. The replacement is a +smooth population curve per replicate x condition x concentration, with a +shared shape and per-replicate levels, observed through every OD600 reading, +including the bioreplicate that was not sequenced. + +The curve and the genotype model describe the same cells: +`P_s = logsumexp_g ln n_{g,s}`. That coupling is not enforced directly (it +would need every genotype in every step, which breaks mini-batching). It is +enforced by the data: fitting every genotype's frequency makes +`sum_g exp(ln n_{g,s} - P_s) = 1` up to the `__unknown__` share. + +What stays per tube and genotype is only what does not cancel: counting +noise, PCR jackpotting, and genotype-by-tube differences (a tube whose +selection was slightly stronger treats genotypes differently). + +**Where the total is known and where it is not** (user, 2026-09-26): + +- **Start: known.** The culture grows to a presplit OD600 and is diluted by + the same factor into every tube, so every tube of a replicate starts at + `cal(OD_presplit) * volume / dilution`, one value shared by all of them. + Units: `ln_cfu = ln(cfu/mL * 5 mL)`, the calibration giving cfu/mL. +- **Visible tubes: measured.** OD600 on every pulled tube, same reader, plate + and 200 uL as the calibration. +- **Blind tubes: not measured.** Under the strongest selection (particularly + kan) the population barely grows and OD600 stays below the detection + threshold at the timepoints we have; the next screen wants earlier + timepoints, also below it. Censoring gives only an upper bound. A blind + tube is constrained by its curve's known start and any later visible + points, and through the reads by other columns of the same condition + (`k_c`, `m_c` shared; each genotype's X smooth across columns). When every + column of a condition is blind at a timepoint, `k_c` trades freely with + the curves. Measurements that close this are filed separately: + `planning/absolute-abundance-measurements.md` (a few for the current + data, notably wt monoculture growth rates at the gauge concentrations; a + cell spike-in counting standard for the next screen). + +## Disposition of every idea in `planning/` + +| Idea | Disposition | Where | +|---|---|---| +| `growth-only-relative-fit` | **Track G**, priority 1 | steps 0a, 1, 5, 8, 9 | +| `count-likelihood` | **Track N**, priority 2 | steps 0b, 2, 4, 7 | +| `per-sample-level-offset` | Track N; becomes the population model plus the composition offset `u_s` | step 6 | +| OD-to-CFU at the experimental level (new, 2026-09-26) | Track N | steps 0c, 2, 3, 4, 6 | +| `absolute-abundance-measurements` (new, 2026-09-26) | Bench work, user's choice; the model side is in steps 4, 6, 7 | now (1-3), next screen (4-5) | +| censoring floor rows (congression 3.5 open item) | **Superseded by step 7**; not built (D1) | - | +| lowering the default `binding_weight` (congression open item) | Stays on main; this plan asks it to default to 1 (C7) | main | +| setting lambda from the measurement (congression open item) | Stays on main; independent of this plan | main | +| `empirical-mixture-refit` | Deferred until main's step 5 and this plan's step 5 | after step 9 | +| `estimate-spike-fraction-from-growth-curvature` | Park: future runs tag spikes by codon | - | +| `estimate-dk-alpha-by-varying-lambda` | Experiment; needs main's step 5 | - | +| `plasmid-segregation-low-copy` | Independent; simulator-only; pick up when the low-copy design is planned | any time | +| `combination-specific-expression-effects` | Park: needs bench data | - | + +## Compatibility constraints + +These hold across all steps. Each one names the collision it prevents. + +**C1. Congression rule vs relative X.** Step 4 on main made `homodimer` the +default theta rule. It takes `logit(theta)`, so it needs absolute theta in +(0, 1). The relative growth variable X is real-valued and defined only up to +an affine map, so the partition-function rules do not apply to it (the idea +file's invariance argument holds only for `max`: `max f(X) = f(max X)` for +increasing f). Rule: a relative-X theta component runs with `single` or with +`mixture` under `congression_theta_rule: max`, and the orchestrator refuses +`homodimer`/`heterodimer` with it (the same pattern as the refusal of a +learned activity). The dk rules (dilution now, soft-min after main's step 5) +act on dk in rate units and are unaffected. X must be oriented to increase +with repression for `max` to mean "tightest binder wins". The `max` branch of +`mixture.cell_classes` must not clip X to [THETA_EPS, 1 - THETA_EPS]; check +this in step 5. Once step 9 learns the map f, the partition-function rules +act on `f^-1(X)` and are available again. + +**C2. Observers become selectable.** Track N replaces the growth and presplit +likelihoods. Make the observation model an orchestrator setting written to +the config and carried as static data (`growth_likelihood: lncfu | counts`), +the same pattern as `congression_theta_rule`. Do not use a YAML `components:` +key: observers are not registry components, and every `components:` key +becomes an orchestrator kwarg. `tfs-prefit-calibration`, `tfs-sample-prior` +and prediction then follow the setting with no change of their own. + +**C3. Tube noise lives in the OD600 likelihood, not on genotypes.** A tube is +a timepoint (one sequenced sample, independent of the other timepoints). Its +shared growth deviation cancels from frequencies (see "Reads and totals"), so +no per-tube latent is added to every genotype for it. It appears as scatter +of OD600 about the population curve, with variance `(sigma_tube * t)^2` plus +the OD reading noise, over `t_pre + t_sel` (pre-growth and selection both +happen in the tube, D7). The only per-tube latent on genotypes is the +composition offset `u_s`, with a time-independent prior. Today's +`sample_offset/normal` (a per-tube rate offset on every genotype) becomes +that `u_s` (D2). The simulator's tube noise is already per timepoint (its +`condition_selector` includes `t_sel`). + +**C4. The absolute scale, and with it `k_c` and `m_c`, comes from OD600.** +From reads alone, any per-tube constant can be added to every genotype, which +absorbs `k_condition * t` entirely: reads fix relative growth (dk_geno and +`m * theta` differences), not absolute rates. The population curves fix the +absolute rates. In Track G this matters twice: `k_c` is wt's absolute growth +at 1 mM IPTG, and `m_c` is wt's growth difference between 0 and 1 mM, which +are different tubes (different grid columns), so it rests on the columns' +population curves. Genotypes whose X does not depend on IPTG (broken +repressors) are internal standards across columns and should be reported as a +check. Steps 5 and 6 must report `k_c` and `m_c` recovery, not only theta +coverage. + +**C5. Everything stays mini-batch safe.** The population curve parameters +and `u_s` are global sites (per replicate x condition x concentration, per +tube), like the condition parameters. The count likelihood is per genotype +and scaled by `scale_vector`. Index hopping into tube s comes from the same +genotype in the lane's other tubes, which are in the same batch row. +Sequencing errors that turn one genotype into another would couple +genotypes; leave them in `__unknown__`. The OD600 likelihood does not involve +genotypes and is never scaled. The new theta component follows the registry +rules (library-sized plates, `batch_idx` slicing, `return_population`, +`{site}_loc(s)`/`{site}_scale(s)`), and `test_batch_safety.py`, +`test_component_population.py` and `test_initialization.py` must pass +registry-wide. + +**C6. Process the raw data once.** Before any Track N model work, the +processed files carry: counts, per-tube depth (including `__unknown__`), and +a per-tube OD600 table covering every bioreplicate, sequenced or not, with +the reader's detection flag. The real data is reprocessed once (step 2) and +every later step reads the same files. `ln_cfu`/`ln_cfu_var` stay, for plots +and for the `lncfu` likelihood. + +**C7. Binding at weight 1 when it returns.** Track G removes binding from the +fit; step 9 brings it back as an explicit measurement of the map at weight 1 +with realistic SDs. The binding-weight change on main should therefore make +1 the default, not a smaller ratio. + +**C8. Downstream tools on the X scale.** Logit epistasis, `in_regime` and +anything that assumes theta in (0, 1) do not apply to X. `tfs-predict-theta` +must label its output as X for a relative fit (a column or metadata flag, so +nothing downstream mistakes one for the other); `tfs-extract-epistasis` +allows only `--scale add` on it until f is known. `tfs-summarize-calibration` +needs the simulated truth on the X scale: with growth linear in theta and +the gauge of D4 (`X_wt(c_lo) = 1`, `X_wt(c_hi) = 0`), true +`X_g(c) = (theta_g(c) - theta_wt(c_hi)) / (theta_wt(c_lo) - theta_wt(c_hi))`. + +**C9. Shared files, small diffs.** Main will still touch +`transformation/mixture.py`, `simulate/cell_rules.py`, +`simulate/selection_experiment.py` (cell rules), `model_orchestrator.py` and +`configure_model_cli.py` (a `congression_dk_rule` setting). This branch stays +out of `mixture.py` and `cell_rules.py` except for C1's check, keeps its +orchestrator and CLI changes additive, and syncs with main after every +congression step lands. + +**C10. The method is generic; the calibration is the lab's.** An OD-to-CFU +calibration depends on the plate reader, plate, volume and strain, so no +lab's calibration data or constants go into this repository. The repository +holds the method: a CLI that fits a calibration from a documented input +format and writes a calibration file, the functions that read and apply it, +and an example built from synthetic data. The existing lab calibration +(`tfscreen-notebooks/od600-to-cfu/`, outside the repo) is the first user and +the test that the port reproduces it. A lab that measures totals another +way (plating, flow) supplies per-tube totals with their own error model; +that is a scientific alternative, not a compatibility path (D12). + +**C11. The calibration's own uncertainty is shared by every tube.** The +current `od600_to_cfu` adds the calibration-curve error (`J C J^T`, +approximated by a quadratic in OD) to each tube's CFU variance as if it were +independent per tube. It is one error, shared by every tube in every +experiment calibrated with that curve: it cannot average out across tubes, +and it mostly does not matter for growth rates (a multiplicative error +cancels from slopes; only curvature error does not). The calibration file +therefore keeps the full parameter covariance, and the fit treats the +calibration parameters as global quantities (D10), never as per-tube noise. + +## Steps + +Keep this list current. Two tracks, G (growth-only) and N (noise, counts and +totals), interleaved in this order. G comes first by priority; step 8 (the +map) waits for Track N because a real map can look like "no map" when the +posteriors are overconfident (bulk theta 95% coverage was 0.66 in the +congression calibration grid, 0.78-0.87 after convergence fixes). +Breaking changes are allowed throughout (D12); each modeling step ends with +a simulation checked by `tfs-summarize-calibration`. + +0. **Studies on real data** (no package code; run in parallel; all can start + now). + - [ ] **0a. Growth-binding map, model-free** (G's step 0). Per genotype with + binding data: slope of `ln_cfu` on `t_sel` per replicate x condition x + concentration; subtract wt; plot against binding theta (Hill fits if + concentrations differ), spiked and bulk separately. Decides the base + case (one collapsing curve: linear or monotone; genotype-specific scatter: + no map). Also answers the idea file's open question on whether growth + and binding concentrations coincide. Study: + `planning/studies/growth-binding-map/`. + - [ ] **0b. Read noise anatomy.** From the real counts: fraction of rows + below 20 and below 5 reads, by genotype class and condition; the + per-tube composition offset `u_s` (shared residual of frequencies of + well-measured genotypes, wt and spikes, within a tube); a look for + block structure in residual level or dispersion along the likely + processing order (the extraction batches were not recorded, D8); + replicate + spread of high-count spike ratios against the binomial expectation, + which sizes the count dispersion. Sets priors for steps 6 and 7 and the + simulator parameters of step 4. Study: `planning/studies/noise-anatomy/`. + - [ ] **0c. OD600 anatomy.** All OD600 readings for the three + bioreplicates, through the lab calibration: the shape of `ln N(t)` per + condition x concentration (pre-growth and selection, lag, any + saturation), how much of the between-bioreplicate difference is a level + (shared split density) and how much a slope; scatter about a smooth + curve against the 2% reading noise (the excess is tube growth noise); + readings below the detection threshold (0.096) or above the calibrated + range (0.59), listed by condition, concentration and timepoint (which + tubes are blind decides which bench experiments are worth running); + whether kan and 4CP tubes differ in ways that suggest the + calibration does not transfer to stressed cells (D11). Decides the + curve form (D9). Study: `planning/studies/od600-population/`. +1. **Binding-optional plumbing** (G). + The list in the idea file: `binding_df` becomes `--binding_df` in + `tfs-configure-model` (at least one of growth/binding required; no phantom + `data.binding`); the orchestrator gates binding tensors, `BindingData`, the + auto `binding_weight`, `theta_binding_noise` and `observe_binding` on + `binding_df is None`; `model.py` gates the binding path statically; + `analysis/prediction.py` and `summarize_fit_cli.py` cope (default + trajectory subset: wt, spikes, and a fixed-seed sample); fail fast on + `binding_weight` or non-`zero` binding noise without binding; + `tfs-prefit-calibration` refuses a growth-only config with a clear + message. Update positional callers (`examples/simulate-and-analyze/run.sh`, + the grid templates) and the tests named in the idea file; a growth-only + smoke test on `growth-smoke.csv` + `library-smoke.yaml`. Check that a + joint fit is unchanged (fixed-seed MAP loss against main): not for + compatibility, but to show the plumbing changed nothing it should not. +2. **Counts and OD600 through processing** (N; breaking). + - `counts_to_lncfu` writes `counts` and per-tube depth (with + `__unknown__`) next to today's columns. The same for + `tfs-process-presplit`. + - A per-tube OD600 input (all bioreplicates, sequenced or not; a + `sequenced` flag or the absence of reads marks the third) and the + calibration file of step 3. Per-tube CFU columns are no longer an input; + totals come from OD600 (or another lab's total measurement, C10). + - An interim smoothed total: `tfs-process-counts` can compute + `sample_ln_cfu` from a population curve fitted to all bioreplicates' OD + (the form from 0c), in place of per-tube or pooled CFU. It generalizes + the pooled practice and gives step 5 a sound total on real data before + step 6 exists. Its per-tube SDs are correlated (one curve), which the + `lncfu` likelihood ignores; step 6 fixes that. + - The orchestrator requires counts, depth and the OD table. Old + processed files are not supported; reprocess the real data (C6) and + regenerate simulations. +3. **Generic OD600 calibration** (N; new CLI; C10, C11). + `tfs-calibrate-od600`: port the notebook's method (technical-replicate + reading noise, detection threshold, errors-in-variables polynomial of CFU + on OD, counting plus pipetting error on the plate counts) with a + documented CSV input format and a configurable polynomial degree. It + writes a calibration YAML with coefficients, the **full** parameter + covariance, reading noise, detection threshold, calibrated OD range and + the volume convention (per mL; the model's `ln_cfu` is per 5 mL sample, + so the tube volume is explicit). Shared read/apply functions in + `process_raw/`. Test: reproduces the lab notebook's constants and CFU + estimates from its spreadsheets (run locally; the data stay out of the + repo), and a synthetic example in `examples/`. +4. **Simulator realism** (N; simulator only). + The simulator has index hopping (`prob_index_hop`) and per-tube growth + noise (per timepoint, matching the design) but writes + `sample_cfu_std = 0.0` and no OD. Add: OD600 per tube through an inverse + calibration (from a calibration YAML) with reading noise, the detection + threshold and the calibrated range; bioreplicates that get OD only (no + reads); PCR jackpotting (Gamma-Poisson counts with a configured + dispersion); a per-tube composition offset; optional monoculture + growth-rate measurements and a spike-in counting standard, to size how + much each would help before it is run. Each source can be switched off, + so its effect on the fit can be measured (a scientific switch, D12). + Values from 0b and 0c. Needed to validate steps 6 and 7, and step 5 + under realistic noise. +5. **Relative-X fit** (G; new component, opt-in). + - A relative Hill theta component: hill_geno's curve with real-valued + baselines, population priors centered on wt, registry rules (C5). Gauge + (D4): wt's curve is pinned to `X = 1` at `c_lo` and `X = 0` at `c_hi` + (per titrant), so wt keeps its K and n free and its baselines follow + from them. `c_lo`/`c_hi` are an orchestrator setting written to the + config, defaulting to the lowest and highest measured concentration + (0 and 1 mM IPTG in the current data). + - One X per genotype x titrant concentration, shared by every condition + (D5); each condition's `k_c` and `m_c` (sign included) map it to growth. + Report the check: per genotype, kan and 4CP growth should be affine in + each other. Genotypes that break it are the first evidence against the + design hypothesis. + - A growth-only configuration forces `activity: fixed`, + `theta_rescale: passthrough`, `condition_growth: linear`, and refuses + `hill_mut`/thermo theta components and partition-function congression + rules (C1). + - Outputs labelled as X; downstream restrictions (C8). + - `tfs-summarize-calibration` computes the X-scale truth (C8). + - Validation on one simulation: joint vs relative fit, the relative fit + compared with X-scale truth; genotypes with simulated binding reported + separately (the calibration tool already stratifies on the simulated + binding file, so this is a held-out comparison); `k_c`/`m_c` recovery + and the IPTG-independent genotypes as internal standards (C4). Then + under step 4's noise. Real data runs use step 2's smoothed total. +6. **Population model in the fit** (N; replaces the per-tube offset). + - Population curves: `P = ln N` per replicate x condition x concentration + over `t_pre + t_sel`, starting at the replicate's split density (from + the presplit OD600 and the dilution, with calibration and pipetting + error; one value per replicate), with a shape shared across replicates + and per-replicate deviations (form from 0c, D9). Global sites, a few + per curve. + - OD600 likelihood: every reading of every bioreplicate, through the + calibration (global, D10), with reading noise plus tube growth noise + `(sigma_tube * t)^2` (C3); readings below the threshold are censored, + readings above the calibrated range are refused or flagged. + - Optional monoculture growth observer, for bench experiment 1 of + `planning/absolute-abundance-measurements.md`: a measured growth rate + of a named genotype in a named condition and concentration observes + the clean-class rate `k_c + dk_g + m_c X_g(c)`. Unlike `base_growth` + (`k_ref + dk_geno` in one reference condition), it pins `k_c`/`m_c` + where OD600 is blind. + - The `lncfu` likelihood observes frequencies against the model: + `ln freq_{g,s} ~ ln n_{g,s} - P_s + u_s`, counting variance only. The + per-row `ln_cfu` stays an output, now built from `P`. + - `sample_offset` becomes the composition offset `u_s`: per tube, constant + prior (0b), no time scaling (D2). Exposed in `tfs-configure-model`. + - Validation: the calibration grid with step 4's noise on, against the + step 2 interim total: theta coverage, `k_c`/`m_c` recovery (C4), in the + joint and the relative fit. +7. **Count likelihood** (N). + `growth_likelihood: counts` (C2): growth and presplit observers with + `reads_{g,s} ~ NegBin(depth_s * exp(ln n_{g,s} - P_s + u_s), dispersion)`, + `P` and `u` from step 6, a learned dispersion (one per experiment; no + per-batch term, D8), optional index hopping (`E[reads] = N (p_g + h q_g)`), + and, for future screens, a spike-in counting standard (a non-growing + pseudo-genotype of known abundance per tube, which fixes `P_s`). + No pseudocount in the fit. This supersedes censoring (D1). Validation: the + calibration grid against step 6's `lncfu` model, including the + true-lambda-0 arm where the mixture currently finds lambda ~0.12, a + leading suspect for which is the floor. Low-count genotypes are the + stratum to watch. + - [ ] **7b. Growth regime: test, choose, purge** (N). The + `growth_transition` components (`instant`, `memory`, `baranyi`, + `baranyi_k`, `baranyi_tau`, `two_pop`) were unconstrained by the data + under the old noise model (user, 2026-09-26). Re-test them once steps + 6-7 are in: on simulations with known transitions (does the fit recover + a lag it was given, and stay at `instant` when there is none?), then on + real data. Keep `instant` (the null) and at most one physically + motivated model, most likely `two_pop` (cells switch from pre-selection + to selection growth at a first-order rate `k_trans`, so each genotype's + trajectory is a two-exponential, the per-genotype counterpart of D9's + population form); fix its fallback for `g_pre - g_sel - k_trans <= 0` + if it is kept. **Purge the rest** from the fit + (`generative/components/growth_transition/`, `_baranyi.py`), the + simulator (`simulate/growth/transition_linkage.py`, + `TRANSITION_REGISTRY`), examples, grid `auto` enumeration, tests, docs + and CLAUDE.md (D12, D13). +8. **The growth-binding map** (G's stage 2; study first). + On real data, relative-X fits (step 5) with the step 7 likelihood; errors in + both variables, genotype as the unit; the nested family identity -> affine + f -> monotone f, with a global concentration scale s; spiked and bulk + separately (bulk on a compressed spiked curve = congression). A study in + `planning/studies/`; a CLI only if it earns one. On simulation first with a + known nonlinear f and scale s, to check recovery. +9. **Joint fit with the learned map** (G; scope set by step 8). + A learnable `theta_rescale` (f) and concentration scale s; binding back at + weight 1 (C7); absolute theta and the partition-function congression rules + return through `f^-1` (C1). If step 8 finds no map, this step becomes a + report of the disagreement, not a model. + +After step 9: revisit `planning/empirical-mixture-refit.md` (Stage 1 could +then use the count likelihood and needs no binding-based prefit). + +## Decisions + +User, 2026-09-26. + +- **D1. No censoring.** Step 7 replaces it (and the masked 3.5 grid showed + the floor does not drive the mixture's behavior). If main needs a floor fix + before step 7 lands, dropping rows below a read threshold is available now. +- **D2. `sample_offset` becomes the composition offset `u_s`.** Revised + 2026-09-26 after the OD discussion: tube growth noise moves to the OD600 + likelihood (C3), so the per-tube latent on genotypes keeps only the + time-independent composition part (PCR, calling). No new component. +- **D3. One `u_s` per tube, independent across timepoints.** No random walk. +- **D4. Gauge: pin wt at two reference concentrations**, `X_wt = 1` at 0 and + `X_wt = 0` at 1 mM IPTG, whether or not those are asymptotes. It uses the + full accessible dynamic range of growth. +- **D5. X is shared between kan and 4CP** (the core design hypothesis), with + a consistency check (step 5). +- **D6. One long-lived branch.** +- **D7. Tube growth noise scales with `t_pre + t_sel`.** Protocol: transform, + grow to a set OD, take `presplit`, split into one tube per condition x + concentration x timepoint (a grid: rows timepoints, columns IPTG), pull a + whole row per timepoint. Pre-growth and selection both happen in the + tube. Everything before the split is shared by a replicate's tubes and + lands in `ln_cfu0`, which `presplit` measures. +- **D8. No per-row term.** A row's tubes are read, spun down and frozen + immediately (stop-time spread: seconds); all samples are then thawed and + extracted in batches of about 20 (three for 60 samples) and amplified in + one PCR block. Extraction batch is the only shared step; yield does not + change genotype frequencies, but it could change PCR template input and so + count dispersion. The batch assignment was not recorded (user, + 2026-09-26): batches of 20 generally followed processing order, but not + reliably. So the model has **no batch term**: an assignment that is only + probably right would put guesses into the likelihood. If 0b sees block + structure along the likely order, it is reported as unexplained + dispersion and absorbed by the shared dispersion, not modeled. Future + screens should record each sample's extraction batch (a `sample_df` + column), so the question can be answered then. + +- **D10. Calibration parameters are latent** (user, 2026-09-26; may be + revised): the calibration file's mean and covariance are a + multivariate-normal prior on the polynomial coefficients (three for a + quadratic), so their shared uncertainty is carried once (C11). Fixed at + the best fit stays available as a check. +- **D12. Breaking changes are fine** (user, 2026-09-26). No compatibility + with old files, configs or checkpoints is kept for its own sake. A + switch or an old path survives only for a scientific reason: to measure + whether something matters (the `lncfu` vs `counts` likelihood, the noise + sources in the simulator, `instant` as the null growth transition). +- **D13. One framing for growth regimes** (user, 2026-09-26). Once a + physically motivated model is chosen (7b; D9 for the population curve), + models outside that framing are removed, not kept as options. + +## Open + +- **D9. Population curve form.** Per replicate x condition x concentration, + a known start (presplit), a shared shape plus per-replicate deviations + (the user's observation: slopes agree across bioreplicates, levels do + not). Under selection the total can fall before it rises (susceptible + cells stall or die while resistant genotypes take over), so a monotone + form is wrong there. Candidates: a sum of two exponentials, + `log(a e^{r1 t} + b e^{r2 t})` (physically motivated: two + subpopulations); piecewise linear over pre-growth and selection; a + low-order polynomial or spline. 0c decides. Deriving the curve from the + genotype model (`logsumexp_g ln n_g`) is exact in principle but not + closable: `__unknown__` reads (about two thirds of kan reads) are cells + of unmodeled genotypes that still count toward OD600. + Decide together with 7b, but keep the two questions apart: the + population curve can bend with no per-genotype lag at all, because + selection changes the library's composition (fast growers take over the + total). Curvature in the totals is not evidence for `two_pop` or a + Baranyi lag; only the per-genotype trajectories in the reads are. If + genotypes do follow `two_pop`, the population is a sum of their + two-exponentials, and a two-exponential population curve is a + reduction of that, not the same model. +- **D11. Does the calibration transfer to selected cells?** It was measured + on unstressed Keio cells in LB. Kanamycin- or 4CP-stressed cells can change + size and shape, and dead cells still scatter light (and still carry + plasmid DNA into the reads). 0c looks for signs of it; a bench check + (OD vs plate counts under selection) would settle it. +Answered (user, 2026-09-26): OD600 is read with the calibration's setup +(same reader, plate, 200 uL); the presplit is read and then diluted +identically into every tube (above); `ln_cfu` is `ln(cfu/mL * 5 mL)`; each +row of a bioreplicate is read as a block within 5 minutes of its freeze. diff --git a/planning/count-likelihood.md b/planning/count-likelihood.md index a0a00fca..43e4a990 100644 --- a/planning/count-likelihood.md +++ b/planning/count-likelihood.md @@ -8,6 +8,7 @@ revisit_when: >- calibration grid has been re-run. The user expects to get here (2026-09-24): the data side is mostly propagating information we drop today. related: + - planning/analysis-roadmap.md - planning/congression-physics-plan.md - planning/per-sample-level-offset.md - planning/studies/congression-calibration/README.md @@ -34,7 +35,10 @@ with `o_s` a per-sample intercept whose prior is centered on plating, With `o_s` free this matches a multinomial over the tube (the Poisson trick), but each genotype's term stands alone, so genotype mini-batching still works. The reads carry how genotypes compare within a tube; plating carries the -absolute scale. Predictions and all downstream outputs stay in `ln_cfu`. +absolute scale. (Revised 2026-09-26: the total comes from OD600, not +plating, and `o_s` is built from a smooth population curve fitted to every +bioreplicate's OD600; see `planning/analysis-roadmap.md`, "Reads and +totals".) Predictions and all downstream outputs stay in `ln_cfu`. What it gives that `ln_cfu` with censoring cannot: diff --git a/planning/growth-only-relative-fit.md b/planning/growth-only-relative-fit.md index 9aba700c..92e8c53b 100644 --- a/planning/growth-only-relative-fit.md +++ b/planning/growth-only-relative-fit.md @@ -8,6 +8,7 @@ revisit_when: >- growth report the same occupancy. Step 0 (model-free look) can be run any time on the existing real data. related: + - planning/analysis-roadmap.md - src/tfscreen/tfmodel/model_orchestrator.py - src/tfscreen/tfmodel/generative/model.py - src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -65,9 +66,11 @@ measured end concentrations, if wt does not saturate in range.) quantity: a genotype's X at no IPTG trades against dk_geno and is separated only by selective-vs-control contrasts (control conditions have not ranked dk_geno well so far). -- Congression: the mixture's max-theta rule is invariant under any increasing - map (`max f(θ) = f(max θ)`), so it carries over if X is oriented to - increase with repression. +- Congression: the mixture's `max` theta rule is invariant under any + increasing map (`max f(θ) = f(max θ)`), so it carries over if X is oriented + to increase with repression. The `homodimer` default (congression step 4) + and `heterodimer` take `logit(θ)` and are not invariant; a relative fit must + use `max` or `single` (`planning/analysis-roadmap.md`, C1). **Step 0 (model-free, do first).** For the genotypes with binding data: regress ln_cfu on t_sel per genotype × replicate × condition × concentration @@ -167,7 +170,8 @@ found free m with ~20 in-library binding anchors beat the prefit clamp (theta slope 0.91 vs 0.85; older machinery). **Open questions:** -- Gauge: pin wt asymptotes or wt values at the measured end concentrations? -- Shared X across conditions, or per-condition X and test the relation? +- Gauge: decided (roadmap D4): pin wt at 0 and 1 mM IPTG. +- Shared X across conditions: decided (roadmap D5): shared, with a kan-vs-4CP + consistency check. - Do growth and binding concentrations coincide in the real data? - Default genotype subset for summarize-fit trajectories without binding. diff --git a/planning/per-sample-level-offset.md b/planning/per-sample-level-offset.md index 8a2e0a48..b97bb0b8 100644 --- a/planning/per-sample-level-offset.md +++ b/planning/per-sample-level-offset.md @@ -8,6 +8,7 @@ revisit_when: >- plan), or sooner if theta coverage stays well below nominal once the floor bias is fixed. related: + - planning/analysis-roadmap.md - planning/congression-physics-plan.md - planning/count-likelihood.md - planning/studies/congression-calibration/README.md @@ -45,9 +46,12 @@ whose size in real data is not yet measured. **What it would take:** -- A new component (or a replacement for `sample_offset`, whose current form - offsets the growth *rate*, not the level; it is also not exposed by - `tfs-configure-model`). +- Superseded in design (2026-09-26, `planning/analysis-roadmap.md`, "Reads + and totals" and step 6): tube growth noise cancels from read frequencies, + so it belongs in an OD600 likelihood around a smooth population curve, not + on every genotype. `sample_offset` keeps only a per-tube composition + offset (PCR, calling) with a time-independent prior (roadmap D2). The + "plating" SD below is really the OD-to-CFU error; CFU comes from OD600. - `counts_to_lncfu` to write the counting variance and the plating variance separately instead of summing them into `ln_cfu_var`. - `o_s` is a per-sample latent: mini-batch safe as a global site, like the From dc61879a08c9b57ead520c981ebea2a136b7f427 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 15:57:37 -0700 Subject: [PATCH 049/208] Record the dk-rule grid: rule irrelevant at realistic dk spread (5) The dk-rule grid (36 runs, all converged) checks how sensitive the fit is to the congression dk rule: simulate dilution or min, fit single, mixture-dilution and mixture-min. At the realistic tight dk spread the rule does not matter (theta, dk_geno and loss agree within 0.001 RMSE and 30 loss units), so dilution stays the default. At the wide worst-case spread the dilution fit gives the best bulk theta whichever rule simulated the data (0.084-0.094 vs 0.103-0.135 for single), while the min fit gains nothing over single even when min is true; dk_geno and lambda follow the right rule (min data at lambda 1: min fit lambda 1.02/0.89, dilution fit 0.47/0.38). The dilution mixture's theta gain does not track congression (same size on min data, at lambda 0 and 1, absent at the tight spread), which points at the read-count floor (untested). At the tight spread lambda is pulled to 0.54-0.97 at a true 0.357. The study README gains the tables; the plan closes step 5. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 13 ++++ .../studies/congression-calibration/README.md | 64 +++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 86889dd9..60b2c7ef 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -756,3 +756,16 @@ checked with `tfs-summarize-calibration`. are at least as slow as it is, closing the route (an earlier, unconverged diagnosis) by which a genotype pushes its own dk down and lets its congressed cells carry its growth. + Results (2026-09-26, all 36 converged): at the realistic tight dk + spread the rule does not matter (theta, dk_geno and loss agree within + 0.001 RMSE and 30 loss units), and the mixture does not beat `single` + on theta there. At the wide spread the dilution fit gives the best + theta whichever rule simulated the data, while the min fit gains + nothing over `single` even when min is true; dk_geno and lambda need + the right rule (min data at lambda 1: min fit lambda 1.02/0.89 and best + dk_geno; dilution fit lambda 0.47/0.38). The dilution mixture's theta + gain does not track congression (same size on min data, at lambda 0 + and 1, absent at tight spread): it needs slow genotypes that a faster + congressed class can rescue, which points at the read-count floor + (untested). At the tight spread lambda is pulled to 0.54-0.97 at a + true 0.357. `dilution` stays the default. Step 5 done. diff --git a/planning/studies/congression-calibration/README.md b/planning/studies/congression-calibration/README.md index 4b0c64ba..f009a984 100644 --- a/planning/studies/congression-calibration/README.md +++ b/planning/studies/congression-calibration/README.md @@ -707,3 +707,67 @@ rule on both sides), at the wide dk spread (worst case) at lambda 0.357 and 1.0 and the tight, realistic spread at 0.357, x seeds 1-2 (36 runs). Does the dk rule matter, and does it matter at a realistic dk spread? Summary commands are in the grid file's header. + +### Results (2026-09-26) + +**All 36 runs converged**, each fit with its intended dk rule. Outputs: +`calib/dkrule_*` (against `single`), `calib/dkrule_vs_dilution_*` (min +against dilution on the same simulation). Means over seeds 1-2 (bulk theta +without binding data; lambda per seed): + +| design | simulated | fit | bulk theta RMSE | coverage | dk_geno RMSE | lambda | +|---|---|---|---|---|---|---| +| wide dk, lambda 0.357 | dilution | `single` | 0.135 | 0.60 | 0.0057 | | +| | | mixture, dilution | 0.094 | 0.75 | 0.0023 | 0.27, 0.47 | +| | | mixture, min | 0.140 | 0.61 | 0.0055 | 0.13, 0.34 | +| | min | `single` | 0.115 | 0.71 | 0.0023 | | +| | | mixture, dilution | 0.090 | 0.75 | 0.0018 | 0.11, 0.19 | +| | | mixture, min | 0.121 | 0.70 | 0.0021 | 0.15, 0.44 | +| wide dk, lambda 1 | dilution | `single` | 0.103 | 0.68 | 0.0086 | | +| | | mixture, dilution | 0.088 | 0.83 | 0.0028 | 0.91, 0.84 | +| | | mixture, min | 0.107 | 0.68 | 0.0080 | 0.83, 0.76 | +| | min | `single` | 0.103 | 0.76 | 0.0024 | | +| | | mixture, dilution | 0.084 | 0.82 | 0.0050 | 0.47, 0.38 | +| | | mixture, min | 0.116 | 0.78 | 0.0017 | 1.02, 0.89 | +| tight dk, lambda 0.357 | dilution | `single` | 0.065 | 0.70 | 0.00025 | | +| | | mixture, dilution | 0.064 | 0.78 | 0.00032 | 0.55, 0.90 | +| | | mixture, min | 0.065 | 0.76 | 0.00028 | 0.56, 0.97 | +| | min | `single` | 0.065 | 0.71 | 0.00026 | | +| | | mixture, dilution | 0.064 | 0.79 | 0.00034 | 0.54, 0.89 | +| | | mixture, min | 0.065 | 0.76 | 0.00029 | 0.55, 0.96 | + +- **At a realistic (tight) dk spread the dk rule does not matter:** theta, + dk_geno and loss agree between the two rules to within 0.001 RMSE and + 30 loss units, whichever rule simulated the data. The mixture does not + beat `single` on theta there either (-0.001); it does improve coverage + (+0.06 to +0.08). +- **At the wide spread, the dilution fit gives the best theta whichever + rule simulated the data** (0.084-0.094 vs 0.103-0.135 for `single`), + and it also has the lower loss on min-simulated data at lambda 0.357 + (by 360-480). The min fit gains nothing on theta over `single`, even + when min is the truth (0.121 vs 0.115; 0.116 vs 0.103 at lambda 1). +- **dk_geno and lambda need the right rule.** On min-simulated data at + lambda 1, the min fit recovers lambda (1.02, 0.89) and gives the best + dk_geno (0.0017); the dilution fit puts lambda at 0.47 and 0.38 and its + dk_geno error is twice `single`'s. On dilution-simulated data the + dilution fit cuts dk_geno error ~3x and the min fit does not. So the + min fit is consistent with its own data: no sign of a fitting bug. +- **What the dilution mixture's theta gain comes from.** It does not + track congression: it is as large on min-simulated data (where + congressed cells cannot outgrow a slow genotype) as on dilution data, + about the same at lambda 0 in the baseline grid (-0.018) as at lambda 1 + (-0.017), and absent at the tight dk spread. It needs slow genotypes and + a rule that lets congressed cells outgrow them. The read-count floor fits + that description (a dying genotype's late timepoints stall above the + truth, and only a faster-growing class can bend its trajectory up), but + this is an inference from the pattern, not yet a test. The dk_geno gain, + by contrast, grows with lambda and follows the right rule: that part is + congression. +- **Lambda at the tight spread is pulled well above the truth** (0.54 to + 0.97 at a true 0.357, against a 0.357 +/- 0.05 prior), identically under + both rules. With little dk spread only theta mixing carries congression, + and the fit leans on it; worth understanding before trusting a fitted + lambda on real data (where the spread is tight). + +`dilution` stays the default: at a realistic spread the choice does not +matter, and at a wide one no rule does better on theta. From 55eb562471fe6a3fee97a160da99639fb2a85a70 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 16:19:11 -0700 Subject: [PATCH 050/208] Add a post-count-likelihood re-validation step to the congression plan Steps 1-5 of the congression physics plan are done. The dk-rule grid suggests the mixture's theta gain over single is mostly the read-count floor, which is to be fixed by fitting read counts directly (planning/count-likelihood.md, separate work) rather than by a masked test on the current model. Step 6 records the validation that waits on that model: re-run grid_baseline.yaml and grid_dkrule.yaml on it, read the remaining theta gain as the cost of congression, confirm the dk_geno gain persists, and check the fitted lambda at a tight dk spread (0.54-0.97 at a true 0.357) before trusting a fitted lambda on real data. Co-authored-by: Claude Opus 5.5 --- planning/congression-physics-plan.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/planning/congression-physics-plan.md b/planning/congression-physics-plan.md index 60b2c7ef..82982911 100644 --- a/planning/congression-physics-plan.md +++ b/planning/congression-physics-plan.md @@ -769,3 +769,20 @@ checked with `tfs-summarize-calibration`. congressed class can rescue, which points at the read-count floor (untested). At the tight spread lambda is pulled to 0.54-0.97 at a true 0.357. `dilution` stays the default. Step 5 done. +6. **Re-validate on the count likelihood.** Open (user, 2026-09-26): the + congression arc (steps 1-5) is closed; the read-count floor is to be + handled by fitting read counts directly (`planning/count-likelihood.md`, + a separate piece of work), not by the masked test proposed after step 5. + Once that model exists, re-run `grid_baseline.yaml` (lambda 0 and 1) and + `grid_dkrule.yaml` on it (`planning/studies/congression-calibration/`): + - The theta gain of the mixture over `single` that remains is what + congression costs. Today's gain (about -0.018 bulk theta RMSE) is the + same at lambda 0 and 1 and on min-simulated data, so it is probably + mostly the floor. + - The dk_geno gain should persist: it grows with lambda and follows the + true dk rule (about 3x lower error at lambda 1), so it is congression. + - Check the fitted lambda at the tight dk spread, pulled to 0.54-0.97 at + a true 0.357 against a 0.357 +/- 0.05 prior, before trusting a fitted + lambda on real data (whose dk spread is tight). + The other open items under 3.5 (lambda's overconfident intervals, + coverage below nominal, the binding weight and SDs) stand. From 25638d3c735a92ec369cf648c47500f4036b6db0 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 16:25:47 -0700 Subject: [PATCH 051/208] Add step 0 study scripts; provisional first results First pass of the roadmap's step 0 studies on the 2026-07-23 snapshot. That snapshot's FASTQ processing assigned unknown reads to wt and used a very stringent Q cutoff, and its binding data were five near-wt genotypes at the original protein concentration, so every result is marked provisional until the new processing batch and binding data are in. - studies/step0-data: stream growth.csv out of the snapshot tarball into a compact counts and per-tube table (untracked output). - studies/noise-anatomy (0b): low-count prevalence, per-tube composition offset, count variance vs Poisson (provisional: doubles median 3-5 reads; variance 5-18x Poisson, scaling with 1/reads). - studies/growth-binding-map (0a): wt-relative and absolute growth slopes vs binding theta, with a scan of an in vivo IPTG scale (provisional; the wt-relative pass is invalid in kan under the old processing). - studies/od600-population (0c): per-tube OD600 levels, slopes and scatter for the two sequenced replicates (first pass). - analysis-roadmap.md: record the provisional results; constraint C12 (count noise scales with the mean; founder sampling per tube); founder sampling and a template bottleneck in the simulator step; a technical re-sequencing replicate as an open item. - absolute-abundance-measurements.md: monoculture growth of the binding genotypes across the full titration as the direct test of the growth-binding map. Co-Authored-By: Claude Opus 5.5 --- planning/absolute-abundance-measurements.md | 8 + planning/analysis-roadmap.md | 72 ++++- planning/studies/growth-binding-map/README.md | 123 +++++++ .../growth-binding-map/growth_binding_map.py | 301 ++++++++++++++++++ planning/studies/noise-anatomy/README.md | 135 ++++++++ .../studies/noise-anatomy/noise_anatomy.py | 260 +++++++++++++++ planning/studies/od600-population/README.md | 72 +++++ .../studies/od600-population/od600_anatomy.py | 138 ++++++++ planning/studies/step0-data/README.md | 46 +++ .../studies/step0-data/extract_snapshot.py | 99 ++++++ 10 files changed, 1249 insertions(+), 5 deletions(-) create mode 100644 planning/studies/growth-binding-map/README.md create mode 100644 planning/studies/growth-binding-map/growth_binding_map.py create mode 100644 planning/studies/noise-anatomy/README.md create mode 100644 planning/studies/noise-anatomy/noise_anatomy.py create mode 100644 planning/studies/od600-population/README.md create mode 100644 planning/studies/od600-population/od600_anatomy.py create mode 100644 planning/studies/step0-data/README.md create mode 100644 planning/studies/step0-data/extract_snapshot.py diff --git a/planning/absolute-abundance-measurements.md b/planning/absolute-abundance-measurements.md index 9c2ae6cd..61d3a681 100644 --- a/planning/absolute-abundance-measurements.md +++ b/planning/absolute-abundance-measurements.md @@ -62,6 +62,14 @@ OD600, chosen by what each one pins. `k_ref + dk_geno` in one reference condition. Caveat: a monoculture lacks the library's other cells (density, any cross-protection), which the matched starting density only partly addresses. + **Extended after study 0a (2026-09-26):** run the five genotypes with + in vitro binding data (wt, M42I, H74A, K84L, M42I/H74A) across all eight + IPTG concentrations in kan and 4CP. That measures the growth-binding + map directly, with no library and no totals problem. 0a found the + library data inconsistent with one linear map at the in vitro + concentration scale (kan responds at roughly 30-100x lower IPTG; 4CP + does not track binding), but could not rule out errors in the + per-column totals. 2. **OD600 against plate counts under selection**, a few screen-like tubes in the strongest conditions at densities the reader can see. Tests whether the unstressed calibration transfers to stressed cells: dead diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 00c444c4..c838a53c 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -240,6 +240,17 @@ cancels from slopes; only curvature error does not). The calibration file therefore keeps the full parameter covariance, and the fit treats the calibration parameters as global quantities (D10), never as per-tube noise. +**C12. Count noise scales with the mean, and rare genotypes start from few +cells.** Study 0b found per-tube variance 5-18 times Poisson at 100-3,000 +reads, the signature of a bottleneck upstream of the reads, not a +constant-CV floor. The count likelihood's dispersion must allow +`var = phi * mu` (NB1 / quasi-Poisson), with at most a small NB2 floor. A +typical double has a few founder cells per tube at the split, drawn anew for +every tube, so its starting abundance differs between tubes; the shared +`ln_cfu0` is a mean, and founder noise is part of the per-tube dispersion. +The simulator must produce both (step 4), or its calibration grids +understate real noise. + ## Steps Keep this list current. Two tracks, G (growth-only) and N (noise, counts and @@ -252,7 +263,16 @@ a simulation checked by `tfs-summarize-calibration`. 0. **Studies on real data** (no package code; run in parallel; all can start now). - - [ ] **0a. Growth-binding map, model-free** (G's step 0). Per genotype with + Data: the 2026-07-23 snapshot, extracted by + `planning/studies/step0-data/` (113 sequenced tubes, 215,402 genotypes). + **The first results are provisional** (user, 2026-09-26): that + snapshot's FASTQ processing assigned every unknown read to wt and used a + very stringent Q cutoff, and its binding data were five genotypes at the + original protein concentration. A new processing batch is running, and + new binding data exist (10 genotypes, two lower repressor + concentrations whose curves match the in vivo concentration range). + Re-run 0a and 0b on those before acting on them. + - [x] **0a. Growth-binding map, model-free** (G's step 0). Per genotype with binding data: slope of `ln_cfu` on `t_sel` per replicate x condition x concentration; subtract wt; plot against binding theta (Hill fits if concentrations differ), spiked and bulk separately. Decides the base @@ -260,7 +280,18 @@ a simulation checked by `tfs-summarize-calibration`. no map). Also answers the idea file's open question on whether growth and binding concentrations coincide. Study: `planning/studies/growth-binding-map/`. - - [ ] **0b. Read noise anatomy.** From the real counts: fraction of rows + Result (2026-09-26): concentrations coincide (eight IPTG points). Only + five genotypes (all spiked, all near wt in vitro) have binding data. + wt-relative, total-free slopes have no leverage. Absolute slopes (with + the smoothed totals) reject one linear map at s = 1 in kan (reduced + chi2 6.7; genotype-specific slopes p = 2e-5): growth rises between + 0.001 and 0.01 mM IPTG where in vitro theta is still 1. An in vivo + concentration scale s = 30-100 brings reduced chi2 to about 3 (kan m + about -0.025 per min). 4CP growth does not track binding. **The base + case is not supported**; the map needs s (step 8), and the direct test + is monoculture growth of these genotypes across the titration + (`planning/absolute-abundance-measurements.md`). + - [x] **0b. Read noise anatomy.** From the real counts: fraction of rows below 20 and below 5 reads, by genotype class and condition; the per-tube composition offset `u_s` (shared residual of frequencies of well-measured genotypes, wt and spikes, within a tube); a look for @@ -270,7 +301,19 @@ a simulation checked by `tfs-summarize-calibration`. spread of high-count spike ratios against the binomial expectation, which sizes the count dispersion. Sets priors for steps 6 and 7 and the simulator parameters of step 4. Study: `planning/studies/noise-anatomy/`. - - [ ] **0c. OD600 anatomy.** All OD600 readings for the three + Result (2026-09-26): doubles (97% of rows) have a median of 3-5 reads + per tube (23-33% zero, 72-85% under 20); singles about 5,300; spikes + 29,000-56,000. Composition offset `u_s` SD 0.018. Per-tube count + variance is 5-18 times Poisson at 100-3,000 reads (pooled: variance + = 0.0055 + 8.4 x Poisson): a bottleneck upstream of the reads + (template molecules and/or founder cells), so the dispersion scales + with the mean (C12). Today's `ln_cfu_var` understates the noise 5-10 + fold. No extraction-batch analysis was possible from the recorded + order. Low counts are mostly low abundance, not crashes: about 88% of + double rows under 5 reads in selective tubes belong to genotypes + already under 5 reads without the drug; only 0.1% of doubles with >= 20 + reads without the drug fall below 5 in half their selective tubes. + - [ ] **0c. OD600 anatomy.** (First pass done; waiting on data.) All OD600 readings for the three bioreplicates, through the lab calibration: the shape of `ln N(t)` per condition x concentration (pre-growth and selection, lag, any saturation), how much of the between-bioreplicate difference is a level @@ -282,6 +325,16 @@ a simulation checked by `tfs-summarize-calibration`. whether kan and 4CP tubes differ in ways that suggest the calibration does not transfer to stressed cells (D11). Decides the curve form (D9). Study: `planning/studies/od600-population/`. + First pass (2026-09-26, the two sequenced replicates only): replicate + 2 reads +0.24 ln units above replicate 1 (a level; per-condition + levels add nothing), but replicate-specific slopes are also + significant (p = 7e-5). Tube scatter 0.17 ln units against 0.03 + reading noise, not growing with time. No tube below threshold (lowest + 1.5x, kan+ 0 mM, which barely grows). Per-condition population slopes + have SE 0.003-0.007 per min, comparable to `m`: these tubes alone do + not pin `k_c`. Still needed: the third bioreplicate's OD600, the + repeated OD600 runs behind the smoothed totals, and the presplit + OD600 and dilution. 1. **Binding-optional plumbing** (G). The list in the idea file: `binding_df` becomes `--binding_df` in `tfs-configure-model` (at least one of growth/binding required; no phantom @@ -332,7 +385,10 @@ a simulation checked by `tfs-summarize-calibration`. `sample_cfu_std = 0.0` and no OD. Add: OD600 per tube through an inverse calibration (from a calibration YAML) with reading noise, the detection threshold and the calibrated range; bioreplicates that get OD only (no - reads); PCR jackpotting (Gamma-Poisson counts with a configured + reads); founder sampling per tube (each tube seeded with a Poisson + draw of cells per genotype at the split, not `total_cfu0 * freq`; 0b); + a template bottleneck before sequencing (reads drawn from a limited + number of template molecules; 0b); PCR jackpotting (Gamma-Poisson counts with a configured dispersion); a per-tube composition offset; optional monoculture growth-rate measurements and a spike-in counting standard, to size how much each would help before it is run. Each source can be switched off, @@ -392,7 +448,8 @@ a simulation checked by `tfs-summarize-calibration`. 7. **Count likelihood** (N). `growth_likelihood: counts` (C2): growth and presplit observers with `reads_{g,s} ~ NegBin(depth_s * exp(ln n_{g,s} - P_s + u_s), dispersion)`, - `P` and `u` from step 6, a learned dispersion (one per experiment; no + `P` and `u` from step 6, a learned dispersion whose variance scales with + the mean (C12; one per experiment; no per-batch term, D8), optional index hopping (`E[reads] = N (p_g + h q_g)`), and, for future screens, a spike-in counting standard (a non-growing pseudo-genotype of known abundance per tube, which fixes `P_s`). @@ -512,6 +569,11 @@ User, 2026-09-26. size and shape, and dead cells still scatter light (and still carry plasmid DNA into the reads). 0c looks for signs of it; a bench check (OD vs plate counts under selection) would settle it. +- **Where the extra count noise comes from** (C12). A technical replicate + (re-amplify and re-sequence the same extracted DNA for a few tubes) + separates the template/PCR part from founder sampling and biology. Cheap + if DNA remains. + Answered (user, 2026-09-26): OD600 is read with the calibration's setup (same reader, plate, 200 uL); the presplit is read and then diluted identically into every tube (above); `ln_cfu` is `ln(cfu/mL * 5 mL)`; each diff --git a/planning/studies/growth-binding-map/README.md b/planning/studies/growth-binding-map/README.md new file mode 100644 index 00000000..075a9d67 --- /dev/null +++ b/planning/studies/growth-binding-map/README.md @@ -0,0 +1,123 @@ +# Study 0a: growth vs in vitro binding, model-free + +**Status: provisional (2026-09-26).** Run on the 2026-07-23 snapshot: +counts from a FASTQ processor that assigned every unknown read to wt (about +two thirds of kan reads), a stringent Q cutoff, and binding data for five +genotypes at the original (high) protein concentration. The wt-relative +pass is unusable in kan and wt's own points in the absolute pass are +suspect; the mutants' absolute slopes are unaffected. The user has since +collected binding at two lower repressor concentrations (curves much closer +to the in vivo response, wt no longer capped at theta = 1) for 10 genotypes +with diverse behavior, which confirms the concentration offset and should +give this study real leverage. The 4CP null result conflicts with an +earlier per-genotype MLE analysis that showed reasonable pheS response +curves; re-check it on the new data before drawing conclusions. + +## Question + +For the genotypes with in vitro binding data, is growth rate a single +linear function of the binding occupancy theta (the joint fit's +assumptions 1 and 2), a monotone but nonlinear one, or neither? Decides the +base case for Track G (`planning/growth-only-relative-fit.md`, step 0; +`planning/analysis-roadmap.md`, steps 5, 8, 9). + +## How to run + +```bash +python growth_binding_map.py ~/work/programming/git-clones/tfscreen/dev/real-2026-07-23 out/ \ + ~/Desktop/2026-07-23_onward/combined_fit_sample_df.csv +``` + +Inputs from `planning/studies/step0-data/`. The third argument enables the +second pass (absolute slopes and the concentration-scale scan). + +## Method + +Five genotypes have binding data: wt, M42I, H74A, K84L, M42I/H74A (all +spiked; 22,000-56,000 reads per tube). Binding and growth use the same +eight IPTG concentrations (0 to 1 mM). + +1. **wt-relative, total-free.** Slope over `t_sel` of + `ln(reads_g / reads_wt)` per replicate x condition x concentration: + `dk_g + m_c (X_g - X_wt)`, with no tube total and no tube noise. +2. **Absolute.** Slope of `ln(reads_g / D) + fit_lncfu` (the global + smoothed total): `k_c + dk_g + m_c X_g`. Uses theta itself, which for wt + spans 1.00 to 0.33, but trusts the total of each IPTG column: an error in + a column's total shifts every genotype at that concentration together. +3. **Concentration scale.** Hill fits to the binding data, then theta_g + evaluated at `s x` (in vivo effective [IPTG] = s times external) for + s = 0.3-300. + +Slope noise is taken from replicate differences (counting SEs understate it +about 2.7-fold; study 0b). + +## Commit + +Scripts as in this directory on top of `b949095`. + +## Results (2026-09-26) + +**1. wt-relative: no leverage.** Slope noise 0.0032-0.0037 per min +(replicate differences; counting alone predicts 0.0016). The four mutants' +binding curves differ from wt's by at most a few tenths across IPTG, so the +common-m fits are consistent with the linear map and measure nothing (kan +m = +0.005 +/- 0.006, 4CP m = +0.002 +/- 0.009 per min per unit theta). + +**2. Absolute, s = 1: the common linear map fails.** + +| condition | m (per min) | reduced chi2 | genotype-specific m | curvature | +|---|---|---|---|---| +| kan+ | -0.0124 +/- 0.0019 | 6.7 | p = 2e-5 | p = 4e-4 | +| 4CP+ | +0.0006 +/- 0.0019 | 2.0 | p = 6e-4 | p = 0.08 | + +The curves (mean over replicates, per min): + +- kan+: every genotype's growth rises from about 0 to 0.015-0.027 between + 0.001 and 0.01 mM IPTG, then flattens or falls slightly. In vitro, wt, + M42I and M42I/H74A are still fully bound (theta 1.00) at 0.01 mM, and wt + falls only to 0.33 at 1 mM. H74A (theta 0.57 at 0 mM) grows like wt at + 0 mM. +- 4CP+: growth falls with IPTG to a minimum near 0.01-0.03 mM and partly + recovers, for every genotype; no ordering by binding. +- Total-free check of the same point: at 0.01 mM in kan, all four mutants + outgrow wt (replicate 1: +0.006 to +0.015 per min) although M42I and + M42I/H74A bind like wt there in vitro. + +**3. An in vivo concentration scale helps in kan.** Reduced chi2 of the +common linear map by s: + +| s | 0.3 | 1 | 3 | 10 | 30 | 100 | 300 | +|---|---|---|---|---|---|---|---| +| kan+ | 7.1 | 6.7 | 6.0 | 4.8 | 3.4 | 3.0 | 3.7 | +| 4CP+ | 2.0 | 2.0 | 2.0 | 1.9 | 1.8 | 1.8 | 1.8 | + +At s = 30-100, kan m = -0.024 to -0.026 per min. 4CP stays weak +(m = +0.005 to +0.006). + +The no-drug conditions (only 0 and 1 mM) differ between the two +concentrations for every genotype (kanR library faster at 1 mM, pheS +library slower), in line with the OD600 population slopes (study 0c): +marker expression changes growth even without the drug, so "no drug" is not +a pure `dk_geno` control. + +## What it means + +- **The base case (one linear map at s = 1) is not supported.** In kan the + in vivo response sits at roughly 30-100x lower external IPTG than the in + vitro assay, with genotype-specific structure left over; in 4CP growth + does not track in vitro binding for these five genotypes. The joint fit's + assumption 1 (in vitro binding = in vivo occupancy at the same [IPTG]) + is likely violated, which is what Track G was built to find out. The map + in step 8 must include the concentration scale s. +- Plausible sources of s: active IPTG uptake (LacY) concentrating IPTG in + cells; the in vitro assay's conditions (22 uM protein; not all curves + taken with the final protocol, per the snapshot README). +- **Caveats.** Five genotypes, all similar to wt in vitro; the absolute + pass depends on per-column totals (roadmap C4), and the non-monotone + shapes shared by every genotype (the kan peak at 0.01 mM, the 4CP dip) + are what a column-total error would look like. +- **The direct test is a bench measurement:** monoculture growth rates of + these five genotypes across the eight IPTG concentrations in kan and 4CP + (`planning/absolute-abundance-measurements.md`, experiment 1, extended + from the gauge concentrations to the full titration). It measures the + growth-binding map with no library and no totals problem. diff --git a/planning/studies/growth-binding-map/growth_binding_map.py b/planning/studies/growth-binding-map/growth_binding_map.py new file mode 100644 index 00000000..44ec9fce --- /dev/null +++ b/planning/studies/growth-binding-map/growth_binding_map.py @@ -0,0 +1,301 @@ +""" +Step 0a of planning/analysis-roadmap.md: a model-free look at how growth +relates to in vitro binding, for the genotypes with binding data. + +For genotype g and wt in the same tube, ln(reads_g / reads_wt) does not +depend on the tube's total population, so its slope over t_sel is + + s_g(c, x) = dk_g + m_c * (X_g(x) - X_wt(x)) + +for condition c and IPTG concentration x, with no OD600 and no tube +noise. If growth is linear in the in vitro occupancy theta, then for each +selective condition the points (theta_g(x) - theta_wt(x), s_g(c, x)) +from every genotype lie on one line per genotype with a common slope m_c, +offset by dk_g. Genotype-specific slopes or curvature mean the linear map +does not hold. + +Second pass (optional SAMPLE_DF): absolute slopes. The wt-relative +design removes the tube total but also most of the signal, because the +binding genotypes' curves differ from wt's by only a few tenths of theta. +With the tube totals from the global smoothed fit (SAMPLE_DF's fit_lncfu), +ln_cfu_g = ln(reads_g / D) + fit_lncfu, and each genotype's absolute slope + + s_g(c, x) = k_c + dk_g + m_c * X_g(x) + +can be tested against theta_g(x) itself, which for wt spans nearly 0-1. + +Usage: + python growth_binding_map.py DATA_DIR OUT_DIR [SAMPLE_DF] + +DATA_DIR holds counts.parquet, samples.parquet and binding.csv from +planning/studies/step0-data/extract_snapshot.py. +""" + +import sys +from pathlib import Path + +import numpy as np +import pandas as pd +import pyarrow.parquet as pq +import statsmodels.formula.api as smf +from matplotlib import pyplot as plt + + +def wt_relative_slopes(counts, samples, genotypes): + """Weighted slope of ln(reads_g / reads_wt) on t_sel per genotype x + replicate x condition_sel x titrant_conc (Poisson weights).""" + c = counts.pivot_table(index="sample", columns="genotype", + values="counts", aggfunc="sum", observed=True) + rows = [] + s = samples.set_index("sample") + for g in genotypes: + if g == "wt": + continue + d = pd.DataFrame({"cg": c[g], "cw": c["wt"]}).join(s) + d = d[(d["cg"] > 0) & (d["cw"] > 0)] + d["y"] = np.log(d["cg"] / d["cw"]) + d["w"] = 1.0 / (1.0 / d["cg"] + 1.0 / d["cw"]) + for key, grp in d.groupby(["replicate", "condition_sel", + "titrant_conc"]): + if grp["t_sel"].nunique() < 2: + continue + f = smf.wls("y ~ t_sel", data=grp, weights=grp["w"]).fit() + rows.append({"genotype": g, "replicate": key[0], + "condition_sel": key[1], "titrant_conc": key[2], + "slope": f.params["t_sel"], + "slope_se": f.bse["t_sel"] if len(grp) > 2 else np.nan, + "n_tubes": len(grp), + "min_reads": int(grp["cg"].min())}) + return pd.DataFrame(rows) + + +def absolute_slopes(counts, samples, sample_df, genotypes): + """Slope of ln(reads_g / D) + fit_lncfu on t_sel per genotype x + replicate x condition_sel x titrant_conc.""" + tot = pd.read_csv(sample_df, index_col=0) + tot["condition_sel"] = tot["condition_sel"].str.strip() + tot = tot.rename(columns={"rep": "replicate"}) + keys = ["replicate", "condition_sel", "titrant_conc", "t_sel"] + smp = samples.merge(tot[keys + ["fit_lncfu"]], on=keys, how="inner") + print(f"\nsecond pass: {len(smp)} of {len(samples)} tubes matched to a " + f"smoothed total") + c = counts.pivot_table(index="sample", columns="genotype", + values="counts", aggfunc="sum", observed=True) + smp = smp.set_index("sample") + rows = [] + for g in genotypes: + d = smp.join(c[g].rename("cg"), how="inner") + d = d[d["cg"] > 0] + d["y"] = np.log(d["cg"] / d["freq_denominator"]) + d["fit_lncfu"] + for key, grp in d.groupby(["replicate", "condition_sel", + "titrant_conc"]): + if grp["t_sel"].nunique() < 2: + continue + f = smf.ols("y ~ t_sel", data=grp).fit() + rows.append({"genotype": g, "replicate": key[0], + "condition_sel": key[1], "titrant_conc": key[2], + "slope": f.params["t_sel"], "n_tubes": len(grp)}) + return pd.DataFrame(rows) + + +def test_map(sl, theta_col, label): + """Per condition: common m vs genotype-specific m vs curvature, with the + slope noise estimated from replicate differences.""" + w = sl.pivot_table(index=["genotype", "condition_sel", "titrant_conc"], + columns="replicate", values="slope") + diff = (w.iloc[:, 1] - w.iloc[:, 0]).dropna() + sd = np.sqrt(diff.var() / 2) + print(f"{label}: slope SD from replicate differences {sd:.5f} per min") + out = [] + for cond, d in sl.groupby("condition_sel"): + common = smf.ols(f"slope ~ C(genotype) + {theta_col}", d).fit() + per_g = smf.ols(f"slope ~ C(genotype) + C(genotype):{theta_col}", d).fit() + curved = smf.ols(f"slope ~ C(genotype) + {theta_col} + " + f"I({theta_col}**2)", d).fit() + # F-tests with the replicate-based noise as the known variance. + def chi_test(big, small): + from scipy import stats + dchi = (small.ssr - big.ssr) / sd ** 2 + ddf = small.df_resid - big.df_resid + return stats.chi2.sf(dchi, ddf) + m, m_se = common.params[theta_col], sd * np.sqrt( + common.normalized_cov_params.loc[theta_col, theta_col]) + red = common.ssr / sd ** 2 / common.df_resid + out.append({"condition_sel": cond, "m": m, "m_se": m_se, + "red_chi2": red, + "p_genotype_slopes": chi_test(per_g, common), + "p_curvature": chi_test(curved, common), "n": len(d)}) + print(f" {cond:10s} m = {m:+.5f} +/- {m_se:.5f}; reduced chi2 " + f"{red:.1f}; genotype-specific m p={out[-1]['p_genotype_slopes']:.3g}; " + f"curvature p={out[-1]['p_curvature']:.3g}") + return pd.DataFrame(out) + + +def hill_fits(binding): + """Four-parameter Hill fit (in log concentration) per genotype, so + theta can be evaluated off the measured grid.""" + from scipy.optimize import least_squares + x0 = binding["titrant_conc"][binding["titrant_conc"] > 0].min() / 10 + out = {} + for g, d in binding.groupby("genotype"): + lx = np.log(np.maximum(d["titrant_conc"].to_numpy(), x0)) + y = d["theta_obs"].to_numpy() + + def f(p, lx=lx): + lo, hi, lk, n = p + return hi + (lo - hi) / (1 + np.exp(-np.exp(n) * (lx - lk))) + r = least_squares(lambda p: f(p) - y, + [y.min(), y.max(), np.log(0.1), 0.0], + bounds=([-0.2, 0, -20, -3], [1, 1.2, 10, 3])) + out[g] = (f, r.x) + return out, x0 + + +def scan_concentration_scale(ab, binding, scales): + """For each s, theta_g evaluated at s * x (in vivo effective + concentration), then the common linear map's residual sum of squares + per selective condition.""" + fits, x0 = hill_fits(binding) + rows = [] + for sc in scales: + d = ab.copy() + d["theta_s"] = [fits[g][0](fits[g][1], np.log(max(x * sc, x0))) + for g, x in zip(d["genotype"], d["titrant_conc"])] + for cond, dd in d.groupby("condition_sel"): + f = smf.ols("slope ~ C(genotype) + theta_s", dd).fit() + rows.append({"s": sc, "condition_sel": cond, "ssr": f.ssr, + "m": f.params["theta_s"], "df": f.df_resid}) + return pd.DataFrame(rows) + + +def main(data_dir, out_dir, sample_df=None): + data_dir, out_dir = Path(data_dir), Path(out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + + binding = pd.read_csv(data_dir / "binding.csv") + genotypes = sorted(binding["genotype"].unique()) + counts = pq.read_table(data_dir / "counts.parquet", + filters=[("genotype", "in", genotypes)]).to_pandas() + samples = pd.read_parquet(data_dir / "samples.parquet") + print(f"binding genotypes: {genotypes}") + print(f"binding concentrations: {sorted(binding['titrant_conc'].unique())}") + print(f"growth concentrations: {sorted(samples['titrant_conc'].unique())}") + + sl = wt_relative_slopes(counts, samples, genotypes) + + th = binding.pivot_table(index="titrant_conc", columns="genotype", + values="theta_obs") + th_sd = binding.pivot_table(index="titrant_conc", columns="genotype", + values="theta_std") + sl["dtheta"] = [th.loc[x, g] - th.loc[x, "wt"] + for g, x in zip(sl["genotype"], sl["titrant_conc"])] + sl["dtheta_sd"] = [np.hypot(th_sd.loc[x, g], th_sd.loc[x, "wt"]) + for g, x in zip(sl["genotype"], sl["titrant_conc"])] + sl.to_csv(out_dir / "wt_relative_slopes.csv", index=False) + + print(f"\nslope SE (per min): median {sl['slope_se'].median():.5f}; " + f"min reads in a tube: median {sl['min_reads'].median():.0f}") + + # Replicate agreement. + w = sl.pivot_table(index=["genotype", "condition_sel", "titrant_conc"], + columns="replicate", values="slope") + diff = w.iloc[:, 1] - w.iloc[:, 0] + print(f"replicate difference in slope: SD {diff.std():.5f} " + f"(expected from SEs ~ " + f"{np.sqrt(2) * sl['slope_se'].median():.5f})") + + # Counting SEs miss most of the noise (study 0b: per-tube variance is + # 5-10x Poisson). Add an excess slope variance tau^2, estimated from + # the replicate differences, to every slope's SE. + tau2 = max(diff.var() / 2 - (sl["slope_se"] ** 2).mean(), 0.0) + sl["slope_se_counting"] = sl["slope_se"] + sl["slope_se"] = np.sqrt(sl["slope_se"] ** 2 + tau2) + print(f"excess slope SD tau = {np.sqrt(tau2):.5f} per min, added in " + f"quadrature to every slope SE") + + # Per selective condition: common m vs genotype-specific m vs curvature. + print("\nper condition (both replicates pooled; genotype = dk offset):") + results = [] + for cond, d in sl.groupby("condition_sel"): + d = d.copy() + d["w"] = 1.0 / d["slope_se"] ** 2 + common = smf.wls("slope ~ C(genotype) + dtheta", d, weights=d["w"]).fit() + per_g = smf.wls("slope ~ C(genotype) + C(genotype):dtheta", d, + weights=d["w"]).fit() + curved = smf.wls("slope ~ C(genotype) + dtheta + I(dtheta**2)", d, + weights=d["w"]).fit() + f_g = per_g.compare_f_test(common) + f_c = curved.compare_f_test(common) + red_chi2 = common.ssr / common.df_resid + results.append({"condition_sel": cond, "m_common": common.params["dtheta"], + "m_se": common.bse["dtheta"], "red_chi2_common": red_chi2, + "p_genotype_slopes": f_g[1], "p_curvature": f_c[1], + "n": len(d)}) + print(f" {cond:10s} m = {common.params['dtheta']:+.5f} " + f"+/- {common.bse['dtheta']:.5f}; reduced chi2 {red_chi2:.1f}; " + f"genotype-specific m p={f_g[1]:.3g}; curvature p={f_c[1]:.3g}") + for g in sorted(d["genotype"].unique()): + dg = d[d["genotype"] == g] + if dg["dtheta"].std() > 0.05: + fg = smf.wls("slope ~ dtheta", dg, weights=dg["w"]).fit() + print(f" {g:10s} m_g = {fg.params['dtheta']:+.5f} " + f"+/- {fg.bse['dtheta']:.5f} " + f"(dtheta range {dg['dtheta'].min():+.2f}.." + f"{dg['dtheta'].max():+.2f})") + pd.DataFrame(results).to_csv(out_dir / "map_tests.csv", index=False) + + # Figure: slope vs dtheta per condition, coloured by genotype. + conds = sorted(sl["condition_sel"].unique()) + fig, axes = plt.subplots(1, len(conds), figsize=(4 * len(conds), 3.6)) + for ax, cond in zip(np.atleast_1d(axes), conds): + d = sl[sl["condition_sel"] == cond] + for g, dg in d.groupby("genotype"): + ax.errorbar(dg["dtheta"], dg["slope"], xerr=dg["dtheta_sd"], + yerr=dg["slope_se"], fmt="o", ms=3, label=g) + ax.axhline(0, color="gray", lw=0.5) + ax.set_title(cond) + ax.set_xlabel("theta_g - theta_wt (binding)") + np.atleast_1d(axes)[0].set_ylabel("d ln(reads_g/reads_wt) / dt (per min)") + np.atleast_1d(axes)[0].legend(fontsize=7) + fig.tight_layout() + fig.savefig(out_dir / "growth_vs_binding.pdf") + + if sample_df is None: + return + ab = absolute_slopes(counts, samples, sample_df, genotypes) + ab["theta"] = [th.loc[x, g] for g, x in zip(ab["genotype"], ab["titrant_conc"])] + ab.to_csv(out_dir / "absolute_slopes.csv", index=False) + test_map(ab, "theta", "absolute slopes vs binding theta").to_csv( + out_dir / "map_tests_absolute.csv", index=False) + + scales = [0.3, 1, 3, 10, 30, 100, 300] + sc = scan_concentration_scale(ab, binding, scales) + sc.to_csv(out_dir / "concentration_scale_scan.csv", index=False) + w = ab.pivot_table(index=["genotype", "condition_sel", "titrant_conc"], + columns="replicate", values="slope") + sd2 = (w.iloc[:, 1] - w.iloc[:, 0]).dropna().var() / 2 + print("\nconcentration scale s (in vivo [IPTG] = s * in vitro): " + "reduced chi2 of the common linear map") + tab = sc.assign(red=sc["ssr"] / sd2 / sc["df"]).pivot( + index="s", columns="condition_sel", values="red") + print(tab.round(2).to_string()) + print("m at each s:") + print(sc.pivot(index="s", columns="condition_sel", values="m") + .round(4).to_string()) + + conds = sorted(ab["condition_sel"].unique()) + fig, axes = plt.subplots(1, len(conds), figsize=(4 * len(conds), 3.6)) + for ax, cond in zip(np.atleast_1d(axes), conds): + d = ab[ab["condition_sel"] == cond] + for g, dg in d.groupby("genotype"): + ax.plot(dg["theta"], dg["slope"], "o", ms=3, label=g) + ax.set_title(cond) + ax.set_xlabel("theta_g (binding)") + np.atleast_1d(axes)[0].set_ylabel("d ln_cfu_g / dt (per min)") + np.atleast_1d(axes)[0].legend(fontsize=7) + fig.tight_layout() + fig.savefig(out_dir / "absolute_growth_vs_binding.pdf") + + +if __name__ == "__main__": + main(*sys.argv[1:4]) diff --git a/planning/studies/noise-anatomy/README.md b/planning/studies/noise-anatomy/README.md new file mode 100644 index 00000000..f089783f --- /dev/null +++ b/planning/studies/noise-anatomy/README.md @@ -0,0 +1,135 @@ +# Study 0b: anatomy of read-count noise + +**Status: provisional (2026-09-26).** Run on the 2026-07-23 snapshot, whose +counts came from a FASTQ processor that assigned every unknown read to wt +and used a very stringent Q cutoff; a new processing batch is running. +Affected here: section 3 (ratios to wt) and the `__unknown__` shares, which +are wrong (unknown reads sat in wt). Expected to survive, to be re-checked: +the low-count prevalence (may improve with a looser Q cutoff), the +composition offset, and the 5-18x excess count variance (uniform read +thinning does not create overdispersion). Next analysis: the variance +multiplier by condition and IPTG column against the tube's fold-growth +since the split; it rises with growth if founder sampling dominates and is +flat if a template bottleneck does. + +## Question + +How much of the real data sits in the low-count regime, how large is the +per-tube composition offset `u_s`, and what does per-tube count noise look +like compared with Poisson? Feeds roadmap steps 4 (simulator), 6 (`u_s` +prior) and 7 (the count likelihood's dispersion model) +(`planning/analysis-roadmap.md`). + +## How to run + +```bash +python noise_anatomy.py ~/work/programming/git-clones/tfscreen/dev/real-2026-07-23 out/ +``` + +Inputs from `planning/studies/step0-data/`. About 15 s. + +## Method + +Each replicate x condition x IPTG concentration has three tubes +(timepoints). A per-genotype straight line in `t_sel` through three points +leaves one residual degree of freedom; its projection `z` on the unit +vector orthogonal to `[1, t]` carries whatever straight-line growth does not +explain. The shared composition offset is the mean of `z` over the 494 +genotypes with at least 1000 reads in every tube; its variance is corrected +for the finite number of genotypes. Count noise compares `E[z^2]` with the +Poisson expectation `sum_i v_i^2 / c_i`, on ln frequency with the shared +offset removed, using lines with at least 100 reads in every tube (below +that, requiring nonzero counts truncates the draws and ln counts are +biased). + +## Commit + +Scripts as in this directory on top of `b949095`. + +## Results (2026-09-26) + +**1. The library is overwhelmingly low-count.** 113 tubes, median 17.9M +reads each (listed genotypes); `__unknown__` 0.4-3% of reads. + +| class | median reads per tube | 0 reads | < 5 | < 20 | +|---|---|---|---|---| +| doubles (kan+ / 4CP+) | 4 / 3 | 23% / 33% | 53% / 55% | 79% / 76% | +| singles | ~5,300 | 0.5-1% | 1-3% | 1.5-4.5% | +| spiked (5 genotypes) | 29,000-56,000 | 0 | 0 | 0 | + +Doubles are about 97% of rows. At 3-5 reads, `ln(counts + pseudocount)` is +far from Gaussian and the pseudocount dominates. + +**2. The per-tube composition offset is small:** SD 0.018 ln units, shared +by every genotype in a tube (consistent with the earlier denominator review, +0.026). Correlation with the tube's `__unknown__` share: -0.34. Per-genotype +residual SD for well-measured genotypes: 0.047. + +**3. Per-tube count noise is 5-10 times Poisson at high counts.** On ln +frequency, lines with >= 100 reads: + +`E[z^2] = 0.0055 + 8.4 x Poisson` (pooled): a variance multiplier of about +8 on top of counting, plus a floor of about 0.07 ln units. By condition the +split between the two trades off (multiplier 3-5 with floors 0.07-0.15) +because each line has one residual degree of freedom; the robust statement +is that at 100-3000 reads the observed variance is 5-18 times the Poisson +variance. The ratio to wt gives the same picture (13 times Poisson at ~500 +reads). + +**4. Low counts are mostly low abundance, not crashes.** Each double's +row in a selective tube, classified by the genotype's median reads in the +no-drug tubes of the same library and replicate (its abundance before +selection): + +| reads without drug | share of selective double rows | of which < 5 reads (kan+ / 4CP+) | +|---|---|---| +| < 5 | 59% | 74% / 88% | +| 5-20 | 22% | 19% / 38% | +| 20-100 | 13% | 2% / 9% | +| >= 100 | 6% | 0% / 0.2% | + +About 88% of the low-count (< 5) double rows belong to genotypes that are +already under 5 reads without the drug. Of the 69,245 doubles with >= 20 +reads without the drug, 39% dip below 5 reads in at least one selective +tube, but only 0.1% do so in half of their selective tubes. The double +sub-library's design gives about 1.5 transformants per double +(`transform_sizes` 300,000 for ~200,000 doubles), so a double's abundance +is set early and varies widely between doubles. + +## What it means + +- **The count likelihood (roadmap step 7) is the main event, not a + refinement.** The doubles, which carry the mutant cycles, are almost all + at 0-20 reads. +- **Today's `ln_cfu_var` (binomial counting) understates the noise 5-10 + fold** for well-measured genotypes, so fits are overconfident by roughly + 2-3x in SD. This is a leading candidate for the low theta coverage seen + in simulation-based calibration being worse on real data. +- **The dispersion model must allow variance proportional to the mean** + (NB1 / quasi-Poisson, `var = phi * mu`), not only a constant-CV floor + (NB2, `var = mu + mu^2 / r`). Variance scaling with 1/reads at 5-10x + Poisson is the signature of a bottleneck upstream of the reads: fewer + template molecules than reads (PCR input), and/or few founder cells per + genotype per tube. +- **Founder sampling is a physical per-tube noise the model and simulator + both lack.** A typical double has ~4 reads at harvest, ~15 cells in the + tube, and so only a few cells when the tube was seeded from the split. + Each tube draws its own founders, so a rare genotype's starting abundance + differs from tube to tube, independently across timepoints; `ln_cfu0` + shared by all tubes of a replicate x `condition_pre` is wrong at low + abundance. The simulator seeds every tube deterministically + (`_sim_growth`: `total_cfu0 * freq`) and samples reads once + (multinomial), so simulated noise is pure Poisson. +- **`u_s` needs only a tight prior** (SD ~0.02). +- **Most of the doubles' weak data is weak everywhere.** Low counts come + from low abundance before selection, not from genotypes crashing under + it, so a count likelihood mostly makes their uncertainty honest (and + lets the hierarchical priors carry them) rather than recovering a lost + crash signal. The crash information exists for the better-represented + doubles (39% of them dip below 5 reads somewhere) and is where the count + likelihood beats a pseudocount. The design lever is more cells per double: + deeper transformation of the double sub-library and more founders per + tube at the split (which also shrinks founder noise). +- Separating template bottleneck from founder sampling needs a technical + replicate: re-amplify and re-sequence the same extracted DNA for a few + tubes (see the roadmap). diff --git a/planning/studies/noise-anatomy/noise_anatomy.py b/planning/studies/noise-anatomy/noise_anatomy.py new file mode 100644 index 00000000..0798e2c4 --- /dev/null +++ b/planning/studies/noise-anatomy/noise_anatomy.py @@ -0,0 +1,260 @@ +""" +Step 0b of planning/analysis-roadmap.md: the anatomy of read-count noise. + +Within one replicate x condition x concentration there are three tubes +(timepoints). A per-genotype straight line in t_sel through three points +leaves one residual degree of freedom per line; its projection +z = r . v (v the unit vector orthogonal to [1, t]) carries everything the +straight-growth model does not explain in that group. That gives: + + 1. Low-count prevalence: fraction of rows at 0, < 5 and < 20 reads, by + genotype class and selection condition. + 2. The per-tube composition offset u_s (PCR, calling efficiency): a shift + shared by every genotype's ln(frequency) in a tube. Its projection is + the same for every genotype in a group, so the mean of z over many + well-measured genotypes estimates it, and + var(u) ~ mean_groups(zbar^2) - mean_groups(var(z)) / K. + Compared with the tube's __unknown__ share. + 3. The count noise model: for ln(reads_g / reads_wt) (tube total and u + cancel), E[z^2] against the Poisson expectation + sum_i v_i^2 (1/c_g,i + 1/c_wt,i). A fit E[z^2] = a + b * poisson gives + b (1 = Poisson; > 1 = effective depth smaller than the reads) and a + (a floor independent of counts: PCR jackpotting and real + genotype-by-tube differences). + +Usage: + python noise_anatomy.py DATA_DIR OUT_DIR +""" + +import sys +from pathlib import Path + +import numpy as np +import pandas as pd + +SPIKED = {"wt", "M42I", "H74A", "K84L", "M42I/H74A"} +GROUP = ["replicate", "condition_sel", "titrant_conc"] + + +def genotype_class(g): + if g in SPIKED: + return "spiked" + return "double" if "/" in g else "single" + + +def residual_projector(t): + """Unit vector orthogonal to [1, t] (3 points -> exactly one).""" + X = np.column_stack([np.ones_like(t), t]) + q, _ = np.linalg.qr(X, mode="complete") + return q[:, 2] + + +def main(data_dir, out_dir): + data_dir, out_dir = Path(data_dir), Path(out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + + samples = pd.read_parquet(data_dir / "samples.parquet") + counts = pd.read_parquet(data_dir / "counts.parquet") + genos = counts["genotype"].cat.categories + samples["unknown_share"] = 1 - samples["reads_listed"] / samples["freq_denominator"] + print(f"{len(samples)} samples, {len(genos):,} genotypes, " + f"{len(counts):,} rows") + print(f"reads per tube (listed genotypes): median " + f"{samples['reads_listed'].median():,.0f}; __unknown__ share by " + f"condition:") + print(samples.groupby("condition_sel")["unknown_share"] + .describe()[["mean", "min", "max"]].to_string()) + + # --- 1. low-count prevalence ------------------------------------------- + counts = counts.merge(samples[["sample", "condition_sel"]], on="sample") + cls = pd.Series({g: genotype_class(g) for g in genos}) + counts["class"] = counts["genotype"].map(cls).astype("category") + low = counts.groupby(["class", "condition_sel"], observed=True)["counts"].agg( + rows="size", + zero=lambda c: (c == 0).mean(), + lt5=lambda c: (c < 5).mean(), + lt20=lambda c: (c < 20).mean(), + median="median") + print("\n1. low-count prevalence (fraction of rows):") + print(low.to_string(float_format=lambda x: f"{x:.3f}")) + low.to_csv(out_dir / "low_counts.csv") + + # Matrix: tube x genotype. + mat = counts.pivot_table(index="sample", columns="genotype", + values="counts", aggfunc="sum", observed=True, + fill_value=0) + s = samples.set_index("sample").loc[mat.index] + lnf = np.log(mat.to_numpy(dtype=float) + 0.5) - \ + np.log(s["freq_denominator"].to_numpy())[:, None] + + # --- 2. composition offset u_s ------------------------------------------ + rows = [] + well = mat.columns[(mat.to_numpy() >= 1000).all(axis=0)] + wi = mat.columns.get_indexer(well) + print(f"\n2. genotypes with >= 1000 reads in every tube: {len(well)}") + for key, g in s.reset_index().groupby(GROUP): + if len(g) != 3: + continue + idx = mat.index.get_indexer(g["sample"]) + v = residual_projector(g["t_sel"].to_numpy(dtype=float)) + z = v @ lnf[idx][:, wi] # one z per well-measured genotype + uz = v @ g["unknown_share"].to_numpy() + rows.append({**dict(zip(GROUP, key)), "zbar": z.mean(), + "var_z": z.var(ddof=1), "K": len(z), "unknown_proj": uz}) + u = pd.DataFrame(rows) + var_u = (u["zbar"] ** 2).mean() - (u["var_z"] / u["K"]).mean() + print(f" groups with 3 tubes: {len(u)}") + print(f" composition offset SD (shared by all genotypes in a tube): " + f"{np.sqrt(max(var_u, 0)):.4f} ln units") + print(f" per-genotype residual SD (well-measured, projection): " + f"{np.sqrt(u['var_z'].mean()):.4f}") + r = np.corrcoef(u["zbar"], u["unknown_proj"])[0, 1] + print(f" correlation of the shared offset with the __unknown__ share " + f"(projected): {r:+.2f}") + u.to_csv(out_dir / "composition_offset.csv", index=False) + + # --- 3. count noise: ln(reads_g / reads_wt) ----------------------------- + wt = mat["wt"].to_numpy(dtype=float) + M = mat.to_numpy(dtype=float) + rec = [] + for key, g in s.reset_index().groupby(GROUP): + if len(g) != 3: + continue + idx = mat.index.get_indexer(g["sample"]) + v = residual_projector(g["t_sel"].to_numpy(dtype=float)) + c = M[idx] + ok = (c > 0).all(axis=0) + cg = c[:, ok] + y = np.log(cg) - np.log(wt[idx])[:, None] + z = v @ y + pois = (v[:, None] ** 2 * (1 / cg + 1 / wt[idx][:, None])).sum(axis=0) + rec.append(pd.DataFrame({"z2": z ** 2, "poisson": pois, + "min_reads": cg.min(axis=0), + "condition_sel": key[1]})) + rec = pd.concat(rec, ignore_index=True) + rec = rec[rec["poisson"] > 0] + bins = np.quantile(rec["poisson"], np.linspace(0, 1, 21)) + rec["bin"] = pd.cut(rec["poisson"], bins, include_lowest=True) + b = rec.groupby("bin", observed=True).agg(poisson=("poisson", "mean"), + z2=("z2", "mean"), + min_reads=("min_reads", "median"), + n=("z2", "size")) + b["ratio"] = b["z2"] / b["poisson"] + print(f"\n3. ln(reads_g/reads_wt), {len(rec):,} genotype-group lines " + f"(all 3 tubes > 0 reads)") + print(b.to_string(float_format=lambda x: f"{x:.4g}")) + A = np.column_stack([np.ones(len(b)), b["poisson"]]) + coef, *_ = np.linalg.lstsq(A, b["z2"], rcond=None) + print(f" E[z^2] = {coef[0]:.4g} + {coef[1]:.3f} * poisson " + f"(floor SD {np.sqrt(max(coef[0], 0)):.3f} ln units; " + f"Poisson multiplier {coef[1]:.2f})") + for cond, d in rec.groupby("condition_sel"): + bb = d.groupby(pd.cut(d["poisson"], bins, include_lowest=True), + observed=True).agg(p=("poisson", "mean"), z2=("z2", "mean")) + A = np.column_stack([np.ones(len(bb)), bb["p"]]) + cc, *_ = np.linalg.lstsq(A, bb["z2"], rcond=None) + print(f" {cond:10s} floor SD {np.sqrt(max(cc[0], 0)):.3f}, " + f"Poisson multiplier {cc[1]:.2f}, n={len(d):,}") + b.to_csv(out_dir / "count_noise_bins.csv") + + # --- 3b. same, on ln(frequency) with the shared offset removed ---------- + # The ratio to wt carries wt's own residual in every line. Here each + # genotype's projection has the group's shared offset (zbar over the + # well-measured genotypes) subtracted instead, and only lines with at + # least MIN_READS reads in every tube are used (below that, ln counts + # are biased and the Poisson expansion fails). + MIN_READS = 30 + zbar = u.set_index(GROUP)["zbar"] + rec = [] + for key, g in s.reset_index().groupby(GROUP): + if len(g) != 3 or key not in zbar.index: + continue + idx = mat.index.get_indexer(g["sample"]) + v = residual_projector(g["t_sel"].to_numpy(dtype=float)) + c = M[idx] + ok = (c >= MIN_READS).all(axis=0) + cg = c[:, ok] + lnD = np.log(s.loc[g["sample"], "freq_denominator"].to_numpy()) + z = v @ (np.log(cg) - lnD[:, None]) - zbar.loc[key] + pois = (v[:, None] ** 2 / cg).sum(axis=0) + rec.append(pd.DataFrame({"z2": z ** 2, "poisson": pois, + "min_reads": cg.min(axis=0), + "condition_sel": key[1], + "genotype": mat.columns[ok]})) + rec = pd.concat(rec, ignore_index=True) + rec["class"] = rec["genotype"].map(cls) + bins = np.quantile(rec["poisson"], np.linspace(0, 1, 16)) + rec["bin"] = pd.cut(rec["poisson"], bins, include_lowest=True) + b = rec.groupby("bin", observed=True).agg(poisson=("poisson", "mean"), + z2=("z2", "mean"), + min_reads=("min_reads", "median"), + n=("z2", "size")) + b["ratio"] = b["z2"] / b["poisson"] + print(f"\n3b. ln(frequency) minus the shared offset, lines with >= " + f"{MIN_READS} reads in every tube ({len(rec):,} lines)") + print(b.to_string(float_format=lambda x: f"{x:.4g}")) + # Fit only where the >= MIN_READS selection does not truncate the draws. + FIT_READS = 100 + bf = b[b["min_reads"] >= FIT_READS] + rec = rec[rec["min_reads"] >= FIT_READS] + print(f" fit on bins with median min reads >= {FIT_READS} " + f"({len(bf)} bins)") + A = np.column_stack([np.ones(len(bf)), bf["poisson"]]) + coef, *_ = np.linalg.lstsq(A, bf["z2"], rcond=None) + print(f" E[z^2] = {coef[0]:.4g} + {coef[1]:.2f} * poisson: variance " + f"multiplier (phi) {coef[1]:.2f}, floor SD " + f"{np.sqrt(max(coef[0], 0)):.3f} ln units") + for (cond), d in rec.groupby("condition_sel"): + bb = d.groupby(pd.cut(d["poisson"], bins, include_lowest=True), + observed=True).agg(p=("poisson", "mean"), z2=("z2", "mean")) + bb = bb.dropna() + A = np.column_stack([np.ones(len(bb)), bb["p"]]) + cc, *_ = np.linalg.lstsq(A, bb["z2"], rcond=None) + print(f" {cond:10s} phi {cc[1]:.2f}, floor SD " + f"{np.sqrt(max(cc[0], 0)):.3f}, n={len(d):,}") + b.to_csv(out_dir / "count_noise_bins_lnfreq.csv") + + # --- 4. why is a low count low? ----------------------------------------- + # A double that is rare everywhere carries little information in any + # tube; one that is abundant without the drug and crashes under + # selection carries its signal in the crash. Classify each low-count + # row in a selective tube by the genotype's median reads in the no-drug + # tubes of the same library (same replicate), which stand in for its + # abundance before selection. + low_rows = counts.merge(samples[["sample", "library", "replicate"]], + on="sample") + nodrug = low_rows[low_rows["condition_sel"].isin(["kanR-kan", "pheS-4CP"])] + base = (nodrug.groupby(["library", "replicate", "genotype"], observed=True) + ["counts"].median().rename("nodrug_median")) + sel = low_rows[low_rows["condition_sel"].isin(["kanR+kan", "pheS+4CP"])] + sel = sel.join(base, on=["library", "replicate", "genotype"]) + edges = [-0.1, 5, 20, 100, np.inf] + labels = ["rare (<5)", "low (5-20)", "moderate (20-100)", "abundant (>=100)"] + sel["abundance_without_drug"] = pd.cut(sel["nodrug_median"], edges, + labels=labels) + print("\n4. doubles in selective tubes: reads in the tube vs the " + "genotype's median reads without the drug") + d = sel[sel["class"] == "double"] + tab = pd.crosstab(d["abundance_without_drug"], + pd.cut(d["counts"], [-1, 0, 4, 19, np.inf], + labels=["0", "1-4", "5-19", ">=20"]), + normalize="all") + print(" fraction of all double rows in selective tubes:") + print(tab.round(3).to_string()) + by_cond = (d.assign(low=d["counts"] < 5) + .groupby(["condition_sel", "abundance_without_drug"], + observed=True)["low"].agg(["mean", "size"])) + print(" fraction below 5 reads, by condition and abundance without drug:") + print(by_cond.round(3).to_string()) + g = (d.assign(low=d["counts"] < 5) + .groupby(["library", "genotype"], observed=True) + .agg(nodrug=("nodrug_median", "median"), frac_low=("low", "mean"))) + g = g[g["nodrug"] >= 20] + print(f" doubles with >= 20 median reads without the drug: {len(g):,}; " + f"of these, share with some selective tube below 5 reads: " + f"{(g['frac_low'] > 0).mean():.3f}; with at least half below 5: " + f"{(g['frac_low'] >= 0.5).mean():.3f}") + + +if __name__ == "__main__": + main(*sys.argv[1:3]) diff --git a/planning/studies/od600-population/README.md b/planning/studies/od600-population/README.md new file mode 100644 index 00000000..0d6ed610 --- /dev/null +++ b/planning/studies/od600-population/README.md @@ -0,0 +1,72 @@ +# Study 0c: what per-tube OD600 says about each tube's total + +**Status: first pass (2026-09-26)** on the two sequenced replicates' +per-tube OD600; waiting on the third bioreplicate, the repeated OD600 runs +and the presplit OD600 and dilution. + +## Question + +How do bioreplicates differ (level vs slope), how far do tubes scatter +about a smooth curve compared with the reader's own noise, which tubes are +near or below the detection threshold, and how fast does the total grow in +each condition? Feeds roadmap steps 2, 4 and 6 and open item D9 (the +population curve form) (`planning/analysis-roadmap.md`). + +## How to run + +```bash +python od600_anatomy.py ~/Desktop/2026-07-23_onward/combined_fit_sample_df.csv \ + ~/Desktop/tfscreen-notebooks/od600-to-cfu/od600_to_cfu.yaml out/ +``` + +## Method + +Per-tube OD600 through the lab calibration to ln(cfu); reading noise from +the calibration's 2% OD600 SD alone (the calibration curve's own error is +shared by every tube and left out). Nested least-squares models over the +118 sequenced tubes (2 replicates x 20 conditions x 3 timepoints, a few +missing): one curve per condition (a line in `t_sel`), plus a replicate +level, plus replicate x condition levels, plus replicate-specific slopes. + +## Commit + +Scripts as in this directory on top of `b949095`. + +## Results (2026-09-26) + +- **Replicates differ by a level:** replicate 2 reads +0.24 ln units above + replicate 1 (SE 0.03; F = 52, p = 3e-10). Separate levels per condition + add nothing (p = 0.14), consistent with one split density per replicate. +- **Replicate-specific slopes are significant** (F = 4.2, p = 7e-5, residual + SD 0.167 -> 0.115). This contradicts slopes being shared across + bioreplicates for these two replicates; with three tubes per line it + could also be structured noise. +- **Tube scatter dwarfs reading noise:** 0.176 ln units about a shared + curve plus replicate level, against 0.031 from OD600 reading noise. The + excess, 0.17, is tube-to-tube (growth or handling). It does not grow + with time (0.14, 0.11, 0.18 by tercile of `t_sel`), so it is not + `sigma * t` tube growth noise alone. +- **No tube is below the threshold** (0.096). The lowest are kan+ at 0 mM + (1.5x threshold), kan- at 1 mM and kan+ at 0.001 mM (1.6-1.7x). +- **Population growth per condition** (per min, shared across replicates + with a replicate level): kan+ rises from -0.001 +/- 0.006 at 0 mM to + about 0.011 at >= 0.01 mM; 4CP+ falls from 0.020 at 0 mM to 0.014-0.015 + at >= 0.01 mM; no drug 0.016-0.030. Standard errors are 0.003-0.007 per + condition: three tubes per replicate over 45-120 min. + +## What it means + +- **Per-tube OD600 pins condition growth rates only to +/- 0.003-0.007 per + min,** comparable to `m` (~0.01-0.025). The absolute scale (`k_c`, `m_c`; + roadmap C4) cannot rest on these tubes alone; the earlier smoothed total + drew on repeated OD600 runs, and those data (and the third bioreplicate) + are the next input for this study. +- **The population model needs a replicate level** and probably + per-replicate slope deviations (D9), and the OD600 likelihood a per-tube + scatter term of about 0.17 ln units that is not proportional to time. +- **The sequenced tubes were chosen to be visible;** strong selection + shows up as low but readable OD600 (kan+ 0 mM barely grows), not as + censored tubes, in this dataset. +- Missing for the rest of 0c: OD600 for the third (unsequenced) + bioreplicate and the repeated OD600 runs behind `fit_lncfu`, and the + presplit OD600 and dilution factor (the known start). diff --git a/planning/studies/od600-population/od600_anatomy.py b/planning/studies/od600-population/od600_anatomy.py new file mode 100644 index 00000000..00c6f35e --- /dev/null +++ b/planning/studies/od600-population/od600_anatomy.py @@ -0,0 +1,138 @@ +""" +Step 0c of planning/analysis-roadmap.md: what the per-tube OD600 readings +say about each tube's total population. + +Questions: + 1. How much of the difference between bioreplicates is a level (shared + split density) and how much a slope? + 2. How far do tubes scatter about a smooth curve, against what the + reader's own noise (2% of OD600, through the calibration) predicts? + The excess is tube-to-tube growth noise (or protocol noise). + 3. How close are tubes to the detection threshold, by condition? + 4. The population growth rate per condition (does strong selection + stall or shrink the total?). + +Usage: + python od600_anatomy.py SAMPLE_DF CALIBRATION_YAML OUT_DIR + +SAMPLE_DF has one row per sequenced tube with od600, rep, library, +condition_sel, titrant_conc, t_sel (combined_fit_sample_df.csv). +""" + +import sys +from pathlib import Path + +import numpy as np +import pandas as pd +import statsmodels.formula.api as smf +import yaml +from matplotlib import pyplot as plt + + +def od_to_ln_cfu(od, cal): + """ln(cfu/mL) and the SD of ln(cfu/mL) from OD600 reading noise alone + (the calibration curve's own error is excluded: it is shared by every + tube, roadmap C11).""" + cfu = cal["A_CFU"] + cal["B_CFU"] * od + cal["C_CFU"] * od ** 2 + dcfu_dod = cal["B_CFU"] + 2 * cal["C_CFU"] * od + read_sd = np.abs(dcfu_dod) * cal["OD600_PCT_STD"] * od / cfu + return np.log(cfu), read_sd + + +def main(sample_df, cal_yaml, out_dir): + out_dir = Path(out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + cal = yaml.safe_load(open(cal_yaml)) + + df = pd.read_csv(sample_df, index_col=0) + df["condition_sel"] = df["condition_sel"].str.strip() + df["cond"] = (df["condition_sel"] + "@" + df["titrant_conc"].astype(str)) + df["rep"] = df["rep"].astype(str) + df["lnN"], df["read_sd"] = od_to_ln_cfu(df["od600"].to_numpy(), cal) + df["t"] = df["t_sel"].astype(float) + + print(f"{len(df)} tubes, {df['cond'].nunique()} conditions, " + f"reps {sorted(df['rep'].unique())}") + print(f"OD600 reading noise in ln units: median " + f"{df['read_sd'].median():.4f} (range {df['read_sd'].min():.4f}-" + f"{df['read_sd'].max():.4f})") + + # --- 1 and 2: nested models ------------------------------------------- + forms = { + "shared curve": "lnN ~ C(cond) + C(cond):t", + "+ replicate level": "lnN ~ C(rep) + C(cond) + C(cond):t", + "+ replicate x cond level": "lnN ~ C(rep)*C(cond) + C(cond):t", + "+ replicate slopes": "lnN ~ C(rep)*C(cond) + C(rep):C(cond):t", + } + fits = {k: smf.ols(f, data=df).fit() for k, f in forms.items()} + print("\nmodel dof resid SD ") + for k, f in fits.items(): + print(f"{k:25s} {int(f.df_resid):4d} {np.sqrt(f.scale):.4f}") + names = list(fits) + for a, b in zip(names[:-1], names[1:]): + ft = fits[b].compare_f_test(fits[a]) + print(f"F-test {b!r} vs {a!r}: F={ft[0]:.2f} p={ft[1]:.3g} " + f"df={int(ft[2])}") + + rep_level = fits["+ replicate level"].params.filter(like="C(rep)") + print(f"\nreplicate level offset (rep 2 - rep 1): " + f"{rep_level.iloc[0]:+.4f} ln units " + f"(SE {fits['+ replicate level'].bse.filter(like='C(rep)').iloc[0]:.4f})") + + resid_sd = np.sqrt(fits["+ replicate level"].scale) + read_sd = df["read_sd"].median() + excess = np.sqrt(max(resid_sd ** 2 - read_sd ** 2, 0)) + print(f"scatter about shared curve + replicate level: {resid_sd:.4f}; " + f"reading noise {read_sd:.4f}; excess (tube noise) {excess:.4f}") + + # does the scatter grow with time (tube growth noise ~ sigma * t)? + r = fits["+ replicate level"].resid + by_t = df.assign(r2=r ** 2).groupby(pd.cut(df["t"], 3), observed=True)["r2"] + print("residual SD by t_sel tercile:") + for k, v in by_t: + print(f" {str(k):16s} n={len(v):3d} SD={np.sqrt(v.mean()):.4f}") + + # --- 3: distance from the detection threshold -------------------------- + thr = cal["OD600_MEAS_THRESHOLD"] + near = (df.groupby(["cond"])["od600"].min() + .rename("min_od600").to_frame()) + near["fold_above_threshold"] = near["min_od600"] / thr + print(f"\ndetection threshold {thr:.4f}; tubes below: " + f"{(df['od600'] < thr).sum()}") + print("lowest OD600 per condition (fold above threshold):") + print(near.sort_values("min_od600").head(10).to_string()) + + # --- 4: population growth rate per condition --------------------------- + slopes = [] + for cond, g in df.groupby("cond"): + f = smf.ols("lnN ~ C(rep) + t", data=g).fit() + slopes.append({"cond": cond, "slope_per_min": f.params["t"], + "slope_se": f.bse["t"], "n": len(g)}) + slopes = pd.DataFrame(slopes).sort_values("cond") + slopes.to_csv(out_dir / "population_slopes.csv", index=False) + print("\npopulation growth rate (per min) by condition, shared across " + "replicates with a replicate level:") + print(slopes.to_string(index=False, float_format=lambda x: f"{x:.5f}")) + + # --- figure -------------------------------------------------------------- + conds = sorted(df["cond"].unique()) + ncol = 8 + nrow = int(np.ceil(len(conds) / ncol)) + fig, axes = plt.subplots(nrow, ncol, figsize=(2.4 * ncol, 2.2 * nrow), + sharex=True, sharey=True) + for ax, cond in zip(axes.flat, conds): + g = df[df["cond"] == cond] + for rep, gg in g.groupby("rep"): + ax.errorbar(gg["t"], gg["lnN"], yerr=gg["read_sd"], fmt="o", + ms=3, label=f"rep {rep}") + ax.set_title(cond, fontsize=7) + axes.flat[0].legend(fontsize=6) + fig.supxlabel("t_sel (min)") + fig.supylabel("ln(cfu) from OD600") + fig.tight_layout() + fig.savefig(out_dir / "od600_by_condition.pdf") + df.to_csv(out_dir / "tubes.csv", index=False) + + +if __name__ == "__main__": + main(*sys.argv[1:4]) diff --git a/planning/studies/step0-data/README.md b/planning/studies/step0-data/README.md new file mode 100644 index 00000000..3f78c40e --- /dev/null +++ b/planning/studies/step0-data/README.md @@ -0,0 +1,46 @@ +# Step 0 data: compact extract of the 2026-07-23 snapshot + +Support for the roadmap's step 0 studies (`planning/analysis-roadmap.md`), +not a study itself. + +## What it makes + +`growth.csv` in `~/Desktop/2026-07-23_data-snapshot.tar.gz` is 8.2 GB: one +row per sequenced tube x genotype, with every tube-level column repeated on +every row. `extract_snapshot.py` streams it out of the tarball without +unpacking (the disk had 17 GB free) and writes: + +| File | Content | +|---|---| +| `counts.parquet` | `sample, genotype, counts`: 20,904,551 rows, 113 tubes, 215,402 genotypes | +| `samples.parquet` | one row per tube: design columns, per-tube `od600`, the processed `cfu_per_mL`/`sample_cfu` (from that tube's own OD600, per mL), total reads over listed genotypes, and `freq_denominator` = `adjusted_counts / frequency` (includes `__unknown__` reads and pseudocounts) | +| `binding.csv`, `base_growth.csv`, `presplit.csv` | copied as-is (the snapshot's `presplit.csv` has the off-by-one residue numbering; the corrected one is `dev/presplit.csv` in the main clone) | + +Condition names are stripped of trailing spaces (`'pheS-4CP '`). + +## How to run + +```bash +python extract_snapshot.py ~/Desktop/2026-07-23_data-snapshot.tar.gz \ + ~/work/programming/git-clones/tfscreen/dev/real-2026-07-23 +``` + +About 15 minutes. The output goes to the main clone's untracked `dev/` so +it survives worktrees; nothing from it is committed. + +## Other inputs the studies use + +- `~/Desktop/2026-07-23_onward/combined_fit_sample_df.csv`: one row per + sequenced tube (118, of which 113 appear in `growth.csv`) with per-tube + `od600`, `cfu_est` and `fit_lncfu`/`fit_lncfu_sem`, the global smoothed + total (a polynomial in time per condition from repeated OD600 runs, + through the calibration). Sample names differ in format from + `growth.csv` (`0.0001` vs `0o0001`), so join on + `replicate, condition_sel, titrant_conc, t_sel`. +- `~/Desktop/tfscreen-notebooks/od600-to-cfu/od600_to_cfu.yaml`: the lab's + OD600-to-CFU calibration. + +Units differ between files: `growth.csv`'s `sample_cfu` is cfu/mL from the +tube's own OD600; `combined_fit_sample_df.csv`'s `cfu_est` is 10x cfu/mL. +The studies use only within-file differences and slopes, which do not +depend on the scale. diff --git a/planning/studies/step0-data/extract_snapshot.py b/planning/studies/step0-data/extract_snapshot.py new file mode 100644 index 00000000..f1349830 --- /dev/null +++ b/planning/studies/step0-data/extract_snapshot.py @@ -0,0 +1,99 @@ +""" +Extract a compact, analysis-ready copy of the 2026-07-23 real-data snapshot +for the roadmap's step 0 studies (planning/analysis-roadmap.md). + +growth.csv in the snapshot is 8.2 GB (one row per sample x genotype, with +every sample-level column repeated on every row). This streams it straight +out of the tarball, without unpacking, and writes: + + counts.parquet sample, genotype, counts (one row per sample x genotype) + samples.parquet one row per sample: design columns, per-tube OD600 and + CFU columns as processed, total reads over the listed + genotypes, and the frequency denominator implied by the + processed columns (adjusted_counts / frequency), which + includes the __unknown__ reads and pseudocounts + binding.csv, base_growth.csv, presplit.csv copied as-is + +Usage: + python extract_snapshot.py SNAPSHOT_TAR OUT_DIR +""" + +import sys +import tarfile +from pathlib import Path + +import numpy as np +import pandas as pd + +PREFIX = "2026-07-23_data-snapshot/data/" + +SAMPLE_COLS = ["sample", "replicate", "condition_pre", "t_pre", + "condition_sel", "t_sel", "titrant_name", "titrant_conc", + "seq_run", "od600", "library", "cfu_per_mL", "cfu_per_mL_std", + "detectable", "sample_cfu", "sample_cfu_std"] +ROW_COLS = ["sample", "genotype", "counts", "adjusted_counts", "frequency"] + + +def _extract_growth(tar, out_dir, chunksize=2_000_000): + + member = tar.getmember(PREFIX + "growth.csv") + fh = tar.extractfile(member) + + usecols = sorted(set(SAMPLE_COLS + ROW_COLS)) + count_parts = [] + sample_rows = {} + denom = {} + total = {} + + reader = pd.read_csv(fh, usecols=usecols, chunksize=chunksize, + dtype={"sample": "string", "genotype": "string"}) + n = 0 + for chunk in reader: + n += len(chunk) + chunk["condition_pre"] = chunk["condition_pre"].str.strip() + chunk["condition_sel"] = chunk["condition_sel"].str.strip() + + first = chunk.drop_duplicates("sample") + for _, r in first[SAMPLE_COLS].iterrows(): + sample_rows.setdefault(r["sample"], r.to_dict()) + + d = (chunk["adjusted_counts"] / chunk["frequency"]).groupby(chunk["sample"]).median() + for s, v in d.items(): + denom.setdefault(s, v) + t = chunk.groupby("sample")["counts"].sum() + for s, v in t.items(): + total[s] = total.get(s, 0) + int(v) + + count_parts.append(pd.DataFrame({ + "sample": chunk["sample"].astype("category"), + "genotype": chunk["genotype"].astype("category"), + "counts": chunk["counts"].astype(np.int64), + })) + print(f" {n:,} rows", flush=True) + + counts = pd.concat(count_parts, ignore_index=True) + counts["sample"] = counts["sample"].astype(str).astype("category") + counts["genotype"] = counts["genotype"].astype(str).astype("category") + counts.to_parquet(out_dir / "counts.parquet", index=False) + + samples = pd.DataFrame(list(sample_rows.values())) + samples["reads_listed"] = samples["sample"].map(total) + samples["freq_denominator"] = samples["sample"].map(denom) + samples.to_parquet(out_dir / "samples.parquet", index=False) + + print(f"{len(counts):,} count rows, {len(samples)} samples, " + f"{counts['genotype'].nunique():,} genotypes") + + +def main(tar_path, out_dir): + out_dir = Path(out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + with tarfile.open(tar_path, "r:gz") as tar: + for name in ["binding.csv", "base_growth.csv", "presplit.csv"]: + data = tar.extractfile(tar.getmember(PREFIX + name)).read() + (out_dir / name).write_bytes(data) + _extract_growth(tar, out_dir) + + +if __name__ == "__main__": + main(sys.argv[1], sys.argv[2]) From 98fb6db07401271769fc483f3233c5b688f8b1b6 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 16:52:17 -0700 Subject: [PATCH 052/208] Allow growth-only models with no binding data (roadmap step 1) The growth-only relative fit (Track G) needs to fit growth data without assuming that in vitro binding equals in vivo occupancy. Until now every growth model required binding data. - ModelOrchestrator accepts binding_df=None with growth data: no binding tensors, BindingData, binding weight, theta_binding_noise component or binding observer; priors.binding is None. It refuses binding_weight or a non-zero binding noise model without binding data, binding_only without binding, and a missing growth_df unless binding_only. - jax_model skips the binding prediction and likelihood when data.binding is None (static structure, jit-safe). - tfs-configure-model: binding_df becomes --binding_df; at least one of binding_df and growth_df is required. Callers updated (examples/simulate-and-analyze/run.sh, the congression-calibration run.srun, docs). - Prediction, tfs-predict-growth: handle a missing binding table. tfs-prefit-calibration refuses a growth-only config. tfs-summarize-fit plots wt, spiked genotypes and ten fixed-seed others when there are no binding genotypes. - configuration_io: an absent prior group is left out of the priors CSV instead of written as "None" (which reloaded as NaN). Joint models are unchanged: identical log density at a fixed seed for single and mixture. Tests: tests/tfscreen/tfmodel/test_growth_only.py and a growth-only smoke test (configure, fit, posterior, extract, predict). Full unit suite: 4978 passed, 15 skipped. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 21 +++ CLAUDE.md | 4 +- docs/source/analysis.rst | 2 +- docs/source/ligandmpnn-features.rst | 2 +- docs/source/model-inputs.rst | 36 ++-- examples/simulate-and-analyze/run.sh | 2 +- planning/analysis-roadmap.md | 27 ++- planning/growth-only-relative-fit.md | 5 +- .../studies/congression-calibration/run.srun | 2 +- src/tfscreen/tfmodel/analysis/prediction.py | 6 +- src/tfscreen/tfmodel/configuration_io.py | 8 + src/tfscreen/tfmodel/generative/model.py | 37 ++-- src/tfscreen/tfmodel/model_orchestrator.py | 159 +++++++++++------ .../tfmodel/scripts/configure_model_cli.py | 25 ++- .../tfmodel/scripts/predict_growth_cli.py | 9 +- .../tfmodel/scripts/prefit_calibration_cli.py | 11 ++ .../tfmodel/scripts/summarize_fit_cli.py | 30 +++- tests/smoke-tests/test_configure_run_smoke.py | 41 +++++ .../tfmodel/scripts/test_configure_and_run.py | 8 +- .../tfmodel/scripts/test_summarize_fit_cli.py | 16 +- tests/tfscreen/tfmodel/test_growth_only.py | 167 ++++++++++++++++++ .../tfmodel/test_model_orchestrator.py | 1 + 22 files changed, 502 insertions(+), 117 deletions(-) create mode 100644 tests/tfscreen/tfmodel/test_growth_only.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ffc7a91..ff22cca3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,17 @@ fall into two kinds: ### Added +- **Growth-only models (no binding data).** `ModelOrchestrator` accepts + `binding_df=None` alongside growth data, and `tfs-configure-model` takes + `--binding_df` as an optional flag (at least one of `--binding_df` and + `--growth_df` is required). A growth-only model has no binding tensors, + no binding likelihood and no `theta_binding_noise` component; it refuses + a `binding_weight` or a non-`zero` binding noise model, and + `tfs-prefit-calibration` refuses a growth-only config. + `tfs-summarize-fit` then plots trajectories for wt, the spiked genotypes + and ten other genotypes chosen with a fixed seed, instead of every + genotype. Joint growth + binding models are unchanged (identical log + density at a fixed seed). Step 1 of `planning/analysis-roadmap.md`. - **Soft-min congression dk rules (`congression_dk_rule` `softmin`, `min`).** A congressed cell's dk_geno can now follow the whole soft-min family `dk_cell = -(1/alpha) log sum_g x_g exp(-alpha dk_g)`, not only its @@ -137,6 +148,11 @@ fall into two kinds: ### Changed +- **`tfs-configure-model`: `binding_df` is now the `--binding_df` flag**, + no longer a positional argument (breaking for command-line callers; + `configure_model(binding_path, ...)` from Python still works). + `examples/simulate-and-analyze/run.sh`, the congression-calibration + study's `run.srun` and the docs are updated. - **Breaking: a congressed cell's theta now follows a partition function (`congression_theta_rule: homodimer`), and TF activity defaults to 1.** The congression mixture (`transformation: mixture`) and the simulator @@ -347,6 +363,11 @@ fall into two kinds: ### Fixed +- **Absent prior groups survive the priors CSV.** `write_configuration` + wrote a `None` prior group (growth priors of a binding-only model, binding + priors of a growth-only one) as a `None` row that reloaded as NaN; it is + now left out and reloads as `None` (`configuration_io._extract_scalars`, + `_update_dataclass`). - **MAP parameter movement silently lost all its prior-SD units on models with a horseshoe slab.** `initialization.site_prior_sds` did not catch the `ZeroDivisionError` numpyro raises for the variance of an `InverseGamma` diff --git a/CLAUDE.md b/CLAUDE.md index 11adf8f9..cdf5d8fb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -136,7 +136,7 @@ The hierarchical Bayesian inference engine. Key files: - `ln_cfu0/`: `hierarchical`, `hierarchical_factored` - `sample_offset/`: `zero`, `normal` -- **`generative/observe/`** — *not* under `components/`, and not swappable via YAML. Holds the four observation-likelihood layers (`binding`, `growth`, `presplit`, `base_growth`), registered under flat `model_registry` keys `observe_binding`/`observe_growth`/`observe_presplit`/`observe_base_growth`. `ModelOrchestrator` wires in `observe_binding` and (unless `binding_only`) `observe_growth` unconditionally, plus `observe_presplit`/`observe_base_growth` only when the corresponding data (`presplit_df`/`base_growth_df`) was supplied — these are parallel, independently-gated observers, not alternative choices for one axis. +- **`generative/observe/`** — *not* under `components/`, and not swappable via YAML. Holds the four observation-likelihood layers (`binding`, `growth`, `presplit`, `base_growth`), registered under flat `model_registry` keys `observe_binding`/`observe_growth`/`observe_presplit`/`observe_base_growth`. `ModelOrchestrator` wires in `observe_binding` whenever binding data were supplied and (unless `binding_only`) `observe_growth`, plus `observe_presplit`/`observe_base_growth` only when the corresponding data (`presplit_df`/`base_growth_df`) was supplied — these are parallel, independently-gated observers, not alternative choices for one axis. **Growth-only models** (`binding_df=None`, `tfs-configure-model` without `--binding_df`) have `data.binding = None`, `priors.binding = None`, no `theta_binding_noise` component and no binding sites in the model (`jax_model` gates them on `data.binding is not None`, static structure); the orchestrator refuses a `binding_weight` or a non-`zero` `theta_binding_noise` without binding, and `tfs-prefit-calibration` refuses a growth-only config. Absent prior groups are left out of the priors CSV (`configuration_io._extract_scalars` / `_update_dataclass` skip `None`), so they reload as `None`, not NaN. ### Adding a New Model Component @@ -558,7 +558,7 @@ Positional argument order (use only what the script needs): ### `--library_config` -`tfs-configure-model` and `tfs-build-empirical` take the library YAML as `--library_config`. It is an exception to the positional-if-required rule: `tfs-configure-model` requires it only when `growth_df` is given, and `growth_df` is itself a flag, so a positional would be wrong for the binding-only call. Validate it in the function body instead. +`tfs-configure-model` and `tfs-build-empirical` take the library YAML as `--library_config`. It is an exception to the positional-if-required rule: `tfs-configure-model` requires it only when `growth_df` is given, and `growth_df` is itself a flag, so a positional would be wrong for the binding-only call. Validate it in the function body instead. The same holds for the data: `tfs-configure-model` takes `--binding_df` and `--growth_df` as flags and requires at least one (both: joint model; binding only: binding-only model; growth only: growth-only model). ### Output flag diff --git a/docs/source/analysis.rst b/docs/source/analysis.rst index 1f48c27e..8c7d6e18 100644 --- a/docs/source/analysis.rst +++ b/docs/source/analysis.rst @@ -35,7 +35,7 @@ data is useful, and the exact file format for ``binding_df``, ``growth_df``, .. code-block:: bash - tfs-configure-model binding.csv \ + tfs-configure-model --binding_df binding.csv \ --growth_df growth.csv \ --library_config run_config.yaml \ --out_prefix tfs_configure diff --git a/docs/source/ligandmpnn-features.rst b/docs/source/ligandmpnn-features.rst index 1469cf82..b52043f5 100644 --- a/docs/source/ligandmpnn-features.rst +++ b/docs/source/ligandmpnn-features.rst @@ -170,7 +170,7 @@ selecting a ``PnnC`` theta component: .. code-block:: bash - tfs-configure-model binding.csv --growth_df growth.csv \ + tfs-configure-model --binding_df binding.csv --growth_df growth.csv \ --theta_model thermo.O2_C4_K3_U0_a.PnnC \ --thermo_data ensemble.h5 diff --git a/docs/source/model-inputs.rst b/docs/source/model-inputs.rst index 02aaef50..7df23b92 100644 --- a/docs/source/model-inputs.rst +++ b/docs/source/model-inputs.rst @@ -3,9 +3,9 @@ Model Input Data ================= ``tfs-configure-model`` (see :doc:`analysis`, Step 1) accepts up to five -pieces of experimental input. Only ``binding_df`` is strictly required; -everything else is optional and adds additional constraints to the -model. This page describes what each input contributes to the fit, the +pieces of experimental input. At least one of ``binding_df`` and +``growth_df`` is required; everything else is optional and adds additional +constraints to the model. This page describes what each input contributes to the fit, the rough amount of data that is useful in practice, and how it is passed in. .. list-table:: @@ -16,7 +16,7 @@ rough amount of data that is useful in practice, and how it is passed in. - Required? - What it anchors * - ``binding_df`` - - Yes + - No (growth-only model if omitted) - Absolute scale/shape of *θ*, independent of growth * - ``growth_df`` - No (binding-only model if omitted) @@ -41,10 +41,20 @@ function of titrant concentration, independent of any growth-rate observation. Because it measures *θ* directly rather than through the growth likelihood, binding data anchors the absolute scale and shape of the occupancy curve — resolving degeneracies (e.g. between *θ* and -activity *A*) that growth data alone cannot separate. It is the only -required input to ``tfs-configure-model``: with ``growth_df`` omitted, a -binding-only model is configured that infers *θ* from ``binding_df`` -alone. +activity *A*) that growth data alone cannot separate. With ``growth_df`` +omitted, a binding-only model is configured that infers *θ* from +``binding_df`` alone. + +Binding data are optional. With ``binding_df`` omitted, a **growth-only** +model infers *θ* from growth alone. Growth then fixes *θ* only up to an +affine map (the growth slope ``m`` and baseline ``k`` compensate for any +rescaling of *θ*), so the absolute scale of *θ* rests on the priors. A +growth-only model has no binding likelihood: ``theta_binding_noise_model`` +must stay ``zero``, ``binding_weight`` must be unset, and +``tfs-prefit-calibration`` (which calibrates the growth-*θ* link on the +genotypes with binding data) refuses it. ``tfs-summarize-fit`` then plots +trajectories for wt, the spiked genotypes and ten other genotypes chosen +with a fixed seed, instead of the binding genotypes. **Scale** @@ -84,7 +94,7 @@ Passed as the required positional argument: .. code-block:: bash - tfs-configure-model binding.csv --growth_df growth.csv + tfs-configure-model --binding_df binding.csv --growth_df growth.csv Growth Data (``growth_df``) ============================== @@ -120,7 +130,7 @@ Passed via the optional flag: .. code-block:: bash - tfs-configure-model binding.csv --growth_df growth.csv + tfs-configure-model --binding_df binding.csv --growth_df growth.csv base_growth Data (``base_growth_df``) ======================================== @@ -170,7 +180,7 @@ Passed via the optional flag: .. code-block:: bash - tfs-configure-model binding.csv --growth_df growth.csv \ + tfs-configure-model --binding_df binding.csv --growth_df growth.csv \ --base_growth_df base_growth.csv Pre-split Data (``presplit_df``) @@ -202,7 +212,7 @@ Passed via the optional flag: .. code-block:: bash - tfs-configure-model binding.csv --growth_df growth.csv \ + tfs-configure-model --binding_df binding.csv --growth_df growth.csv \ --presplit_df presplit.csv transformation_lambda @@ -240,6 +250,6 @@ forbidden (must be omitted) when it is ``single``: .. code-block:: bash - tfs-configure-model binding.csv --growth_df growth.csv \ + tfs-configure-model --binding_df binding.csv --growth_df growth.csv \ --transformation_model mixture \ --transformation_lambda 0.36 0.05 diff --git a/examples/simulate-and-analyze/run.sh b/examples/simulate-and-analyze/run.sh index bcb34316..37d13304 100644 --- a/examples/simulate-and-analyze/run.sh +++ b/examples/simulate-and-analyze/run.sh @@ -57,7 +57,7 @@ cd "${run_dir}" # Edit the flags here to change which model components are used. echo ">>> Configure model" tfs-configure-model \ - tfs_sim_binding.csv \ + --binding_df tfs_sim_binding.csv \ --growth_df tfs_sim_growth.csv \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index c838a53c..2aa8c5e6 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -261,6 +261,16 @@ congression calibration grid, 0.78-0.87 after convergence fixes). Breaking changes are allowed throughout (D12); each modeling step ends with a simulation checked by `tfs-summarize-calibration`. +**Implementation order (D14, 2026-09-26).** While the refined data are +gathered, build what does not hang on it: 1 -> 4 -> 7 (with supplied +totals) -> 5 -> 3, then 2's OD600 part, 6, 7b, 8, 9 as data arrive. Step 7 +comes before step 6: until the population model exists, each tube's total +is the supplied `sample_ln_cfu` (as today) and the tube offset is +`ln depth_s - sample_ln_cfu_s + u_s`; step 6 later replaces the supplied +totals. The count and depth columns of step 2 come with step 7. The +congression plan's step 6 (re-validate on the count likelihood) waits on +step 7. + 0. **Studies on real data** (no package code; run in parallel; all can start now). Data: the 2026-07-23 snapshot, extracted by @@ -335,7 +345,7 @@ a simulation checked by `tfs-summarize-calibration`. not pin `k_c`. Still needed: the third bioreplicate's OD600, the repeated OD600 runs behind the smoothed totals, and the presplit OD600 and dilution. -1. **Binding-optional plumbing** (G). +1. [x] **Binding-optional plumbing** (G). The list in the idea file: `binding_df` becomes `--binding_df` in `tfs-configure-model` (at least one of growth/binding required; no phantom `data.binding`); the orchestrator gates binding tensors, `BindingData`, the @@ -350,6 +360,12 @@ a simulation checked by `tfs-summarize-calibration`. smoke test on `growth-smoke.csv` + `library-smoke.yaml`. Check that a joint fit is unchanged (fixed-seed MAP loss against main): not for compatibility, but to show the plumbing changed nothing it should not. + Done 2026-09-26. Joint model log density at a fixed seed identical to + before (`single` and `mixture`). Also fixed: absent prior groups + (`priors.binding` here, `priors.growth` for binding-only) reloaded from + the priors CSV as NaN; they are now left out and stay `None`. Tests: + `tests/tfscreen/tfmodel/test_growth_only.py`, a growth-only smoke test + in `tests/smoke-tests/test_configure_run_smoke.py`. 2. **Counts and OD600 through processing** (N; breaking). - `counts_to_lncfu` writes `counts` and per-tube depth (with `__unknown__`) next to today's columns. The same for @@ -448,8 +464,11 @@ a simulation checked by `tfs-summarize-calibration`. 7. **Count likelihood** (N). `growth_likelihood: counts` (C2): growth and presplit observers with `reads_{g,s} ~ NegBin(depth_s * exp(ln n_{g,s} - P_s + u_s), dispersion)`, - `P` and `u` from step 6, a learned dispersion whose variance scales with - the mean (C12; one per experiment; no + `P` from step 6 (until then, the supplied `sample_ln_cfu`, D14), `u` + from step 6's `sample_offset`, and a learned dispersion with both a term + proportional to the mean and a quadratic term, + `var = mu (1 + phi) + mu^2 / r`, so the refined data only set priors + (C12; one per experiment; no per-batch term, D8), optional index hopping (`E[reads] = N (p_g + h q_g)`), and, for future screens, a spike-in counting standard (a non-growing pseudo-genotype of known abundance per tube, which fixes `P_s`). @@ -541,6 +560,8 @@ User, 2026-09-26. - **D13. One framing for growth regimes** (user, 2026-09-26). Once a physically motivated model is chosen (7b; D9 for the population curve), models outside that framing are removed, not kept as options. +- **D14. Build order while data are gathered** (user, 2026-09-26): steps + 1, 4, 7 (supplied totals), 5, 3; see "Steps". ## Open diff --git a/planning/growth-only-relative-fit.md b/planning/growth-only-relative-fit.md index 92e8c53b..c9a25798 100644 --- a/planning/growth-only-relative-fit.md +++ b/planning/growth-only-relative-fit.md @@ -1,6 +1,6 @@ --- title: Fit growth alone on a wt-relative scale, then measure the growth-binding map -status: idea +status: promoted filed: 2026-09-26 area: tfmodel revisit_when: >- @@ -20,6 +20,9 @@ related: - planning/studies/congression-calibration/README.md --- +**Promoted 2026-09-26** into `planning/analysis-roadmap.md` (Track G: steps +0a, 1, 5, 8, 9). Step 1, the growth-only plumbing listed below, is done. + **Context:** While calibrating fits for congression, it became clear we want to fit growth data without binding data, at least to check whether the two are consistent. An investigation (2026-09-25) found the plumbing is small but diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index a517a17d..22e69c03 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -112,7 +112,7 @@ fi echo ">>> Configure (${FIT}, lambda prior ${LAM_PRIOR}, theta rule ${FIT_THETA_RULE}, dk rule ${FIT_DK_RULE}${FIT_DK_ALPHA:+ alpha ${FIT_DK_ALPHA}})" tfs-configure-model \ - tfs_sim_binding.csv \ + --binding_df tfs_sim_binding.csv \ --growth_df "${GROWTH_CSV}" \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ diff --git a/src/tfscreen/tfmodel/analysis/prediction.py b/src/tfscreen/tfmodel/analysis/prediction.py index 654e2c13..f175dce6 100644 --- a/src/tfscreen/tfmodel/analysis/prediction.py +++ b/src/tfscreen/tfmodel/analysis/prediction.py @@ -262,8 +262,10 @@ def _get_input(value, col_name): new_growth_df["ln_cfu_std"] = 1.0 # We keep the binding_df as is, as it's keyed by genotype/titrant_name - # and we aren't subsetting those in this step. - new_binding_df = orchestrator.binding_df.copy() + # and we aren't subsetting those in this step. A growth-only model has + # none. + new_binding_df = (None if orchestrator.binding_df is None + else orchestrator.binding_df.copy()) # Create new ModelOrchestrator using settings from the old one settings = orchestrator.settings.copy() diff --git a/src/tfscreen/tfmodel/configuration_io.py b/src/tfscreen/tfmodel/configuration_io.py index e1a4c839..8325246e 100644 --- a/src/tfscreen/tfmodel/configuration_io.py +++ b/src/tfscreen/tfmodel/configuration_io.py @@ -25,6 +25,11 @@ def _extract_scalars(obj, prefix=""): if k.startswith("_") or k in ['replace', 'asdict', '__class__', 'tree_flatten', 'tree_unflatten']: continue v = getattr(obj, k) + if v is None: + # An absent component (e.g. binding priors in a growth-only model, + # growth priors in a binding-only one). Writing it would come back + # as NaN; leaving it out keeps it None on read. + continue if hasattr(v, '__dataclass_fields__'): out.update(_extract_scalars(v, prefix + k + ".")) elif isinstance(v, dict): @@ -91,6 +96,9 @@ def _update_dataclass(dc, prefix, flat_dict): full_key = f"{prefix}{field_name}" if prefix else field_name attr_val = getattr(dc, field_name) + if attr_val is None: + # Absent component; nothing to update (see _extract_scalars). + continue if hasattr(attr_val, '__dataclass_fields__'): updates[field_name] = _update_dataclass(attr_val, full_key + ".", flat_dict) elif isinstance(attr_val, dict): diff --git a/src/tfscreen/tfmodel/generative/model.py b/src/tfscreen/tfmodel/generative/model.py index c4d95f26..75608ec4 100644 --- a/src/tfscreen/tfmodel/generative/model.py +++ b/src/tfscreen/tfmodel/generative/model.py @@ -35,12 +35,14 @@ def jax_model(data: DataClass, - growth_noise - sample_offset - calculate_growth - - theta_binding_noise + - theta_binding_noise (absent in a growth-only model) - theta_growth_noise - - observe_binding + - observe_binding (absent in a growth-only model) - observe_growth - is_guide - The dictionary can also optionally have `observe_presplit` and/or + A growth-only model has ``data.binding = None``; the binding + prediction and likelihood are then skipped (static structure, so this + is jit-safe). The dictionary can also optionally have `observe_presplit` and/or `observe_base_growth` (the side-channel observers, present only when their data was supplied), plus `batch_idx` (which overrides whatever is in `batch_size`) or `batch_size`. @@ -52,8 +54,8 @@ def jax_model(data: DataClass, binding_only = control.get("binding_only", False) is_guide = control["is_guide"] theta_model, calc_theta, _ = control["theta"] - theta_binding_noise_model = control["theta_binding_noise"] - binding_observer = control["observe_binding"] + theta_binding_noise_model = control.get("theta_binding_noise") + binding_observer = control.get("observe_binding") # ------------------------------------------------------------------------- # Binding-only mode: theta is inferred directly from observed theta values. @@ -107,14 +109,16 @@ def jax_model(data: DataClass, priors.theta) # ------------------------------------------------------------------------- - # Make prediction for the binding experiment + # Make prediction for the binding experiment (none in a growth-only model) - theta_binding = calc_theta(theta,data.binding) - pyro.deterministic(f"theta_binding_pred",theta_binding) - binding_pred = theta_binding_noise_model("theta_binding_noise", - theta_binding, - priors.binding.theta_binding_noise, - data=data.binding) + has_binding = data.binding is not None + if has_binding: + theta_binding = calc_theta(theta,data.binding) + pyro.deterministic(f"theta_binding_pred",theta_binding) + binding_pred = theta_binding_noise_model("theta_binding_noise", + theta_binding, + priors.binding.theta_binding_noise, + data=data.binding) # ------------------------------------------------------------------------- # Make prediction for the growth experiment @@ -194,7 +198,8 @@ def jax_model(data: DataClass, growth_observer("growth", data.growth, None, priors=priors.growth.growth_obs) - binding_observer("binding", data.binding, None) + if has_binding: + binding_observer("binding", data.binding, None) # Register side-channel guide sites. presplit.guide is a no-op (it # introduces no latents); base_growth.guide registers the k_ref @@ -267,13 +272,15 @@ def jax_model(data: DataClass, ln_cfu_pred = ln_cfu0 + total_growth + delta_sample # Register results - pyro.deterministic(f"binding_pred", binding_pred) + if has_binding: + pyro.deterministic(f"binding_pred", binding_pred) pyro.deterministic(f"growth_pred", ln_cfu_pred) # Calculate likelihood growth_observer("growth", data.growth, ln_cfu_pred, sigma_k=sigma_k, priors=priors.growth.growth_obs) - binding_observer("binding", data.binding, binding_pred) + if has_binding: + binding_observer("binding", data.binding, binding_pred) def _population(growth, theta, calc_theta, dk_population, activity_population): diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index 42bb0d6f..6f316b40 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -781,9 +781,13 @@ class ModelOrchestrator: Parameters ---------- growth_df : pd.DataFrame or str - DataFrame or path to file with growth data. - binding_df : pd.DataFrame or str - DataFrame or path to file with binding data. + DataFrame or path to file with growth data. None for a binding-only + model (``binding_only=True``). + binding_df : pd.DataFrame or str or None + DataFrame or path to file with binding data. None for a growth-only + model: theta is then inferred from growth alone, with no binding + likelihood, no ``theta_binding_noise`` component and no binding + weight (both of which are refused unless left at their defaults). condition_growth : str, optional Model name for condition-specific growth. Allowed values are 'linear' (default), 'linear_independent', 'power', or 'saturation'. @@ -947,6 +951,27 @@ def __init__(self, if self._transformation in _RETIRED_TRANSFORMATIONS: raise ValueError(_RETIRED_TRANSFORMATIONS[self._transformation]) + # A growth-only model has no binding data at all: no binding tensors, + # no binding likelihood, no binding noise component. + self._has_binding = binding_df is not None + if self._binding_only and not self._has_binding: + raise ValueError("binding_only=True requires binding_df.") + if not self._binding_only and growth_df is None: + raise ValueError( + "growth_df is required unless binding_only=True.") + if not self._has_binding: + if self._binding_weight is not None: + raise ValueError( + f"binding_weight={self._binding_weight!r} was given but " + f"there is no binding_df; a growth-only model has no " + f"binding likelihood to weight.") + if self._theta_binding_noise != "zero": + raise ValueError( + f"theta_binding_noise={self._theta_binding_noise!r} was " + f"given but there is no binding_df; a growth-only model " + f"has no binding observations to add noise to. Leave it " + f"at 'zero'.") + if self._congression_theta_rule not in _CONGRESSION_THETA_RULES: raise ValueError( f"congression_theta_rule must be one of " @@ -1283,40 +1308,47 @@ def _initialize_data(self): }) # --------------------------------------------------------------------- - # binding dataclass - - # Load in the binding data, creating one block of tensors. This is - # only (titrant_conc,theta_group). Use the growth tensor manager to - # make sure that the mapping to parameters matches between the growth - # and the binding data. - self.binding_df = _read_binding_df(self._binding_df,self.growth_tm.df) - self.binding_tm = _build_binding_tm(self.binding_df) - - # Grab the sizes - sizes = {"num_titrant_name":self.binding_tm.tensor_shape[0], - "num_titrant_conc":self.binding_tm.tensor_shape[1], - "num_genotype":self.binding_tm.tensor_shape[2]} - other_data = {"scatter_theta":0} - - # Grab the titrant concentration and log_titrant_conc (1D array from - # the tensor labels along dimension 6) - idx = np.where(np.array(self.binding_tm.tensor_dim_names) == "titrant_conc")[0][0] - titrant_conc = np.array(self.binding_tm.tensor_dim_labels[idx]) - log_titrant_conc = titrant_conc.copy() - log_titrant_conc[log_titrant_conc == 0] = ZERO_CONC_VALUE - log_titrant_conc = np.log(log_titrant_conc) - - other_data["titrant_conc"] = titrant_conc - other_data["log_titrant_conc"] = log_titrant_conc - - binding_data_sources = [self.binding_tm.tensors,sizes,other_data] + # binding dataclass (absent in a growth-only model) + + if self._has_binding: + + # Load in the binding data, creating one block of tensors. This is + # only (titrant_conc,theta_group). Use the growth tensor manager to + # make sure that the mapping to parameters matches between the + # growth and the binding data. + self.binding_df = _read_binding_df(self._binding_df,self.growth_tm.df) + self.binding_tm = _build_binding_tm(self.binding_df) + + # Grab the sizes + sizes = {"num_titrant_name":self.binding_tm.tensor_shape[0], + "num_titrant_conc":self.binding_tm.tensor_shape[1], + "num_genotype":self.binding_tm.tensor_shape[2]} + other_data = {"scatter_theta":0} + + # Grab the titrant concentration and log_titrant_conc (1D array + # from the tensor labels along dimension 6) + idx = np.where(np.array(self.binding_tm.tensor_dim_names) == "titrant_conc")[0][0] + titrant_conc = np.array(self.binding_tm.tensor_dim_labels[idx]) + log_titrant_conc = titrant_conc.copy() + log_titrant_conc[log_titrant_conc == 0] = ZERO_CONC_VALUE + log_titrant_conc = np.log(log_titrant_conc) + + other_data["titrant_conc"] = titrant_conc + other_data["log_titrant_conc"] = log_titrant_conc + + binding_data_sources = [self.binding_tm.tensors,sizes,other_data] + binding_genotypes = self.binding_tm.tensor_dim_labels[-1] + else: + self.binding_df = None + self.binding_tm = None + binding_genotypes = np.array([], dtype=object) # --------------------------------------------------------------------- # Create full-batch data (source of truth for indices and shapes) # Pass None as batch_size to get full indices and scale factors of 1.0 full_batch_data = _setup_batching(self.growth_tm.tensor_dim_labels[-1], - self.binding_tm.tensor_dim_labels[-1], + binding_genotypes, batch_size=None) # If mini-batching is requested, pre-calculate the scale vector that @@ -1325,7 +1357,7 @@ def _initialize_data(self): # Use the helper to find indices and scale factor for the target batch size scaling_info = _setup_batching(self.growth_tm.tensor_dim_labels[-1], - self.binding_tm.tensor_dim_labels[-1], + binding_genotypes, self._batch_size) # Create a full-sized vector with these scale factors @@ -1347,22 +1379,25 @@ def _initialize_data(self): growth_batch_data["geno_theta_idx"] = np.arange(full_batch_data["batch_size"],dtype=int) growth_data_sources.append(growth_batch_data) - # Record relevant batch data for the binding dataset - binding_batch_data = {} - binding_num_binding = full_batch_data["num_binding"] - binding_batch_data["batch_idx"] = full_batch_data["batch_idx"][:binding_num_binding] - binding_batch_data["batch_size"] = binding_num_binding - binding_batch_data["scale_vector"] = full_batch_data["scale_vector"][:binding_num_binding] - binding_batch_data["geno_theta_idx"] = np.arange(binding_num_binding,dtype=int) - - # Apply binding weight: upscale the binding likelihood to compete with - # the (typically much larger) growth dataset. None → auto-compute as - # N_growth_rows / N_binding_rows so each binding observation contributes - # the same weight as the average growth observation. - if self._binding_weight is None: - self._binding_weight = len(self.growth_tm.df) / max(len(self.binding_tm.df), 1) - binding_batch_data["scale_vector"] = binding_batch_data["scale_vector"] * self._binding_weight - binding_data_sources.append(binding_batch_data) + if self._has_binding: + + # Record relevant batch data for the binding dataset + binding_batch_data = {} + binding_num_binding = full_batch_data["num_binding"] + binding_batch_data["batch_idx"] = full_batch_data["batch_idx"][:binding_num_binding] + binding_batch_data["batch_size"] = binding_num_binding + binding_batch_data["scale_vector"] = full_batch_data["scale_vector"][:binding_num_binding] + binding_batch_data["geno_theta_idx"] = np.arange(binding_num_binding,dtype=int) + + # Apply binding weight: upscale the binding likelihood to compete + # with the (typically much larger) growth dataset. None → + # auto-compute as N_growth_rows / N_binding_rows so each binding + # observation contributes the same weight as the average growth + # observation. + if self._binding_weight is None: + self._binding_weight = len(self.growth_tm.df) / max(len(self.binding_tm.df), 1) + binding_batch_data["scale_vector"] = binding_batch_data["scale_vector"] * self._binding_weight + binding_data_sources.append(binding_batch_data) # --------------------------------------------------------------------- # Populate dataclasses @@ -1377,8 +1412,11 @@ def _initialize_data(self): growth_dataclass = growth_dataclass.replace(struct_names=_struct_names_tuple) # Populate a BindingData flax dataclass with all keys in `sources` - binding_dataclass = populate_dataclass(BindingData, - sources=binding_data_sources) + if self._has_binding: + binding_dataclass = populate_dataclass(BindingData, + sources=binding_data_sources) + else: + binding_dataclass = None # --------------------------------------------------------------------- # presplit dataclass (optional) @@ -1642,8 +1680,10 @@ def _initialize_classes(self): ("transformation", self._transformation, "growth"), ("theta_growth_noise", self._theta_growth_noise, "growth"), ("growth_noise", self._growth_noise, "growth"), - ("sample_offset", self._sample_offset, "growth"), - ("theta_binding_noise", self._theta_binding_noise, "binding")] + ("sample_offset", self._sample_offset, "growth")] + if self._has_binding: + load_map.append(("theta_binding_noise", + self._theta_binding_noise, "binding")) main_control_kwargs = {"is_guide":False} guide_control_kwargs = {"is_guide":True} @@ -1774,9 +1814,11 @@ def _initialize_classes(self): main_control_kwargs["theta_rescale"] = rescale_fn guide_control_kwargs["theta_rescale"] = rescale_fn - # Set the observables; growth observer is only needed in the full model - main_control_kwargs["observe_binding"] = model_registry["observe_binding"].observe - guide_control_kwargs["observe_binding"] = model_registry["observe_binding"].guide + # Set the observables; the binding observer only when there is binding + # data, the growth observer only in the full model + if self._has_binding: + main_control_kwargs["observe_binding"] = model_registry["observe_binding"].observe + guide_control_kwargs["observe_binding"] = model_registry["observe_binding"].guide if not self._binding_only: main_control_kwargs["observe_growth"] = model_registry["observe_growth"].observe guide_control_kwargs["observe_growth"] = model_registry["observe_growth"].guide @@ -1839,8 +1881,11 @@ def _initialize_classes(self): ) growth_priors = populate_dataclass(GrowthPriors, sources=priors_class_kwargs["growth"]) - binding_priors = populate_dataclass(BindingPriors, - sources=priors_class_kwargs["binding"]) + if self._has_binding: + binding_priors = populate_dataclass(BindingPriors, + sources=priors_class_kwargs["binding"]) + else: + binding_priors = None priors = populate_dataclass(PriorsClass, sources=dict(theta=priors_class_kwargs["theta"]["theta"], growth=growth_priors, diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index fba9213a..d8c54f88 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -121,7 +121,7 @@ def check_genotypes_in_library(library_genotypes, data_df, label, ) -def configure_model(binding_df, +def configure_model(binding_df=None, growth_df=None, presplit_df=None, base_growth_df=None, @@ -158,15 +158,19 @@ def configure_model(binding_df, for a growth model, {out_prefix}_library.csv (the per-genotype library composition resolved from library_config). - When only binding_df is provided (no growth_df), a binding-only model is - configured that infers theta directly from observed binding measurements - rather than from bacterial growth data. + At least one of growth_df and binding_df is required. With both, the + joint growth + binding model is configured. With only binding_df, a + binding-only model infers theta directly from the binding measurements. + With only growth_df, a growth-only model infers theta from growth alone + (no binding likelihood, so theta_binding_noise_model must stay 'zero' + and binding_weight unset; tfs-prefit-calibration needs binding and + refuses such a config). Parameters ---------- - binding_df : str + binding_df : str, optional Path to the binding data CSV file (theta vs. titrant measurements per - genotype). Required. + genotype). When omitted, a growth-only model is configured. growth_df : str, optional Path to the growth data CSV file (ln_cfu measurements per genotype, replicate, and timepoint). When omitted, a binding-only model is @@ -319,8 +323,9 @@ def configure_model(binding_df, ------- None """ - if binding_df is None: - raise ValueError("binding_df must be provided") + if binding_df is None and growth_df is None: + raise ValueError("At least one of binding_df and growth_df must be " + "provided.") binding_only = growth_df is None if not binding_only: @@ -407,7 +412,9 @@ def configure_model(binding_df, write_configuration(orchestrator=orchestrator, out_prefix=out_prefix, growth_df_path=growth_path, - binding_df_path=binding_df if isinstance(binding_df, str) else "binding.csv", + binding_df_path=(None if binding_df is None else + binding_df if isinstance(binding_df, str) + else "binding.csv"), presplit_df_path=presplit_path, base_growth_df_path=base_growth_path, library_meta=library_meta) diff --git a/src/tfscreen/tfmodel/scripts/predict_growth_cli.py b/src/tfscreen/tfmodel/scripts/predict_growth_cli.py index 556abf2a..18d005b3 100644 --- a/src/tfscreen/tfmodel/scripts/predict_growth_cli.py +++ b/src/tfscreen/tfmodel/scripts/predict_growth_cli.py @@ -200,11 +200,12 @@ def predict_growth(config_file, f"genotypes based on available memory.", flush=True) # Binding genotypes (those with direct theta_obs measurements) must appear - # in every batch so the binding TensorManager is never empty. - try: - binding_genos = [str(g) for g in orchestrator.binding_df["genotype"].unique()] - except Exception: + # in every batch so the binding TensorManager is never empty. A + # growth-only model has none. + if orchestrator.binding_df is None: binding_genos = [] + else: + binding_genos = [str(g) for g in orchestrator.binding_df["genotype"].unique()] binding_set = set(binding_genos) # Subset mode: predict a single memory-fit block of genotypes rather than diff --git a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py index e2ff7135..20031043 100644 --- a/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py +++ b/src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py @@ -1293,6 +1293,17 @@ def run_prefit_calibration(config_file, if seed is None and checkpoint_file is None: raise ValueError("seed must be provided unless loading from a checkpoint.") + # The calibration fits the growth-theta link on genotypes that have both + # growth and binding data, so a growth-only model has nothing to fit. + with open(config_file, "r") as fh: + _data_paths = (yaml.safe_load(fh) or {}).get("data", {}) + if not _data_paths.get("binding"): + raise ValueError( + f"{config_file} is a growth-only model (no binding data). " + f"tfs-prefit-calibration calibrates the growth-theta link on the " + f"genotypes that have binding measurements, so it needs binding " + f"data. Fit a growth-only model with tfs-fit-model directly.") + # 1. Resolve production config and CSV targets. priors_path, guesses_path = _resolve_csv_paths(config_file) orchestrator_prod, _ = read_configuration(config_file) diff --git a/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py b/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py index ce54a438..44002c4c 100644 --- a/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py +++ b/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py @@ -80,6 +80,31 @@ def _try_plot_theta_fits(binding_df, pred_df, out_prefix): warnings.warn(f"Could not generate theta fit plots: {exc}") +# Number of randomly chosen extra genotypes whose trajectories are plotted +# when the run has no binding genotypes to plot. +_TRAJECTORY_RANDOM_GENOTYPES = 10 + + +def _default_trajectory_genotypes(orchestrator, + num_random=_TRAJECTORY_RANDOM_GENOTYPES, + seed=0): + """ + Genotypes to plot when there is no binding data to choose them: wt, the + spiked genotypes, and a fixed-seed sample of ``num_random`` others (so + reruns plot the same ones). Without this a growth-only run would write a + trajectory CSV and PDF for every genotype in the library. + """ + tm = orchestrator.growth_tm + all_genos = [str(g) for g in tm.tensor_dim_labels[tm.tensor_dim_names.index("genotype")]] + spiked = [str(g) for g in (orchestrator.settings.get("spiked_genotypes") or [])] + keep = [g for g in ["wt"] + spiked if g in all_genos] + keep = list(dict.fromkeys(keep)) + rest = sorted(set(all_genos) - set(keep)) + rng = np.random.default_rng(seed) + extra = rng.choice(rest, size=min(num_random, len(rest)), replace=False) + return keep + sorted(str(g) for g in extra) + + def _try_plot_trajectories(config_file, config_yaml, run_dir, out_prefix, binding_df): """Attempt to generate per-genotype growth trajectory plots. @@ -103,7 +128,10 @@ def _try_plot_trajectories(config_file, config_yaml, run_dir, out_prefix, bindin orchestrator, _ = read_configuration(config_file) - genotypes = list(binding_df["genotype"].unique()) if binding_df is not None else None + if binding_df is not None: + genotypes = list(binding_df["genotype"].unique()) + else: + genotypes = _default_trajectory_genotypes(orchestrator) pred_df = predict_geno_trajectory_df( orchestrator, diff --git a/tests/smoke-tests/test_configure_run_smoke.py b/tests/smoke-tests/test_configure_run_smoke.py index 083e2597..86a80f40 100644 --- a/tests/smoke-tests/test_configure_run_smoke.py +++ b/tests/smoke-tests/test_configure_run_smoke.py @@ -143,6 +143,47 @@ def test_configure_run_pipeline_smoke(tmpdir, library_smoke_yaml): assert os.path.exists(os.path.join(tmpdir, "test_tfs_out_hill_n.csv")) +@pytest.mark.slow +def test_configure_run_growth_only_smoke(tmpdir, growth_smoke_csv, + library_smoke_yaml): + """ + configure -> fit -> sample posterior -> extract params -> predict growth + for a growth-only model (growth data, no binding data). + """ + from tfscreen.tfmodel.scripts.predict_growth_cli import predict_growth + + cfg_prefix = os.path.join(tmpdir, "test_tfs_go") + configure_model(growth_df=growth_smoke_csv, + library_config=library_smoke_yaml, + out_prefix=cfg_prefix) + config_file = f"{cfg_prefix}_config.yaml" + with open(config_file, "r") as f: + config = yaml.safe_load(f) + assert "binding" not in config["data"] + + out_prefix = os.path.join(tmpdir, "test_tfs_go_out") + fit_model(config_file=config_file, + seed=42, + max_num_epochs=1, + out_prefix=out_prefix) + + sample_posterior(config_file=config_file, + checkpoint_file=f"{out_prefix}_checkpoint.pkl", + out_prefix=f"{out_prefix}_posterior", + num_posterior_samples=10, + sampling_batch_size=10) + posterior = f"{out_prefix}_posterior.h5" + assert os.path.exists(posterior) + + summarize_posteriors(config_file=config_file, + param_file=posterior, + out_prefix=out_prefix) + + predict_growth(config_file, posterior, out_prefix=f"{out_prefix}_pred") + pred = pd.read_csv(f"{out_prefix}_pred.csv") + assert len(pred) > 0 + + @pytest.mark.slow @pytest.mark.parametrize("guide_type", ["auto_normal", "auto_low_rank_multivariate_normal"]) diff --git a/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py b/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py index df9eface..3ee91af6 100644 --- a/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py +++ b/tests/tfscreen/tfmodel/scripts/test_configure_and_run.py @@ -425,8 +425,9 @@ def test_read_configuration_unknown_key_error_mentions_label(tmpdir): def test_configure_model_errors(tmpdir): - # Missing binding_df - with pytest.raises(ValueError, match="binding_df must be provided"): + # Neither binding_df nor growth_df + with pytest.raises(ValueError, + match="At least one of binding_df and growth_df"): configure_model(None) def test_update_dataclass_recursion(): @@ -564,7 +565,8 @@ class Comp: def test_mains(mocker): # Test main functions via mocker to cover boilerplate - mocker.patch("sys.argv", ["tfs-configure", "b.csv", "--growth_df", "g.csv"]) + mocker.patch("sys.argv", ["tfs-configure", "--binding_df", "b.csv", + "--growth_df", "g.csv"]) # Mock the internal call so we don't actually run it mock_run = mocker.patch("tfscreen.tfmodel.scripts.configure_model_cli.configure_model", autospec=True) from tfscreen.tfmodel.scripts.configure_model_cli import main diff --git a/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py b/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py index 0728a953..25c1f2df 100644 --- a/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_summarize_fit_cli.py @@ -1176,9 +1176,16 @@ def test_passes_genotypes_from_binding_df(self, tmp_path): _, kwargs = mock_pdf.call_args assert set(kwargs["genotypes"]) == {"wt", "A1B", "C2D"} - def test_passes_none_genotypes_when_binding_df_is_none(self, tmp_path): + def test_default_subset_when_binding_df_is_none(self, tmp_path): + """Without binding genotypes (a growth-only model) the plots cover a + default subset, not every genotype in the library.""" (tmp_path / "run_posterior.h5").touch() - with patch(_PATCH_READ_CONFIG, return_value=(MagicMock(), {})), \ + orch = MagicMock() + orch.growth_tm.tensor_dim_names = ["replicate", "genotype"] + orch.growth_tm.tensor_dim_labels = [ + ["R1"], ["wt", "S1"] + [f"A{i}B" for i in range(30)]] + orch.settings = {"spiked_genotypes": ["S1"]} + with patch(_PATCH_READ_CONFIG, return_value=(orch, {})), \ patch(_PATCH_PREDICT_DF, return_value=_MOCK_PRED_DF) as mock_pdf, \ patch(_PATCH_PLOT_GENO, return_value=MagicMock()): _try_plot_trajectories( @@ -1189,7 +1196,10 @@ def test_passes_none_genotypes_when_binding_df_is_none(self, tmp_path): binding_df=None, ) _, kwargs = mock_pdf.call_args - assert kwargs["genotypes"] is None + genos = kwargs["genotypes"] + assert genos[:2] == ["wt", "S1"] + assert len(genos) == 2 + 10 + assert len(set(genos)) == len(genos) # ------------------------------------------------------------------ # CSV output: one CSV per genotype alongside each trajectory PDF diff --git a/tests/tfscreen/tfmodel/test_growth_only.py b/tests/tfscreen/tfmodel/test_growth_only.py new file mode 100644 index 00000000..c44c10a3 --- /dev/null +++ b/tests/tfscreen/tfmodel/test_growth_only.py @@ -0,0 +1,167 @@ +""" +Growth-only models: growth data with no binding data (roadmap step 1, +planning/analysis-roadmap.md). + +Theta is then inferred from growth alone: no binding tensors, no binding +likelihood, no theta_binding_noise component and no binding weight. +""" +import os + +import numpy as np +import pandas as pd +import pytest +import yaml +from numpyro.handlers import seed, trace + +from tfscreen.tfmodel.analysis.prediction import copy_orchestrator +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.inference.batch_safety import ( + find_orchestrator_batch_dependent_latents, + find_orchestrator_batch_order_mismatches, +) +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator +from tfscreen.tfmodel.scripts.configure_model_cli import configure_model +from tfscreen.tfmodel.scripts.prefit_calibration_cli import run_prefit_calibration +from tfscreen.tfmodel.scripts.summarize_fit_cli import _default_trajectory_genotypes + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") +_LIBRARY_YAML = os.path.join(_SMOKE_DATA, "library-smoke.yaml") + + +@pytest.fixture(scope="module") +def growth_only(): + return ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=None, + batch_size=6) + + +def _trace(orchestrator, guide=False): + fn = orchestrator.jax_model_guide if guide else orchestrator.jax_model + data = orchestrator.get_batch(orchestrator.data, + orchestrator.get_random_idx(batch_key=0)) + return trace(seed(fn, 0)).get_trace(data=data, priors=orchestrator.priors) + + +# --------------------------------------------------------------------------- +# Orchestrator and model +# --------------------------------------------------------------------------- + +def test_no_binding_data(growth_only): + assert growth_only.binding_df is None + assert growth_only.binding_tm is None + assert growth_only.data.binding is None + assert growth_only.data.num_binding == 0 + assert growth_only.priors.binding is None + assert "observe_binding" not in growth_only.main_control_kwargs + assert "theta_binding_noise" not in growth_only.main_control_kwargs + + +def test_model_and_guide_have_no_binding_sites(growth_only): + for guide in (False, True): + sites = _trace(growth_only, guide=guide) + assert not [k for k in sites if "binding" in k] + assert "growth_pred" in _trace(growth_only) + + +def test_growth_only_is_batch_safe(growth_only): + assert find_orchestrator_batch_dependent_latents(growth_only) == {} + assert find_orchestrator_batch_order_mismatches(growth_only) == {} + + +def test_growth_sites_match_joint_model(growth_only): + """Dropping binding removes the binding sites and nothing else.""" + joint = ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV, + batch_size=6) + joint_sites = {k for k in _trace(joint) if "binding" not in k} + assert set(_trace(growth_only)) == joint_sites + + +@pytest.mark.parametrize("kwargs,match", [ + ({"binding_weight": 2.0}, "binding_weight"), + ({"theta_binding_noise": "beta"}, "theta_binding_noise"), +]) +def test_binding_settings_refused_without_binding(kwargs, match): + with pytest.raises(ValueError, match=match): + ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=None, **kwargs) + + +def test_binding_only_needs_binding(): + with pytest.raises(ValueError, match="binding_only=True requires"): + ModelOrchestrator(None, None, binding_only=True) + + +def test_growth_needed_unless_binding_only(): + with pytest.raises(ValueError, match="growth_df is required"): + ModelOrchestrator(None, _BINDING_CSV) + + +def test_prediction_copy(growth_only): + new = copy_orchestrator(growth_only, genotypes=["wt"]) + assert new.data.binding is None + assert new.binding_df is None + + +# --------------------------------------------------------------------------- +# Configuration round trip +# --------------------------------------------------------------------------- + +@pytest.fixture +def growth_only_config(tmp_path): + out_prefix = str(tmp_path / "go") + configure_model(growth_df=_GROWTH_CSV, library_config=_LIBRARY_YAML, + out_prefix=out_prefix, skip_model_stats=True) + return f"{out_prefix}_config.yaml", f"{out_prefix}_priors.csv" + + +def test_configure_writes_no_binding(growth_only_config): + config_file, priors_file = growth_only_config + with open(config_file) as fh: + config = yaml.safe_load(fh) + assert "binding" not in config["data"] + assert config["components"]["binding_only"] is False + assert config["components"]["binding_weight"] is None + + # An absent component is left out of the priors CSV, not written as a + # "None" row (which came back as NaN). + priors = pd.read_csv(priors_file) + assert not priors["parameter"].str.startswith("binding").any() + assert not (priors["value"].astype(str) == "None").any() + + +def test_configure_round_trip(growth_only_config): + config_file, _ = growth_only_config + orchestrator, _ = read_configuration(config_file) + assert orchestrator.data.binding is None + assert orchestrator.priors.binding is None + + +def test_configure_needs_growth_or_binding(): + with pytest.raises(ValueError, match="At least one of binding_df"): + configure_model() + + +def test_prefit_refuses_growth_only(growth_only_config): + config_file, _ = growth_only_config + with pytest.raises(ValueError, match="growth-only model"): + run_prefit_calibration(config_file, seed=0) + + +# --------------------------------------------------------------------------- +# tfs-summarize-fit's default trajectory subset +# --------------------------------------------------------------------------- + +def test_default_trajectory_genotypes(growth_only): + genos = _default_trajectory_genotypes(growth_only, num_random=3, seed=0) + assert genos[0] == "wt" + assert len(genos) == len(set(genos)) + # Same seed, same subset. + assert genos == _default_trajectory_genotypes(growth_only, num_random=3, + seed=0) + library = set(np.asarray(growth_only.growth_tm.tensor_dim_labels[ + growth_only.growth_tm.tensor_dim_names.index("genotype")]).astype(str)) + assert set(genos) <= library diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index 3ec52f78..8c59c0f3 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -1458,6 +1458,7 @@ def capturing_get_priors(condition_labels=None, is_selection=None): orchestrator.growth_df = growth_df orchestrator._data = MagicMock() orchestrator._binding_only = False + orchestrator._has_binding = True orchestrator._batch_size = None orchestrator._condition_growth = "linear" orchestrator._growth_transition = "instant" From 590687dae69d2eecdd6ed17199f26b6b523b804a Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 17:07:14 -0700 Subject: [PATCH 053/208] Add sampling noise and OD600 to the simulator (roadmap step 4) Real read counts vary 5-18x more than Poisson at 100-3,000 reads (study 0b); the simulator's were pure Poisson, so its calibration grids understated the noise any fit faces. It also had no OD600, which the population model (step 6) will observe. - Optional config keys, all off by default (byte-identical output without them): founder_sampling (Poisson founders per clone per tube), demographic_growth (Gamma growth / binomial death given founders), pcr_template_molecules and pcr_amplification_cv (reads drawn from amplified template molecules), shared_transformation (one library assembly and transformation for every replicate, as from one glycerol stock; replicates used to redraw both). - od600 block (simulate/od600.py): one OD600 reading per tube from its true total through an OD600-to-CFU calibration, with reading noise, detection threshold and range flags; optional OD600-derived sample_cfu (as the lab estimates it) and OD-only replicates; simulate_cli writes tfs_sim_od600.csv. od600.calibration is a tfs-setup-sim-grid path key. - selection_experiment gains shared_state and sequence (False for OD-only replicates). - examples/simulate/od600_calibration.yaml: a synthetic calibration for examples and tests (no lab's real constants). Checked: the template bottleneck raises the count variance/Poisson ratio by (reads/templates)(1 + cv^2), as designed. Tests for every option (moments of founder and demographic noise, the bottleneck variance formula, shared vs independent transformation, OD600 round trip and flags, the OD600 output). Simulator tests: 707 passed. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 14 + CLAUDE.md | 6 + docs/source/simulation.rst | 18 ++ examples/simulate/od600_calibration.yaml | 16 ++ examples/simulate/simulate_config.yaml | 47 ++++ planning/analysis-roadmap.md | 17 +- src/tfscreen/simulate/od600.py | 140 +++++++++ .../simulate/scripts/setup_sim_grid_cli.py | 1 + src/tfscreen/simulate/scripts/simulate_cli.py | 42 ++- src/tfscreen/simulate/selection_experiment.py | 265 ++++++++++++++++-- tests/tfscreen/simulate/test_od600.py | 90 ++++++ .../simulate/test_selection_experiment.py | 172 +++++++++++- tests/tfscreen/simulate/test_simulate_cli.py | 61 ++++ 13 files changed, 860 insertions(+), 29 deletions(-) create mode 100644 examples/simulate/od600_calibration.yaml create mode 100644 src/tfscreen/simulate/od600.py create mode 100644 tests/tfscreen/simulate/test_od600.py diff --git a/CHANGELOG.md b/CHANGELOG.md index ff22cca3..0c0d2c81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,20 @@ fall into two kinds: ### Added +- **Simulator sampling noise and OD600 (roadmap step 4).** Optional + simulate-config keys, all off by default so existing configs simulate + exactly as before: `founder_sampling` (Poisson founders per clone per + tube), `demographic_growth` (birth-death noise given the founders), + `shared_transformation` (one library assembly and transformation for all + replicates, as from one glycerol stock), `pcr_template_molecules` and + `pcr_amplification_cv` (a template bottleneck with PCR jackpotting before + sequencing). An `od600` block gives every tube one simulated OD600 reading + through an OD600-to-CFU calibration (`simulate/od600.py`), optionally + feeds the pipeline the OD600-derived total instead of the truth, adds + OD-only replicates, and writes `tfs_sim_od600.csv`. + `selection_experiment` gains `shared_state` and `sequence`. + `examples/simulate/od600_calibration.yaml` is a synthetic calibration for + examples; `od600.calibration` is a `tfs-setup-sim-grid` path key. - **Growth-only models (no binding data).** `ModelOrchestrator` accepts `binding_df=None` alongside growth data, and `tfs-configure-model` takes `--binding_df` as an optional flag (at least one of `--binding_df` and diff --git a/CLAUDE.md b/CLAUDE.md index cdf5d8fb..e8a8d889 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -283,6 +283,10 @@ The optional `base_growth_data` YAML block generates a simulated `base_growth_df - Each growth model uses different YAML parameter names than the fit's extract names, and the module hand-maintains the mapping (`b,m` → `growth_k,growth_m` for `linear`; `b,a,n` → `growth_k,growth_m,growth_n` for `power`; `kmin,kmax` → `growth_min,growth_max` for `saturation`) by comparing `simulate/growth/growth_linkage.py`'s numpy formulas against the corresponding JAX formulas in `generative/components/growth/*.py`. If a new `condition_growth` component is added, this mapping must be extended too, or its parameters won't get ground-truth comparison in `tfs-summarize-fit`. - On the `tfmodel` side, `tfmodel/scripts/summarize_fit_cli.py::_summarize_condition_growth_params` and `_summarize_k_ref` join these two files against the fit's extracted params (on `condition_rep`, and trivially for the single-row `k_ref`, respectively) to annotate them with a `ref` column, mirroring `_summarize_params`'s genotype-keyed comparison but for growth's condition-keyed/global-scalar parameters. +### Sampling noise (roadmap step 4) + +Optional simulate-config keys, all off by default (a config without them simulates byte-for-byte as before): `founder_sampling` (`_sim_growth`: each tube gets a Poisson number of cells per transformant clone, drawn per tube), `demographic_growth` (given founders, Gamma(n0, e^kt) growth or Binomial(n0, e^kt) death; needs `founder_sampling`), `shared_transformation` (one library assembly and transformation shared by all replicates through the `shared_state` dict `simulate_cli` passes to `selection_experiment`; without it each replicate redraws both, unlike the real protocol's single glycerol stock), `pcr_template_molecules` / `pcr_amplification_cv` (`_sim_sequencing`: reads drawn from a multinomial set of template molecules, each amplified by a Gamma factor; count variance grows by about `(reads/templates)(1 + cv^2)`). `selection_experiment(..., sequence=False)` simulates totals (and OD600) without reads, for OD-only replicates. Real counts are 5-18x Poisson at 100-3,000 reads (`planning/studies/noise-anatomy/`); matching that needs templates on the order of reads per tube / 10. + ### theta_gc_override and theta_params_override These two dicts are the mechanism by which binding data is "pinned" into the growth simulation. @@ -311,6 +315,7 @@ These two dicts are the mechanism by which binding data is "pinned" into the gro | `simulate/base_growth_data.py` | Generates simulated direct growth-rate calibration data (`base_growth_data` YAML block) and the single-row `k_ref` ground-truth echo | | `simulate/growth_parameters_output.py` | Generates per-condition `condition_growth` ground truth (`tfs_sim_growth_parameters.csv`) from the `growth` YAML block | | `simulate/presplit_data.py` | Generates simulated pre-split (t = -t_pre) data (`presplit_data` YAML block; `generate_presplit_df`) | +| `simulate/od600.py` | Simulated OD600 per tube (`od600` YAML block): inverts the lab-format calibration (`A/B/C_CFU`, `OD600_PCT_STD`, `OD600_MEAS_THRESHOLD`, optional `OD600_MAX`, `P/Q/R_JCJT_CFU`) to get each tube's true OD600, adds reading noise, flags detectable/in-range, and (`sample_cfu_from_od600`) runs it forward to the lab's estimate. `simulate_cli` writes `tfs_sim_od600.csv` for every replicate, including `num_od_only_replicates` extra unsequenced ones | | `simulate/sample_theta.py` | `sample_theta_prior` (prior-predictive) and `sample_theta_stratified` (greedy maximin) | | `simulate/sim_data_class.py` | `SimData` container and `build_sim_data` factory | | `simulate/build_sample_dataframes.py` | Constructs sample/timepoint DataFrames from simulation config | @@ -504,6 +509,7 @@ Both grid CLIs import from `tfscreen.util.grid_utils` for run-name generation, J |------|---------| | `simulate/simulate_config.yaml` | Canonical well-commented simulate config reference | | `simulate/simulate_grid.yaml` | Example simulate grid for `tfs-setup-sim-grid` | +| `simulate/od600_calibration.yaml` | Synthetic OD600-to-CFU calibration for the `od600` block in examples and tests (not any lab's real calibration) | | `simulate/run.sh` | Jinja2 shell template rendered into each simulate grid run subdir | | `simulate-and-analyze/simulate_config.yaml` | Combined simulate + analyze workflow config | | `simulate-empirical/simulate_config.yaml` | Simulate config that resamples phenotypes from a `tfs-build-empirical` model (`phenotype_source: empirical`) | diff --git a/docs/source/simulation.rst b/docs/source/simulation.rst index cf394fd6..fde30a3c 100644 --- a/docs/source/simulation.rst +++ b/docs/source/simulation.rst @@ -56,6 +56,24 @@ cell's theta and TF activity) and ``congression_dk_rule`` (default any genotype. This replaces ``multi_plasmid_combine_fcn``, which combined whole growth rates and is now rejected. +**Sampling noise** (optional; all off by default) — ``founder_sampling`` +(each tube seeded with a Poisson number of cells from each transformant +clone), ``demographic_growth`` (birth-death noise given those founders), +``shared_transformation`` (every replicate draws from one library assembly and +transformation, as from one glycerol stock), ``pcr_template_molecules`` and +``pcr_amplification_cv`` (reads drawn from a limited number of amplified +template molecules). Without them simulated read counts are Poisson; real +counts vary several times more (``planning/studies/noise-anatomy/``). See the +commented block in ``examples/simulate/simulate_config.yaml``. + +**OD600** (optional) — an ``od600`` block (``calibration``, +``tube_volume_mL``, ``num_od_only_replicates``, ``sample_cfu_from_od600``) +gives every tube one OD600 reading from its true total through an +OD600-to-CFU calibration, with reading noise and the detection threshold, and +writes ``tfs_sim_od600.csv`` for every replicate, including extra replicates +that are read but not sequenced. With ``sample_cfu_from_od600`` the pipeline +receives each tube's total as estimated from its reading, as in the lab. + **Growth transition** (optional) — ``growth_transition`` list; one entry per ``condition_pre`` that has a detectable lag phase. Supported models: ``instant``, ``memory``. diff --git a/examples/simulate/od600_calibration.yaml b/examples/simulate/od600_calibration.yaml new file mode 100644 index 00000000..5f75b292 --- /dev/null +++ b/examples/simulate/od600_calibration.yaml @@ -0,0 +1,16 @@ +# Synthetic OD600-to-CFU calibration for examples and tests only. +# +# A real calibration depends on the plate reader, plate, volume and strain, +# so every lab measures its own (tfs-calibrate-od600, roadmap step 3). These +# numbers are made up to be plausible, not taken from any instrument. +# +# cfu/mL = A_CFU + B_CFU * OD600 + C_CFU * OD600^2 +A_CFU: 0.0 +B_CFU: 80_000_000.0 +C_CFU: 20_000_000.0 +# SD of one OD600 reading, as a fraction of the reading. +OD600_PCT_STD: 0.02 +# Readings below this are not measurable. +OD600_MEAS_THRESHOLD: 0.08 +# Top of the calibrated range. +OD600_MAX: 0.8 diff --git a/examples/simulate/simulate_config.yaml b/examples/simulate/simulate_config.yaml index 852b45d6..69183d26 100644 --- a/examples/simulate/simulate_config.yaml +++ b/examples/simulate/simulate_config.yaml @@ -286,6 +286,53 @@ prob_index_hop: 0.05 # Random seed for reproducibility. Set to null for a random seed each run. seed: null +# --------------------------------------------------------------------------- +# Sampling noise (optional; all off when omitted) +# --------------------------------------------------------------------------- + +# Real read counts vary 5-18x more than Poisson at 100-3,000 reads +# (planning/studies/noise-anatomy/). These switches add the physical sources; +# each can be turned on alone to measure what it does to a fit. +# +# founder_sampling: each tube is seeded with a Poisson number of cells from +# each transformant clone (mean cfu0 * frequency), drawn anew for every +# tube, so a rare genotype's starting abundance differs between tubes. +# demographic_growth: given its founders, a clone's cells at harvest are +# Gamma(founders, exp(kt)) when it grows and Binomial(founders, exp(kt)) +# when it shrinks. Needs founder_sampling. +# shared_transformation: every replicate draws its cells from one library +# assembly and transformation (one glycerol stock), as in the real +# protocol, instead of redrawing them per replicate. +# pcr_template_molecules: reads are drawn from this many template molecules +# per tube. The count variance grows by about +# (reads per tube / templates) * (1 + pcr_amplification_cv^2). +# pcr_amplification_cv: CV of each template's amplification (PCR +# jackpotting). Needs pcr_template_molecules. +# +# founder_sampling: true +# demographic_growth: true +# shared_transformation: true +# pcr_template_molecules: 2_000_000 +# pcr_amplification_cv: 1.0 + +# One OD600 reading per tube, from its true total through an OD600-to-CFU +# calibration (od600_calibration.yaml here is synthetic; a lab supplies its +# own). Writes tfs_sim_od600.csv with every tube of every replicate. +# calibration: constants file (A_CFU, B_CFU, C_CFU, +# OD600_PCT_STD, OD600_MEAS_THRESHOLD, optional +# OD600_MAX and P/Q/R_JCJT_CFU) +# tube_volume_mL: tube volume; the calibration is per mL (5.0) +# num_od_only_replicates: extra replicates with OD600 but no reads (0) +# sample_cfu_from_od600: give the pipeline each tube's total as estimated +# from its OD600, as the lab does, instead of the +# true total (false) +# +# od600: +# calibration: od600_calibration.yaml +# tube_volume_mL: 5.0 +# num_od_only_replicates: 1 +# sample_cfu_from_od600: true + # --------------------------------------------------------------------------- # Binding data simulation (optional) # --------------------------------------------------------------------------- diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 2aa8c5e6..4bc78a5c 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -395,7 +395,7 @@ step 7. `process_raw/`. Test: reproduces the lab notebook's constants and CFU estimates from its spreadsheets (run locally; the data stay out of the repo), and a synthetic example in `examples/`. -4. **Simulator realism** (N; simulator only). +4. [x] **Simulator realism** (N; simulator only). The simulator has index hopping (`prob_index_hop`) and per-tube growth noise (per timepoint, matching the design) but writes `sample_cfu_std = 0.0` and no OD. Add: OD600 per tube through an inverse @@ -411,6 +411,21 @@ step 7. so its effect on the fit can be measured (a scientific switch, D12). Values from 0b and 0c. Needed to validate steps 6 and 7, and step 5 under realistic noise. + Done 2026-09-26: `founder_sampling`, `demographic_growth`, + `pcr_template_molecules`, `pcr_amplification_cv`, an `od600` block + (`simulate/od600.py`; OD-only replicates, `tfs_sim_od600.csv`, + `sample_cfu_from_od600`), plus `shared_transformation`: every replicate + used to redraw the library assembly and transformation, unlike the real + protocol's single glycerol stock. With all options off the simulator's + output is byte-identical to before. Checked on the example config: the + template bottleneck adds `(reads / templates)(1 + cv^2)` to the + variance/Poisson ratio, as designed; the example config's 260k reads + per tube against 2M templates gives only 1.2-1.8x, so matching the real + 5-18x needs templates on the order of reads per tube / 10 (about 1-2M + at the real ~18M reads per tube). The example config's tubes also reach + OD600 2.9, above a realistic calibrated range; tune `cfu0` and timing + before using its OD600. Deferred: monoculture growth-rate outputs and a + spike-in counting standard (waiting on the bench decisions). 5. **Relative-X fit** (G; new component, opt-in). - A relative Hill theta component: hill_geno's curve with real-valued baselines, population priors centered on wt, registry rules (C5). Gauge diff --git a/src/tfscreen/simulate/od600.py b/src/tfscreen/simulate/od600.py new file mode 100644 index 00000000..25e55b2d --- /dev/null +++ b/src/tfscreen/simulate/od600.py @@ -0,0 +1,140 @@ +""" +Simulated OD600 readings of each tube's total population. + +The experiment estimates each tube's total cells from one OD600 reading +through a lab-specific quadratic calibration, ``cfu/mL = A + B OD + C OD^2`` +(see ``docs/source/process-raw.rst``, "One tube per time-point"). The +simulator knows each tube's true total, so it runs the calibration backwards +to get the true OD600, adds the reader's noise, and applies the reader's +detection threshold, then (optionally) runs the calibration forwards again, +as the lab does, to get the estimated total the pipeline would ingest. + +The calibration constants are read in the format the lab's calibration +notebook writes (``A_CFU``, ``B_CFU``, ``C_CFU``, ``OD600_PCT_STD``, +``OD600_MEAS_THRESHOLD`` and, optionally, ``P_JCJT_CFU``, ``Q_JCJT_CFU``, +``R_JCJT_CFU`` for the calibration curve's own error and ``OD600_MAX`` for +the top of the calibrated range). Roadmap step 3 replaces this with a +generic calibration file (planning/analysis-roadmap.md). +""" + +import numpy as np + +from tfscreen.util import read_yaml + +_REQUIRED = ("A_CFU", "B_CFU", "C_CFU", "OD600_PCT_STD", "OD600_MEAS_THRESHOLD") +_OPTIONAL = ("P_JCJT_CFU", "Q_JCJT_CFU", "R_JCJT_CFU", "OD600_MAX") + + +def read_od600_calibration(calibration): + """ + Read OD600-to-CFU calibration constants. + + Parameters + ---------- + calibration : str or dict + Path to a calibration YAML, or the dict itself. + + Returns + ------- + dict + The constants as floats; optional ones missing from the input are + None. + + Raises + ------ + ValueError + If a required constant is missing, or the calibration curve is not + increasing over the calibrated range. + """ + cal = read_yaml(calibration) + missing = [k for k in _REQUIRED if k not in cal] + if missing: + raise ValueError(f"OD600 calibration is missing {missing}.") + out = {k: float(cal[k]) for k in _REQUIRED} + for k in _OPTIONAL: + out[k] = None if cal.get(k) is None else float(cal[k]) + + top = out["OD600_MAX"] if out["OD600_MAX"] is not None else 1.0 + for od in (out["OD600_MEAS_THRESHOLD"], top): + if out["B_CFU"] + 2 * out["C_CFU"] * od <= 0: + raise ValueError( + f"OD600 calibration curve is not increasing at OD600 {od}; " + f"it cannot be inverted.") + return out + + +def od600_to_cfu_per_mL(od600, cal): + """ + Forward calibration: estimated cfu/mL and its SD from OD600. + + Readings below the detection threshold are evaluated at the threshold + (the lab's convention), so they give an upper bound. The SD combines + the reading noise through the curve's slope and, when the calibration + supplies it, the curve's own error. + + Returns + ------- + cfu_per_mL, cfu_per_mL_std, detectable : numpy.ndarray + """ + od = np.atleast_1d(np.asarray(od600, dtype=float)).copy() + detectable = od >= cal["OD600_MEAS_THRESHOLD"] + od[~detectable] = cal["OD600_MEAS_THRESHOLD"] + + cfu = cal["A_CFU"] + cal["B_CFU"] * od + cal["C_CFU"] * od ** 2 + slope = cal["B_CFU"] + 2 * cal["C_CFU"] * od + var = (slope * cal["OD600_PCT_STD"] * od) ** 2 + if cal["P_JCJT_CFU"] is not None: + curve_sd = (cal["P_JCJT_CFU"] + cal["Q_JCJT_CFU"] * od + + cal["R_JCJT_CFU"] * od ** 2) + var = var + curve_sd ** 2 + return cfu, np.sqrt(var), detectable + + +def cfu_per_mL_to_od600(cfu_per_mL, cal): + """ + Inverse calibration: the OD600 whose calibrated value is ``cfu_per_mL`` + (the root on the increasing branch of the quadratic). Totals below the + curve's value at OD 0 map to OD 0. + """ + y = np.atleast_1d(np.asarray(cfu_per_mL, dtype=float)) + a, b, c = cal["A_CFU"], cal["B_CFU"], cal["C_CFU"] + if c == 0: + od = (y - a) / b + else: + disc = np.maximum(b ** 2 - 4 * c * (a - y), 0.0) + od = (-b + np.sqrt(disc)) / (2 * c) + return np.maximum(od, 0.0) + + +def simulate_od600(total_cfu, volume_mL, cal, rng): + """ + One OD600 reading per tube from its true total population. + + Parameters + ---------- + total_cfu : array_like + True total cells in each tube. + volume_mL : float + Tube volume (the calibration is per mL). + cal : dict + Constants from :func:`read_od600_calibration`. + rng : numpy.random.Generator + + Returns + ------- + dict of numpy.ndarray + ``od600`` (the reading, with multiplicative noise of SD + ``OD600_PCT_STD``), ``od600_detectable`` (reading at or above the + detection threshold) and ``od600_in_range`` (reading at or below + ``OD600_MAX``; always True when the calibration gives no maximum). + """ + true_od = cfu_per_mL_to_od600(np.asarray(total_cfu, dtype=float) / volume_mL, cal) + od = true_od * (1.0 + cal["OD600_PCT_STD"] * rng.standard_normal(true_od.shape)) + od = np.maximum(od, 0.0) + detectable = od >= cal["OD600_MEAS_THRESHOLD"] + if cal["OD600_MAX"] is None: + in_range = np.ones(od.shape, dtype=bool) + else: + in_range = od <= cal["OD600_MAX"] + return {"od600": od, "od600_detectable": detectable, + "od600_in_range": in_range} diff --git a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py index b9123525..2666852e 100644 --- a/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py +++ b/src/tfscreen/simulate/scripts/setup_sim_grid_cli.py @@ -87,6 +87,7 @@ ("thermo_data",), ("calibration_file",), ("empirical", "phenotype_model"), + ("od600", "calibration"), ("binding_data", "spiked_binding", "choose_by"), ("binding_data", "library_binding", "choose_by"), ) diff --git a/src/tfscreen/simulate/scripts/simulate_cli.py b/src/tfscreen/simulate/scripts/simulate_cli.py index 2777fa84..b9bc462c 100644 --- a/src/tfscreen/simulate/scripts/simulate_cli.py +++ b/src/tfscreen/simulate/scripts/simulate_cli.py @@ -41,7 +41,12 @@ def run_simulation_from_config( tfscreen.simulate.base_growth_data.generate_base_growth_df and .generate_k_ref_df). If it contains a 'presplit_data' block, also writes a simulated presplit CSV (see - tfscreen.simulate.presplit_data.generate_presplit_df). + tfscreen.simulate.presplit_data.generate_presplit_df). If it contains an + 'od600' block, also writes one OD600 reading per tube for every + replicate, sequenced or not ('od600'; see tfscreen.simulate.od600), and + simulates od600.num_od_only_replicates extra replicates that get OD600 + but no reads. With shared_transformation, every replicate (OD-only ones + included) draws its cells from one library assembly and transformation. Parameters ---------- @@ -78,6 +83,8 @@ def out_path(name): if "base_growth_data" in cf: output_names.append("base_growth") output_names.append("k_ref") + if cf.get("od600") is not None: + output_names.append("od600") existing = [out_path(n) for n in output_names if os.path.exists(out_path(n))] if os.path.exists(config_out): @@ -105,10 +112,21 @@ def out_path(name): all_sample_parts = [] all_counts_parts = [] + od_only_parts = [] sample_id_offset = 0 - for rep in range(1, num_replicates + 1): - print(f"\n--- Replicate {rep} of {num_replicates} ---", flush=True) + # One library assembly and transformation for every replicate when + # shared_transformation is set (selection_experiment ignores it otherwise). + shared_state = {} + + od_cf = cf.get("od600") or {} + num_od_only = int(od_cf.get("num_od_only_replicates") or 0) + + for rep in range(1, num_replicates + num_od_only + 1): + sequenced = rep <= num_replicates + label = ("" if sequenced else " (OD600 only)") + print(f"\n--- Replicate {rep} of {num_replicates + num_od_only}{label} ---", + flush=True) # Give each replicate a distinct (but reproducible) random seed so # that replicates differ even when a base seed is set. @@ -121,8 +139,12 @@ def out_path(name): rep_phenotype_df["replicate"] = rep sample_df_rep, counts_df_rep = selection_experiment( - rep_cf, library_df, rep_phenotype_df + rep_cf, library_df, rep_phenotype_df, + shared_state=shared_state, sequence=sequenced ) + if not sequenced: + od_only_parts.append(sample_df_rep.assign(sequenced=False)) + continue # Shift sample IDs so they are globally unique across replicates max_id = int(sample_df_rep.index.max()) + 1 @@ -139,6 +161,18 @@ def out_path(name): combined_sample_df = pd.concat(all_sample_parts) combined_counts_df = pd.concat(all_counts_parts, ignore_index=True) + if cf.get("od600") is not None: + od_df = pd.concat([combined_sample_df.assign(sequenced=True)] + + od_only_parts, ignore_index=True) + keep = [c for c in ["replicate", "library", "condition_pre", "t_pre", + "condition_sel", "t_sel", "titrant_name", + "titrant_conc", "sequenced", "od600", + "od600_detectable", "od600_in_range", + "sample_cfu_true", "sample_cfu", "sample_cfu_std"] + if c in od_df.columns] + od_df[keep].to_csv(out_path("od600"), index=False) + print(f"Wrote: {out_path('od600')}") + growth_df = counts_to_lncfu(combined_sample_df, combined_counts_df) # ------------------------------------------------------------------------- diff --git a/src/tfscreen/simulate/selection_experiment.py b/src/tfscreen/simulate/selection_experiment.py index 5aa04071..50ac81bf 100644 --- a/src/tfscreen/simulate/selection_experiment.py +++ b/src/tfscreen/simulate/selection_experiment.py @@ -11,6 +11,11 @@ growth_rates, growth_rate_one_condition, ) +from tfscreen.simulate.od600 import ( + read_od600_calibration, + simulate_od600, + od600_to_cfu_per_mL, +) from tfscreen.simulate.cell_rules import ( THETA_RULES, DK_RULES, @@ -63,8 +68,11 @@ "transformation_poisson_lambda", "cfu0", "congression_theta_rule", "congression_dk_rule", "congression_dk_alpha", "tube_noise_sigma", "growth_transition", + # Sampling noise (roadmap step 4; all off by default) + "founder_sampling", "demographic_growth", "shared_transformation", + "pcr_template_molecules", "pcr_amplification_cv", # Data collection - "total_num_reads", "prob_index_hop", "seed", + "total_num_reads", "prob_index_hop", "seed", "od600", # Column selectors (rarely overridden) "condition_selector", "library_selector", # Optional output blocks @@ -157,6 +165,86 @@ def _check_dict_number( return input_dict +def _check_bool(key: str, cf: dict[str, Any], default: bool = False) -> None: + """Set ``cf[key]`` to a bool (``default`` when missing or None).""" + v = cf.get(key) + if v is None: + cf[key] = default + elif isinstance(v, (bool, np.bool_)): + cf[key] = bool(v) + else: + raise ValueError(f"'{key}' must be true or false, not {v!r}.") + + +def _check_sampling_noise(cf: dict[str, Any]) -> None: + """ + Validate the optional sampling-noise settings (roadmap step 4, + planning/analysis-roadmap.md) and the ``od600`` block, in place. Every + one is off by default, so an existing config simulates as before. + + - ``founder_sampling``: each tube is seeded with a Poisson number of + cells from each transformant clone (mean ``cfu0 * frequency``), drawn + independently per tube, instead of exactly ``cfu0 * frequency``. + - ``demographic_growth``: given its founders, a clone's cells at harvest + are Gamma(founders, exp(kt)) when it grows (a birth process started + from few cells) and Binomial(founders, exp(kt)) when it shrinks. + Requires ``founder_sampling``. + - ``shared_transformation``: every replicate draws its cells from one + library assembly and transformation (one glycerol stock), rather than + each replicate redrawing them. + - ``pcr_template_molecules``: reads are drawn from this many template + molecules per tube (a bottleneck before sequencing). + - ``pcr_amplification_cv``: coefficient of variation of each template's + amplification (PCR jackpotting). Requires ``pcr_template_molecules``. + - ``od600``: block with ``calibration`` (path to the OD600-to-CFU + constants), ``tube_volume_mL`` (default 5.0), ``num_od_only_replicates`` + (extra replicates that get OD600 but no reads; default 0) and + ``sample_cfu_from_od600`` (estimate each tube's total from its + simulated OD600, as the lab does, instead of using the true total; + default false). + """ + for key in ("founder_sampling", "demographic_growth", + "shared_transformation"): + _check_bool(key, cf) + if cf["demographic_growth"] and not cf["founder_sampling"]: + raise ValueError("'demographic_growth' starts each clone from its " + "sampled founders, so it needs " + "'founder_sampling: true'.") + + _check_dict_number("pcr_template_molecules", cf, cast_type=int, + min_allowed=0, inclusive_min=False, allow_none=True) + _check_dict_number("pcr_amplification_cv", cf, min_allowed=0, + allow_none=True) + if cf["pcr_amplification_cv"] and cf["pcr_template_molecules"] is None: + raise ValueError("'pcr_amplification_cv' varies the amplification of " + "each template molecule, so it needs " + "'pcr_template_molecules'.") + + od = cf.get("od600") + if od is None: + cf["od600"] = None + return + if not isinstance(od, dict): + raise ValueError("'od600' must be a block with at least " + "'calibration'.") + unknown = set(od) - {"calibration", "tube_volume_mL", + "num_od_only_replicates", "sample_cfu_from_od600"} + if unknown: + raise ValueError(f"Unknown keys in 'od600': {sorted(unknown)}.") + if od.get("calibration") is None: + raise ValueError("'od600' needs 'calibration', the path to the " + "OD600-to-CFU constants.") + if od.get("tube_volume_mL") is None: + od["tube_volume_mL"] = 5.0 + _check_dict_number("tube_volume_mL", od, min_allowed=0, + inclusive_min=False) + if od.get("num_od_only_replicates") is None: + od["num_od_only_replicates"] = 0 + _check_dict_number("num_od_only_replicates", od, cast_type=int, + min_allowed=0) + _check_bool("sample_cfu_from_od600", od) + + def _check_cf( cf: dict[str, Any] | str | Path ) -> dict[str, Any]: @@ -267,6 +355,8 @@ def _check_cf( f"'softmin' (got rule '{cf['congression_dk_rule']}'); remove it " f"or set the rule to 'softmin'.") + _check_sampling_noise(cf) + if not isinstance(cf["condition_selector"], list): raise ValueError("condition_selector must be a list of column names.") if not isinstance(cf["library_selector"], list): @@ -883,9 +973,28 @@ def _sim_growth( cell_kt: np.ndarray, trans_freq: np.ndarray, total_cfu0: float, + rng: Generator | None = None, + founder_sampling: bool = False, + demographic_growth: bool = False, ) -> np.ndarray: """Simulate cell growth for a population under multiple conditions. + Each column of ``cell_kt`` is one tube. By default every tube starts + with exactly ``total_cfu0 * trans_freq`` cells of each transformant + clone and grows deterministically. The two options add the sampling + noise of a real split (study 0b, planning/studies/noise-anatomy/): + + - ``founder_sampling``: a tube is seeded with a Poisson number of cells + of each clone (mean ``total_cfu0 * trans_freq``), drawn independently + for every tube. A rare clone's starting abundance then differs from + tube to tube. + - ``demographic_growth``: given ``n0`` founders, a clone's cells at + harvest are ``Gamma(n0, exp(kt))`` when ``kt >= 0`` (the sum of + ``n0`` birth-process lineages, each with mean ``exp(kt)`` and variance + about ``exp(2 kt)``) and ``Binomial(n0, exp(kt))`` when ``kt < 0`` + (each cell survives with probability ``exp(kt)``). Requires + ``founder_sampling``. + Parameters ---------- cell_kt : numpy.ndarray @@ -897,6 +1006,10 @@ def _sim_growth( total_cfu0 : float The total initial colony-forming units (CFU) for the entire population. + rng : numpy.random.Generator, optional + Required when either option is on. + founder_sampling, demographic_growth : bool, optional + See above. Both default to False. Returns ------- @@ -904,13 +1017,27 @@ def _sim_growth( A 2D float array of shape `(num_cells, num_conditions)` holding the final CFU for each cell after growth in each condition. """ - # -> trans_cfu0 has shape (num_cells,) trans_cfu0 = total_cfu0*trans_freq - # -> trans_cfu has shape (num_cells, num_conditions) - trans_cfu = trans_cfu0[:,np.newaxis]*np.exp(cell_kt) - + if not founder_sampling: + if demographic_growth: + raise ValueError("demographic_growth requires founder_sampling.") + # -> trans_cfu has shape (num_cells, num_conditions) + return trans_cfu0[:,np.newaxis]*np.exp(cell_kt) + + # Founders: an independent Poisson draw for every clone in every tube. + founders = rng.poisson(np.broadcast_to(trans_cfu0[:, np.newaxis], + cell_kt.shape)) + fold = np.exp(cell_kt) + if not demographic_growth: + return founders*fold + + trans_cfu = np.zeros(cell_kt.shape, dtype=float) + grow = (cell_kt >= 0) & (founders > 0) + trans_cfu[grow] = rng.gamma(shape=founders[grow], scale=fold[grow]) + shrink = (cell_kt < 0) & (founders > 0) + trans_cfu[shrink] = rng.binomial(founders[shrink], fold[shrink]) return trans_cfu @@ -949,6 +1076,8 @@ def _sim_sequencing( num_genotypes: int, reads_per_sample: int, rng: Generator, + pcr_template_molecules: int | None = None, + pcr_amplification_cv: float | None = None, ) -> np.ndarray: """Simulate the sequencing of plasmids from grown cell populations. @@ -973,6 +1102,17 @@ def _sim_sequencing( The number of sequencing reads to simulate for each condition/sample. rng : numpy.random.Generator An initialized NumPy random number generator. + pcr_template_molecules : int, optional + If given, the reads are drawn from this many template molecules per + sample rather than from the cells directly: the templates are a + multinomial draw over genotypes by abundance, and each read then + picks a template. Models a limited amount of DNA going into PCR + (study 0b). None (default) means no bottleneck. + pcr_amplification_cv : float, optional + Coefficient of variation of each template's amplification (PCR + jackpotting). A genotype with ``m`` templates then carries weight + ``Gamma(m / cv^2, cv^2)`` (the sum of ``m`` independent + amplifications with mean 1). Requires ``pcr_template_molecules``. Returns ------- @@ -1015,6 +1155,18 @@ def _sim_sequencing( # Normalize to get relative probability of each drawing each genotype geno_probs = geno_counts/np.sum(geno_counts) + + # A limited number of template molecules goes into PCR; reads + # are drawn from those, each amplified by a random factor. + if pcr_template_molecules is not None: + templates = rng.multinomial(pcr_template_molecules, geno_probs) + weights = templates.astype(float) + if pcr_amplification_cv: + cv2 = pcr_amplification_cv**2 + has = templates > 0 + weights[has] = rng.gamma(shape=templates[has]/cv2, + scale=cv2) + geno_probs = weights/np.sum(weights) # Sample genotypes based on their probabilities. sampled_plasmids = rng.choice( @@ -1184,6 +1336,8 @@ def _simulate_library_group( reads_per_sample: int, cf: dict[str, Any], rng: Generator, + shared_state: dict | None = None, + sequence: bool = True, ) -> tuple[pd.DataFrame, pd.DataFrame]: """ Run a complete simulation for a single library group. @@ -1210,6 +1364,15 @@ def _simulate_library_group( The main, validated configuration dictionary for the simulation. rng : numpy.random.Generator An initialized NumPy random number generator. + shared_state : dict, optional + With ``shared_transformation``, the transformation of each library + (keyed by its ``library`` value) is taken from here when present and + stored here otherwise, so every replicate draws its cells from the + same transformants. + sequence : bool, optional + If False, skip sequencing: the returned ``counts_df`` is empty and + only the tube totals (and OD600, with an ``od600`` block) are + simulated. Used for OD-only replicates. Default True. Returns ------- @@ -1251,13 +1414,25 @@ def _simulate_library_group( # -- simulate transformation and mixing of libraries -- - print("--> simulating transformation",flush=True) - transformants, trans_mask, trans_freq = _sim_transform_and_mix( - lib_origin_dict, - transform_sizes, - library_mixture, - transformation_poisson_lambda, - rng) + # With shared_transformation, every replicate reuses one transformation + # per library (one glycerol stock); otherwise each group draws its own. + share_key = None + if cf.get("shared_transformation") and shared_state is not None: + share_key = ("transformation", + sub_df["library"].iloc[0] if "library" in sub_df.columns + else None) + if share_key is not None and share_key in shared_state: + transformants, trans_mask, trans_freq = shared_state[share_key] + else: + print("--> simulating transformation",flush=True) + transformants, trans_mask, trans_freq = _sim_transform_and_mix( + lib_origin_dict, + transform_sizes, + library_mixture, + transformation_poisson_lambda, + rng) + if share_key is not None: + shared_state[share_key] = (transformants, trans_mask, trans_freq) # -- calculate cfu0 of every genotype -- @@ -1356,12 +1531,32 @@ def _simulate_library_group( condition_info, tube_kt, cf) - trans_cfu = _sim_growth(cell_kt, trans_freq, total_cfu0) - - # Record cfu/mL over all conditions + trans_cfu = _sim_growth(cell_kt, trans_freq, total_cfu0, rng=rng, + founder_sampling=cf.get("founder_sampling", False), + demographic_growth=cf.get("demographic_growth", False)) + + # Record the total cells in each tube sample_df.loc[:,"sample_cfu"] = np.sum(trans_cfu,axis=0) sample_df.loc[:,"sample_cfu_std"] = 0.0 + # One OD600 reading per tube. With sample_cfu_from_od600 the pipeline + # sees the lab's estimate of the total, not the truth. + od_cf = cf.get("od600") + if od_cf is not None: + cal = read_od600_calibration(od_cf["calibration"]) + true_total = sample_df["sample_cfu"].to_numpy(dtype=float) + reading = simulate_od600(true_total, od_cf["tube_volume_mL"], cal, rng) + sample_df.loc[:,"sample_cfu_true"] = true_total + for k, v in reading.items(): + sample_df.loc[:,k] = v + if od_cf["sample_cfu_from_od600"]: + cfu, cfu_std, _ = od600_to_cfu_per_mL(reading["od600"], cal) + sample_df.loc[:,"sample_cfu"] = cfu*od_cf["tube_volume_mL"] + sample_df.loc[:,"sample_cfu_std"] = cfu_std*od_cf["tube_volume_mL"] + + if not sequence: + return sample_df, counts_df.iloc[0:0][["sample","genotype"]] + # -- simulate sequencing -- print("--> simulating sequencing",flush=True) read_counts_dense = _sim_sequencing(transformants, @@ -1369,7 +1564,9 @@ def _simulate_library_group( trans_cfu, num_genotypes, reads_per_sample, - rng) + rng, + pcr_template_molecules=cf.get("pcr_template_molecules"), + pcr_amplification_cv=cf.get("pcr_amplification_cv")) # Create a DataFrame from the dense counts with the same structure as the pivot counts_df_wide = pd.DataFrame(data=read_counts_dense, @@ -1407,6 +1604,8 @@ def selection_experiment( cf: dict[str, Any] | str | Path, library_df: pd.DataFrame | str | Path, phenotype_df: pd.DataFrame | str | Path, + shared_state: dict | None = None, + sequence: bool = True, ) -> tuple[pd.DataFrame, pd.DataFrame]: """Simulate a high-throughput selection experiment. @@ -1428,12 +1627,21 @@ def selection_experiment( A dataframe containing the fitness landscape (growth rates `k_pre` and `k_sel`) for each genotype under all possible experimental conditions. + shared_state : dict, optional + Pass the same dict to every call (every replicate) so that, with + ``shared_transformation``, they share one library assembly and one + transformation. Ignored without ``shared_transformation``. + sequence : bool, optional + If False, simulate tube totals (and OD600) without sequencing, for + OD-only replicates; ``counts_df_final`` is then empty. Default True. Returns ------- sample_df_final : pandas.DataFrame A dataframe describing each unique sample (experimental condition), - including the final total CFU/mL. + including the final total CFU/mL. With an ``od600`` block it also + has ``sample_cfu_true``, ``od600``, ``od600_detectable`` and + ``od600_in_range``. counts_df_final : pandas.DataFrame A dataframe containing the simulated sequencing counts for every genotype in every sample, along with the calculated initial @@ -1509,11 +1717,20 @@ def selection_experiment( # Build base probabilities for library transformation. By putting skew here # we are modeling skew that occurs during library construction, not skew # during out growth or transformation. - library_df["probs"] = 0.0 - for _, origin_sub_df in lib_origin_grouper: - p = _sim_plasmid_probabilities(origin_sub_df["weight"], - cf["lib_assembly_skew_sigma"], rng) - library_df.loc[origin_sub_df.index, "probs"] = p + # With shared_transformation, one library assembly serves every call + # that passes the same shared_state (every replicate), like the + # transformation itself (see _simulate_library_group). + share = cf.get("shared_transformation") and shared_state is not None + if share and "assembly_probs" in shared_state: + library_df["probs"] = shared_state["assembly_probs"] + else: + library_df["probs"] = 0.0 + for _, origin_sub_df in lib_origin_grouper: + p = _sim_plasmid_probabilities(origin_sub_df["weight"], + cf["lib_assembly_skew_sigma"], rng) + library_df.loc[origin_sub_df.index, "probs"] = p + if share: + shared_state["assembly_probs"] = library_df["probs"].to_numpy().copy() # Create a dictionary of grouped DataFrames. lib_origin_dict = dict(list(library_df.groupby(["library_origin"]))) @@ -1567,7 +1784,9 @@ def selection_experiment( ordered_genotypes, reads_per_sample, cf, - rng) + rng, + shared_state=shared_state, + sequence=sequence) sample_df_batches.append(sample_df) counts_df_batches.append(counts_df) diff --git a/tests/tfscreen/simulate/test_od600.py b/tests/tfscreen/simulate/test_od600.py new file mode 100644 index 00000000..21ef093e --- /dev/null +++ b/tests/tfscreen/simulate/test_od600.py @@ -0,0 +1,90 @@ +"""Tests for tfscreen.simulate.od600 (simulated OD600 readings).""" +import numpy as np +import pytest + +from tfscreen.simulate.od600 import ( + cfu_per_mL_to_od600, + od600_to_cfu_per_mL, + read_od600_calibration, + simulate_od600, +) + +CAL = {"A_CFU": 1e6, "B_CFU": 8e7, "C_CFU": 2e7, "OD600_PCT_STD": 0.02, + "OD600_MEAS_THRESHOLD": 0.08, "OD600_MAX": 0.8} + + +@pytest.fixture +def cal(): + return read_od600_calibration(dict(CAL)) + + +def test_read_fills_optional(cal): + assert cal["P_JCJT_CFU"] is None + assert cal["OD600_MAX"] == 0.8 + + +def test_read_needs_required(): + bad = dict(CAL) + del bad["B_CFU"] + with pytest.raises(ValueError, match="B_CFU"): + read_od600_calibration(bad) + + +def test_read_refuses_decreasing_curve(): + bad = dict(CAL, C_CFU=-1e9) + with pytest.raises(ValueError, match="not increasing"): + read_od600_calibration(bad) + + +def test_round_trip(cal): + od = np.array([0.1, 0.3, 0.7]) + cfu, _, detectable = od600_to_cfu_per_mL(od, cal) + assert detectable.all() + assert np.allclose(cfu_per_mL_to_od600(cfu, cal), od) + + +def test_below_threshold_is_an_upper_bound(cal): + cfu, _, detectable = od600_to_cfu_per_mL(np.array([0.01]), cal) + at_threshold, _, _ = od600_to_cfu_per_mL(np.array([0.08]), cal) + assert not detectable[0] + assert cfu[0] == pytest.approx(at_threshold[0]) + + +def test_forward_sd_is_reading_noise_through_slope(cal): + od = 0.4 + _, sd, _ = od600_to_cfu_per_mL(np.array([od]), cal) + slope = CAL["B_CFU"] + 2 * CAL["C_CFU"] * od + assert sd[0] == pytest.approx(slope * 0.02 * od) + + +def test_forward_sd_includes_curve_error(): + c = read_od600_calibration(dict(CAL, P_JCJT_CFU=1e5, Q_JCJT_CFU=0.0, + R_JCJT_CFU=0.0)) + _, sd, _ = od600_to_cfu_per_mL(np.array([0.4]), c) + slope = CAL["B_CFU"] + 2 * CAL["C_CFU"] * 0.4 + assert sd[0] == pytest.approx(np.hypot(slope * 0.02 * 0.4, 1e5)) + + +def test_simulate_od600(cal): + rng = np.random.default_rng(0) + volume = 5.0 + true_od = 0.4 + cfu, _, _ = od600_to_cfu_per_mL(np.array([true_od]), cal) + total = np.full(20_000, cfu[0] * volume) + r = simulate_od600(total, volume, cal, rng) + assert r["od600"].mean() == pytest.approx(true_od, rel=0.005) + assert r["od600"].std() / true_od == pytest.approx(0.02, rel=0.05) + assert r["od600_detectable"].all() + assert r["od600_in_range"].all() + + +def test_simulate_flags(cal): + rng = np.random.default_rng(0) + # Evaluate the curve directly: the forward calibration clamps readings + # below the threshold to the threshold. + def curve(od): + return CAL["A_CFU"] + CAL["B_CFU"] * od + CAL["C_CFU"] * od ** 2 + low, high = curve(0.02), curve(1.5) + r = simulate_od600(np.array([low, high]), 1.0, cal, rng) + assert list(r["od600_detectable"]) == [False, True] + assert list(r["od600_in_range"]) == [True, False] diff --git a/tests/tfscreen/simulate/test_selection_experiment.py b/tests/tfscreen/simulate/test_selection_experiment.py index 8e0a1207..d02b6074 100644 --- a/tests/tfscreen/simulate/test_selection_experiment.py +++ b/tests/tfscreen/simulate/test_selection_experiment.py @@ -1,3 +1,5 @@ +import copy + import pytest import pandas as pd import numpy as np @@ -1574,4 +1576,172 @@ def test_check_cf_accepts_base_growth_data(base_config: dict): simulate/base_growth_data.py and simulate/scripts/simulate_cli.py).""" cf = dict(base_config) cf["base_growth_data"] = {"k_ref": 0.025} - _check_cf(cf) \ No newline at end of file + _check_cf(cf) + + +# ============================================================================= +# Sampling noise (roadmap step 4, planning/analysis-roadmap.md): founder +# sampling, demographic growth, a template bottleneck with PCR jackpotting, +# shared transformation across replicates and OD-only replicates. +# ============================================================================= + +# --------------------------------------------------------------------------- +# config validation +# --------------------------------------------------------------------------- + +def test_defaults_are_off(base_config): + cf = _check_cf(copy.deepcopy(base_config)) + assert cf["founder_sampling"] is False + assert cf["demographic_growth"] is False + assert cf["shared_transformation"] is False + assert cf["pcr_template_molecules"] is None + assert cf["pcr_amplification_cv"] is None + assert cf["od600"] is None + + +@pytest.mark.parametrize("update,match", [ + ({"demographic_growth": True}, "founder_sampling"), + ({"pcr_amplification_cv": 0.5}, "pcr_template_molecules"), + ({"founder_sampling": "yes"}, "true or false"), + ({"pcr_template_molecules": 0}, "pcr_template_molecules"), + ({"od600": {"tube_volume_mL": 5.0}}, "calibration"), + ({"od600": {"calibration": "c.yaml", "bogus": 1}}, "Unknown keys"), + ({"od600": "c.yaml"}, "block"), +]) +def test_invalid_settings(base_config, update, match): + cf = copy.deepcopy(base_config) + cf.update(update) + with pytest.raises(ValueError, match=match): + _check_cf(cf) + + +def test_od600_defaults(base_config): + cf = copy.deepcopy(base_config) + cf["od600"] = {"calibration": "c.yaml"} + cf = _check_cf(cf) + assert cf["od600"] == {"calibration": "c.yaml", "tube_volume_mL": 5.0, + "num_od_only_replicates": 0, + "sample_cfu_from_od600": False} + + +# --------------------------------------------------------------------------- +# growth: founders and demographic noise +# --------------------------------------------------------------------------- + +def _moments(kt, n0, draws, **kwargs): + rng = np.random.default_rng(1) + cell_kt = np.full((1, draws), kt) + out = _sim_growth(cell_kt, np.array([1.0]), n0, rng=rng, **kwargs)[0] + return out.mean(), out.var() + + +def test_default_growth_is_deterministic(): + cell_kt = np.array([[0.0, 1.0], [2.0, -1.0]]) + out = _sim_growth(cell_kt, np.array([0.25, 0.75]), 100.0) + assert np.allclose(out, np.array([[0.25], [0.75]]) * 100 * np.exp(cell_kt)) + + +def test_founder_sampling_is_poisson(): + n0, kt = 20.0, 1.5 + mean, var = _moments(kt, n0, 200_000, founder_sampling=True) + fold = np.exp(kt) + assert mean == pytest.approx(n0 * fold, rel=0.01) + assert var == pytest.approx(n0 * fold ** 2, rel=0.03) + + +def test_demographic_growth_doubles_variance(): + # Poisson founders then Gamma(n0, e^kt) growth: var = 2 n0 e^(2 kt). + n0, kt = 20.0, 1.5 + mean, var = _moments(kt, n0, 200_000, founder_sampling=True, + demographic_growth=True) + fold = np.exp(kt) + assert mean == pytest.approx(n0 * fold, rel=0.01) + assert var == pytest.approx(2 * n0 * fold ** 2, rel=0.03) + + +def test_demographic_death_is_binomial_thinning(): + # Poisson(n0) founders each surviving with p: Poisson(n0 p). + n0, kt = 50.0, -0.7 + mean, var = _moments(kt, n0, 200_000, founder_sampling=True, + demographic_growth=True) + p = np.exp(kt) + assert mean == pytest.approx(n0 * p, rel=0.01) + assert var == pytest.approx(n0 * p, rel=0.03) + + +def test_demographic_needs_founders(): + with pytest.raises(ValueError, match="founder_sampling"): + _sim_growth(np.zeros((1, 1)), np.array([1.0]), 10.0, + rng=np.random.default_rng(0), demographic_growth=True) + + +def test_founders_are_independent_per_tube(): + rng = np.random.default_rng(3) + out = _sim_growth(np.zeros((1, 50)), np.array([1.0]), 5.0, rng=rng, + founder_sampling=True) + assert len(np.unique(out)) > 1 + + +# --------------------------------------------------------------------------- +# sequencing: template bottleneck and jackpotting +# --------------------------------------------------------------------------- + +def _count_variance_ratio(reads, templates=None, cv=None, num_geno=4000): + """Variance of per-genotype counts over the Poisson expectation, for + equally abundant single-plasmid genotypes.""" + transformants = np.arange(num_geno)[:, None] + trans_mask = np.zeros_like(transformants, dtype=bool) + trans_cfu = np.ones((num_geno, 1)) + counts = _sim_sequencing(transformants, trans_mask, trans_cfu, num_geno, + reads, np.random.default_rng(5), + pcr_template_molecules=templates, + pcr_amplification_cv=cv)[:, 0] + return counts.var() / counts.mean() + + +def test_no_bottleneck_is_poisson(): + assert _count_variance_ratio(400_000) == pytest.approx(1.0, abs=0.1) + + +@pytest.mark.parametrize("templates,cv", [(200_000, None), (200_000, 1.0), + (100_000, 0.5)]) +def test_bottleneck_inflates_variance(templates, cv): + # Multinomial templates, then reads from the (amplified) templates: + # variance / mean = 1 + (reads / templates) (1 + cv^2). + reads = 400_000 + expected = 1 + (reads / templates) * (1 + (cv or 0) ** 2) + assert _count_variance_ratio(reads, templates, cv) == pytest.approx( + expected, rel=0.1) + + +# --------------------------------------------------------------------------- +# replicates: shared transformation and OD-only +# --------------------------------------------------------------------------- + +def _run(cf, library_df, phenotype_df, seed, shared_state=None, sequence=True): + cf = copy.deepcopy(cf) + cf["seed"] = seed + return selection_experiment(cf, library_df.copy(), phenotype_df.copy(), + shared_state=shared_state, sequence=sequence) + + +@pytest.mark.parametrize("shared", [True, False]) +def test_shared_transformation(base_config, base_library_df, + base_phenotype_df, shared): + cf = copy.deepcopy(base_config) + cf["shared_transformation"] = shared + state = {} + _, counts_1 = _run(cf, base_library_df, base_phenotype_df, 1, state) + _, counts_2 = _run(cf, base_library_df, base_phenotype_df, 2, state) + cfu0_1 = counts_1.groupby("genotype", observed=True)["ln_cfu_0"].first() + cfu0_2 = counts_2.groupby("genotype", observed=True)["ln_cfu_0"].first() + assert np.allclose(cfu0_1, cfu0_2) == shared + + +def test_unsequenced_replicate(base_config, base_library_df, + base_phenotype_df): + sample_df, counts_df = _run(base_config, base_library_df, + base_phenotype_df, 1, sequence=False) + assert len(counts_df) == 0 + assert len(sample_df) > 0 + assert (sample_df["sample_cfu"] > 0).all() diff --git a/tests/tfscreen/simulate/test_simulate_cli.py b/tests/tfscreen/simulate/test_simulate_cli.py index 4017d0c7..b9a510b1 100644 --- a/tests/tfscreen/simulate/test_simulate_cli.py +++ b/tests/tfscreen/simulate/test_simulate_cli.py @@ -545,3 +545,64 @@ def test_input_config_yaml_existence_check(tmp_path): run_simulation_from_config("config.yaml", str(tmp_path)) mock_lib.assert_not_called() + + +# --------------------------------------------------------------------------- +# od600 block: per-tube readings and OD-only replicates (roadmap step 4) +# --------------------------------------------------------------------------- + +def _od_run(tmp_path, cf): + lib_df = pd.DataFrame({"genotype": ["wt"]}) + params_df = pd.DataFrame({"genotype": ["wt"], "dk_geno": [0.0], + "activity": [1.0]}) + calls = [] + + def fake_selection(rep_cf, library_df, phenotype_df, shared_state=None, + sequence=True): + calls.append({"sequence": sequence, "shared_state": shared_state}) + rep = int(phenotype_df["replicate"].iloc[0]) + sample_df = pd.DataFrame([{ + "sample": 0, "replicate": rep, "library": "lib", + "condition_sel": "kanR+kan", "t_sel": 60.0, "sample_cfu": 1e8, + "sample_cfu_std": 1e6, "sample_cfu_true": 1e8, "od600": 0.3, + "od600_detectable": True, "od600_in_range": True}], index=[0]) + if not sequence: + return sample_df, pd.DataFrame(columns=["sample", "genotype"]) + counts_df = pd.DataFrame([{"sample": 0, "genotype": "wt", + "counts": 10, "ln_cfu_0": 1.0}]) + return sample_df, counts_df + + with patch("tfscreen.util.read_yaml", return_value=cf), \ + patch("tfscreen.simulate.scripts.simulate_cli.library_prediction", + return_value=(lib_df, lib_df.copy(), lib_df.copy(), params_df, None)), \ + patch("tfscreen.simulate.scripts.simulate_cli.selection_experiment", + side_effect=fake_selection), \ + patch("tfscreen.simulate.scripts.simulate_cli.counts_to_lncfu", + return_value=pd.DataFrame({"genotype": ["wt"]})): + run_simulation_from_config("fake_config.yaml", str(tmp_path), + num_replicates=2) + return calls + + +def test_od600_written_with_od_only_replicates(tmp_path): + cf = {"seed": 1, "growth": {}, "cfu0": 1e8, "total_num_reads": 100, + "od600": {"calibration": "c.yaml", "num_od_only_replicates": 1}} + calls = _od_run(tmp_path, cf) + + assert [c["sequence"] for c in calls] == [True, True, False] + # One shared_state dict passed to every replicate. + assert all(c["shared_state"] is calls[0]["shared_state"] for c in calls) + + od = pd.read_csv(tmp_path / "tfs_sim_od600.csv") + assert list(od["replicate"]) == [1, 2, 3] + assert list(od["sequenced"]) == [True, True, False] + for col in ("od600", "od600_detectable", "od600_in_range", + "sample_cfu_true", "sample_cfu"): + assert col in od.columns + + +def test_no_od600_file_without_block(tmp_path): + cf = {"seed": 1, "growth": {}, "cfu0": 1e8, "total_num_reads": 100} + calls = _od_run(tmp_path, cf) + assert [c["sequence"] for c in calls] == [True, True] + assert not (tmp_path / "tfs_sim_od600.csv").exists() From 775f8b79e61efab4712b47c51e63a5ce23d931c3 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 17:49:37 -0700 Subject: [PATCH 054/208] Fit read counts directly (roadmap step 7) Doubles have a median of 3-5 reads per tube, and real counts vary 5-18x more than Poisson (study 0b). The ln_cfu likelihood needs a pseudocount, treats zeros as a floor, and assumes binomial counting noise. - observe/growth_counts.py: reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r), log mu = ln(tube reads) + ln_cfu_pred - ln(tube total); phi and inv_r learned; no pseudocount. The log-pmf uses Loader's algorithm (CountNegativeBinomial): numpyro's negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; this one matches scipy to ~1e-4 nats with finite gradients. - growth_likelihood orchestrator setting and tfs-configure-model flag (lncfu default, counts); counts refuses growth_noise other than zero. GrowthData.counts/ln_sample_reads/sample_ln_cfu, sliced in batches. Tube reads from sample_reads, else adjusted_counts / frequency. - sample_offset: level (one constant-prior ln_cfu offset per tube); tfs-configure-model exposes --sample_offset_model. - counts_to_lncfu writes sample_reads. - Fix: prediction on a new grid failed to reshape per-tube offsets (sample_offset normal too); they are now zero there. - planning/studies/count-likelihood/: 24-run validation grid (Poisson vs realistic simulated noise x lncfu/offset/counts/counts+mixture). The lncfu model is unchanged (identical log density at a fixed seed). Tests for the distribution (moments, scipy agreement at high depth, Poisson limit, gradients), the level offset, the orchestrator path, batch safety, configure round trip, prediction, and a smoke test. Full unit suite: 5049 passed, 15 skipped. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 27 ++ CLAUDE.md | 8 +- docs/source/model-inputs.rst | 16 ++ planning/analysis-roadmap.md | 14 +- planning/count-likelihood.md | 6 +- planning/studies/count-likelihood/README.md | 81 ++++++ planning/studies/count-likelihood/grid.yaml | 93 +++++++ planning/studies/count-likelihood/run.srun | 183 +++++++++++++ src/tfscreen/process_raw/counts_to_lncfu.py | 8 + src/tfscreen/tfmodel/analysis/prediction.py | 18 ++ src/tfscreen/tfmodel/data_class.py | 12 + .../components/sample_offset/level.py | 112 ++++++++ .../generative/observe/growth_counts.py | 252 ++++++++++++++++++ src/tfscreen/tfmodel/generative/registry.py | 4 + src/tfscreen/tfmodel/model_orchestrator.py | 121 ++++++++- .../tfmodel/scripts/configure_model_cli.py | 21 ++ .../tfmodel/scripts/setup_grid_cli.py | 1 + src/tfscreen/tfmodel/tensors/batch.py | 7 + tests/smoke-tests/test_configure_run_smoke.py | 32 +++ .../components/sample_offset/test_level.py | 67 +++++ .../observe/test_observe_growth_counts.py | 145 ++++++++++ .../tfmodel/generative/test_registry.py | 3 +- .../tfscreen/tfmodel/test_count_likelihood.py | 174 ++++++++++++ .../tfmodel/test_model_orchestrator.py | 1 + 24 files changed, 1392 insertions(+), 14 deletions(-) create mode 100644 planning/studies/count-likelihood/README.md create mode 100644 planning/studies/count-likelihood/grid.yaml create mode 100644 planning/studies/count-likelihood/run.srun create mode 100644 src/tfscreen/tfmodel/generative/components/sample_offset/level.py create mode 100644 src/tfscreen/tfmodel/generative/observe/growth_counts.py create mode 100644 tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py create mode 100644 tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py create mode 100644 tests/tfscreen/tfmodel/test_count_likelihood.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c0d2c81..882013ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,27 @@ fall into two kinds: ### Added +- **Count likelihood (`growth_likelihood: counts`; roadmap step 7).** Growth + can be observed as read counts instead of `ln_cfu`: each genotype's reads + in a tube are negative binomial with mean + `depth * exp(ln_cfu_pred - ln(tube total))` and variance + `mu (1 + phi) + mu^2 inv_r` (both learned; study 0b found real counts 5-18x + Poisson), with no pseudocount (`generative/observe/growth_counts.py`). The + log-pmf is computed by Loader's algorithm (`CountNegativeBinomial`), + accurate to ~1e-4 nats in float32 where numpyro's negative binomial loses + several nats per observation at 1e4-1e6 reads. `tfs-configure-model + --growth_likelihood counts` (requires `growth_noise_model zero`); the + growth file needs `counts`, each tube's total reads (`sample_reads`, or + `adjusted_counts`/`frequency` to derive it) and total cells + (`sample_ln_cfu` or `sample_cfu`). Presplit data are still observed as + `ln_cfu`. +- **`sample_offset: level`.** One ln_cfu offset per tube, shared by every + genotype in it, with a learned constant SD (the tube's composition offset + and any error in its supplied total), in place of `normal`'s + time-scaled growth-rate offset. `tfs-configure-model` now exposes + `--sample_offset_model` (it was always `zero` before). +- **`counts_to_lncfu` writes `sample_reads`**, each tube's total reads + (`__unknown__` included, no pseudocounts). - **Simulator sampling noise and OD600 (roadmap step 4).** Optional simulate-config keys, all off by default so existing configs simulate exactly as before: `founder_sampling` (Poisson founders per clone per @@ -377,6 +398,12 @@ fall into two kinds: ### Fixed +- **Prediction with a per-tube `sample_offset`.** `tfs-predict-growth` (and + anything calling `analysis.prediction.predict` on a new time or + concentration grid) failed to reshape the per-tube offsets of + `sample_offset: normal` (and now `level`) onto the prediction grid's + tubes. Per-tube offsets are now set to zero there: a prediction is for a + typical tube. - **Absent prior groups survive the priors CSV.** `write_configuration` wrote a `None` prior group (growth priors of a binding-only model, binding priors of a growth-only one) as a `None` row that reloaded as NaN; it is diff --git a/CLAUDE.md b/CLAUDE.md index e8a8d889..966fa62b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -134,9 +134,13 @@ The hierarchical Bayesian inference engine. Key files: - `noise/` (theta observation noise; registry keys `theta_growth_noise`: `zero`/`beta`/`logit_normal`, `theta_binding_noise`: `zero`/`beta`) - `growth_noise/`: `zero`, `normal_kt` - `ln_cfu0/`: `hierarchical`, `hierarchical_factored` - - `sample_offset/`: `zero`, `normal` + - `sample_offset/`: `zero`, `normal` (per-tube growth-rate offset, scaled by elapsed time), `level` (per-tube ln_cfu offset, constant prior) -- **`generative/observe/`** — *not* under `components/`, and not swappable via YAML. Holds the four observation-likelihood layers (`binding`, `growth`, `presplit`, `base_growth`), registered under flat `model_registry` keys `observe_binding`/`observe_growth`/`observe_presplit`/`observe_base_growth`. `ModelOrchestrator` wires in `observe_binding` whenever binding data were supplied and (unless `binding_only`) `observe_growth`, plus `observe_presplit`/`observe_base_growth` only when the corresponding data (`presplit_df`/`base_growth_df`) was supplied — these are parallel, independently-gated observers, not alternative choices for one axis. **Growth-only models** (`binding_df=None`, `tfs-configure-model` without `--binding_df`) have `data.binding = None`, `priors.binding = None`, no `theta_binding_noise` component and no binding sites in the model (`jax_model` gates them on `data.binding is not None`, static structure); the orchestrator refuses a `binding_weight` or a non-`zero` `theta_binding_noise` without binding, and `tfs-prefit-calibration` refuses a growth-only config. Absent prior groups are left out of the priors CSV (`configuration_io._extract_scalars` / `_update_dataclass` skip `None`), so they reload as `None`, not NaN. +- **`generative/observe/`** — *not* under `components/`, and not swappable via YAML. Holds the four observation-likelihood layers (`binding`, `growth`, `presplit`, `base_growth`), registered under flat `model_registry` keys `observe_binding`/`observe_growth`/`observe_presplit`/`observe_base_growth`. `ModelOrchestrator` wires in `observe_binding` whenever binding data were supplied and (unless `binding_only`) the growth observer chosen by `growth_likelihood` (`lncfu` → `observe_growth`, Student-t on `ln_cfu`; `counts` → `observe_growth_counts`, see **Count likelihood** below), plus `observe_presplit`/`observe_base_growth` only when the corresponding data (`presplit_df`/`base_growth_df`) was supplied — these are parallel, independently-gated observers, not alternative choices for one axis. **Growth-only models** (`binding_df=None`, `tfs-configure-model` without `--binding_df`) have `data.binding = None`, `priors.binding = None`, no `theta_binding_noise` component and no binding sites in the model (`jax_model` gates them on `data.binding is not None`, static structure); the orchestrator refuses a `binding_weight` or a non-`zero` `theta_binding_noise` without binding, and `tfs-prefit-calibration` refuses a growth-only config. Absent prior groups are left out of the priors CSV (`configuration_io._extract_scalars` / `_update_dataclass` skip `None`), so they reload as `None`, not NaN. + +### Count likelihood (`growth_likelihood: counts`) + +Roadmap step 7. `observe/growth_counts.py` observes reads directly: `reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r)` with `log mu = ln_sample_reads + ln_cfu_pred - sample_ln_cfu` (predicted frequency times the tube's reads), learned `growth_phi`/`growth_inv_r` (LogNormal priors, medians 5 and 0.01), no pseudocount. The log-pmf is `CountNegativeBinomial`, Loader's algorithm (R's `dnbinom_mu`: `bd0` deviance + `stirlerr`): numpyro's own negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; keep any rewrite of it tested against scipy at high depth (`test_observe_growth_counts.py`), and guard `jnp.where` branches so the unused one cannot overflow (NaN gradients). Data: `GrowthData.counts`/`ln_sample_reads`/`sample_ln_cfu` (same layout as `ln_cfu`, None for `lncfu`; sliced by `tensors/batch.py`) and the static `GrowthData.growth_likelihood`, built by `model_orchestrator._add_count_columns` (tube reads from `sample_reads`, else `adjusted_counts / frequency`, about 1% high from pseudocounts, the same for every genotype in a tube; tube totals from `sample_ln_cfu` or `sample_cfu`). The orchestrator refuses `growth_noise` other than `zero` with counts. Pair it with `sample_offset: level` (one constant-prior ln_cfu offset per tube), since an error in a tube's supplied total otherwise moves every genotype in it. Presplit is still observed as `ln_cfu`. Validation grid: `planning/studies/count-likelihood/`. ### Adding a New Model Component diff --git a/docs/source/model-inputs.rst b/docs/source/model-inputs.rst index 7df23b92..80698cf7 100644 --- a/docs/source/model-inputs.rst +++ b/docs/source/model-inputs.rst @@ -126,6 +126,22 @@ specification (``genotype``, ``library``, ``replicate``, ``condition_pre``, ``condition_sel``, ``titrant_name``, ``titrant_conc``, ``t_pre``, ``t_sel``, ``ln_cfu``, ``ln_cfu_std``). +**Likelihood.** By default (``--growth_likelihood lncfu``) each row's +``ln_cfu`` is observed with a Student-t likelihood. With +``--growth_likelihood counts`` the read counts are observed instead: a +negative binomial with mean ``tube reads x predicted frequency`` and a +learned dispersion (variance ``mu (1 + phi) + mu^2 / r``), with no +pseudocount, so a genotype with zero reads is an observation rather than a +floor. Real counts vary several times more than Poisson, mostly in +proportion to the mean, which ``phi`` describes. This needs three more +columns: ``counts``, each tube's total reads (``sample_reads``, written by +``tfs-process-counts``; older files can supply ``adjusted_counts`` and +``frequency`` instead) and each tube's total cells (``sample_ln_cfu``, or +``sample_cfu`` with its uncertainty). It also needs +``--growth_noise_model zero``, and pairs with ``--sample_offset_model +level``, one offset per tube shared by all of its genotypes, which absorbs +an error in the tube's supplied total. + Passed via the optional flag: .. code-block:: bash diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 4bc78a5c..1f35dc6a 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -476,7 +476,7 @@ step 7. - Validation: the calibration grid with step 4's noise on, against the step 2 interim total: theta coverage, `k_c`/`m_c` recovery (C4), in the joint and the relative fit. -7. **Count likelihood** (N). +7. [ ] **Count likelihood** (N). (Implemented; validation grid pending.) `growth_likelihood: counts` (C2): growth and presplit observers with `reads_{g,s} ~ NegBin(depth_s * exp(ln n_{g,s} - P_s + u_s), dispersion)`, `P` from step 6 (until then, the supplied `sample_ln_cfu`, D14), `u` @@ -492,6 +492,18 @@ step 7. true-lambda-0 arm where the mixture currently finds lambda ~0.12, a leading suspect for which is the floor. Low-count genotypes are the stratum to watch. + Implemented 2026-09-26 (with supplied totals, D14): + `generative/observe/growth_counts.py` (`reads ~ NegBin(mu, mu (1 + phi) + + mu^2 inv_r)`, `log mu = ln reads + ln_cfu_pred - ln total`), a + float32-accurate log-pmf (Loader's algorithm; numpyro's negative + binomial lost several nats per observation at 1e4-1e6 reads), + `sample_offset: level` (one constant-prior offset per tube, D2), and + `sample_reads` from `counts_to_lncfu`; the orchestrator derives tube + reads from `adjusted_counts / frequency` for files processed before, so + the new processing batch needs no rerun. Refuses `growth_noise` other + than `zero`. Presplit stays `ln_cfu` (its data have no counts yet); + index hopping is not modeled yet. Validation grid: + `planning/studies/count-likelihood/` (24 runs, not yet run). - [ ] **7b. Growth regime: test, choose, purge** (N). The `growth_transition` components (`instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop`) were unconstrained by the data diff --git a/planning/count-likelihood.md b/planning/count-likelihood.md index 43e4a990..740484a8 100644 --- a/planning/count-likelihood.md +++ b/planning/count-likelihood.md @@ -1,6 +1,6 @@ --- title: Fit read counts directly instead of ln_cfu -status: idea +status: promoted filed: 2026-09-24 area: tfmodel revisit_when: >- @@ -17,6 +17,10 @@ related: - src/tfscreen/tfmodel/generative/observe/presplit.py --- +**Promoted 2026-09-26** into `planning/analysis-roadmap.md` (Track N, step 7, +implemented with supplied tube totals; validation grid in +`planning/studies/count-likelihood/`). + **Context:** The congression calibration grid (2026-09-24) found that the mixture used its congressed classes to fit the read-count detection floor. `ln_cfu` is computed from counts with a pseudocount of 1, so rows with 0 diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md new file mode 100644 index 00000000..a766f5c5 --- /dev/null +++ b/planning/studies/count-likelihood/README.md @@ -0,0 +1,81 @@ +# Count-likelihood study + +**Question.** Does observing read counts directly (a negative binomial with +learned dispersion, no pseudocount; `growth_likelihood: counts`) fit better +and give better-calibrated theta than observing `ln_cfu`, both on data whose +counts are Poisson and on data with the real data's extra count noise? And, +at a true lambda of 0, does the congression mixture still find lambda +around 0.12 once the read-count floor is modeled? + +**Decisions it feeds.** +- Roadmap step 7 (`planning/analysis-roadmap.md`): whether the count + likelihood becomes the default for real data. +- Congression plan step 6 (`planning/congression-physics-plan.md`, on main): + whether the mixture's theta gain at a true lambda of 0 was the read-count + floor. That step also re-runs `grid_baseline.yaml` and `grid_dkrule.yaml` + on the count likelihood; this grid covers the lambda-0 question directly. + +## Design + +Base config: `../congression-calibration/simulate_config.yaml` (483 +genotypes, hill_mut theta, instant growth transitions, kanR and pheS, 20 +in-library binding anchors), at lambda 0 and the wide dk spread, with the +anchored fit settings of that study's baseline (binding weight 1, prefit +`k_scale_ceiling` 0.005). + +[`grid.yaml`](grid.yaml): 2 noise x 3 seeds x 4 fits = 24 runs. + +| axis | levels | +|---|---| +| simulated noise | `poisson` (the simulator's old behavior: Poisson counts); `realistic` (founder sampling and demographic growth with about 300 founders per genotype per tube, `cfu0` 150,000; shared transformation; 150,000 template molecules for about 830k reads per tube with amplification CV 0.5, so count variance about 8x Poisson, the middle of the 5-18x measured on real data in `../noise-anatomy/`) | +| seed | 1, 2, 3 | +| fit | `lncfu`/`zero` (today's fit: Student-t on `ln_cfu`, `normal_kt` growth noise); `lncfu`/`level` (plus a per-tube level offset); `counts`/`level` (the count likelihood; growth noise off, as it requires); `counts`/`level`/`mixture` with the measured lambda prior (0.357 +/- 0.05) | + +Each run ([`run.srun`](run.srun)) is the congression-calibration pipeline +with `--growth_likelihood` and `--sample_offset_model` from the fit arm. + +## How to run + +On the cluster, from a scratch directory, with this repository checked out: + +```bash +tfs-setup-sim-grid grid.yaml --out_prefix count_likelihood +for d in count_likelihood/run_*/; do (cd "$d" && sbatch run.srun); done +``` + +When the runs finish: + +```bash +tfs-summarize-calibration count_likelihood --out_prefix calib/count_likelihood \ + --baseline likelihood=lncfu sample_offset=zero fit=single \ + --facet_by founder_sampling +``` + +## What to look at + +- theta (`theta_test`): coverage, calibration bias, width and RMSE by + `purity` x `has_binding`, paired against `lncfu`/`zero`, separately for + the two noise levels. Under `realistic` noise the `lncfu` fits treat 5-18x + too little variance as known, so their coverage should fall; the count + fit should hold it. +- `growth_phi` and `growth_inv_r`: near 0 under `poisson`; `phi` near the + simulated multiplier (about 8) under `realistic`. +- The `mixture` arm's `lam` against the true 0. +- Convergence (every run should stop on the noise-referenced rule, not the + epoch cap). + +## Inputs + +Repository paths only: `grid.yaml`, `run.srun`, +`../congression-calibration/simulate_config.yaml` and its +`hill_params.csv`. Seeds fixed in the grid. + +## Commit + +Not yet run. A local smoke run of one `realistic`/`counts`/`mixture` run with +3 epochs completed every pipeline step (2026-09-26); it checks plumbing, not +results. + +## Results + +Pending. diff --git a/planning/studies/count-likelihood/grid.yaml b/planning/studies/count-likelihood/grid.yaml new file mode 100644 index 00000000..6eb2dcd6 --- /dev/null +++ b/planning/studies/count-likelihood/grid.yaml @@ -0,0 +1,93 @@ +# --------------------------------------------------------------------------- +# Count-likelihood validation (roadmap step 7, planning/analysis-roadmap.md) +# +# tfs-setup-sim-grid grid.yaml --out_prefix count_likelihood +# for d in count_likelihood/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Does fitting read counts (negative binomial, no pseudocount) beat fitting +# ln_cfu, on data with Poisson-only counts and on data with the real data's +# extra count noise? And at a true lambda of 0, does the congression mixture +# still find lambda ~0.12 once the read-count floor is modeled (the open +# question from the congression plan's step 3.5)? +# +# Simulated noise: +# poisson the simulator's old behavior: deterministic growth, one +# multinomial draw of reads (count variance = Poisson). +# realistic founder sampling and demographic growth with ~300 founders +# per genotype per tube (cfu0 150,000 over 483 genotypes, as in +# the real 215k-genotype library at 6.5e7 cells), one shared +# transformation, and a template bottleneck with PCR +# jackpotting (150,000 templates for ~830k reads per tube, CV +# 0.5): count variance ~8x Poisson, the middle of the 5-18x +# measured on real data (study noise-anatomy). +# +# Fits (all with the anchored settings of the congression 3.5 baseline): +# lncfu / zero today's production fit (Student-t on ln_cfu, normal_kt) +# lncfu / level the same with a per-tube level offset +# counts / level the count likelihood with a per-tube level offset +# counts / level / mixture (measured lambda prior): the floor question +# +# 2 noise x 3 seeds x 4 fits = 24 runs. +# --------------------------------------------------------------------------- + +base_config: ../congression-calibration/simulate_config.yaml + +run_name: "{{ 'realistic' if founder_sampling else 'poisson' }}__seed{{ seed }}__{{ likelihood }}_{{ sample_offset }}_{{ fit }}" + +output_file: run.srun + + +simulate: + + - name: noise + variants: + - founder_sampling: false + - founder_sampling: true + demographic_growth: true + shared_transformation: true + cfu0: 150_000.0 + pcr_template_molecules: 150_000 + pcr_amplification_cv: 0.5 + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + - seed: 3 + + +template: + + - name: fit + variants: + - likelihood: lncfu + sample_offset: zero + fit: single + lam_prior: "off" + - likelihood: lncfu + sample_offset: level + fit: single + lam_prior: "off" + - likelihood: counts + sample_offset: level + fit: single + lam_prior: "off" + - likelihood: counts + sample_offset: level + fit: mixture + lam_prior: measured + + - name: anchor + variants: + - binding_weight: 1.0 + k_scale_ceiling: 0.005 diff --git a/planning/studies/count-likelihood/run.srun b/planning/studies/count-likelihood/run.srun new file mode 100644 index 00000000..d8c6f22a --- /dev/null +++ b/planning/studies/count-likelihood/run.srun @@ -0,0 +1,183 @@ +#!/bin/bash -l +#SBATCH --account=harmslab +#SBATCH --job-name=count_lik +#SBATCH --output=run.out +#SBATCH --error=run.err +#SBATCH --partition=gpu +#SBATCH --time=00-02:00:00 +#SBATCH --nodes=1 +#SBATCH --cpus-per-task=8 +#SBATCH --gpus=1 +#SBATCH --ntasks-per-node=1 + +# Count-likelihood study, one run (rendered by tfs-setup-sim-grid from +# planning/studies/count-likelihood/run.srun, which is the congression- +# calibration study's run.srun plus the likelihood and sample-offset arms). +# Submit from the run directory: sbatch run.srun + +# Swap lines if on cluster (module load) or local (XLA_FLAGS to use CPU) +module load cuda/12.4.1 +#export XLA_FLAGS="--xla_force_host_platform_device_count=8" + +set -e + +FIT="{{ fit }}" +# Growth likelihood (lncfu or counts) and per-tube offset (zero or level). +LIKELIHOOD="{{ likelihood }}" +SAMPLE_OFFSET="{{ sample_offset }}" +LAM_PRIOR="{{ lam_prior }}" +LAM_PRIOR_SD=0.05 +LAM_MEASURED=0.357 +# Growth rows with fewer reads than this are dropped before configure (0 keeps +# everything). grid_masked.yaml sets it; grid.yaml leaves the default. +MIN_COUNTS={{ min_counts | default(0) }} +# Binding likelihood weight passed to tfs-configure-model (empty = its default, +# growth rows / binding rows). grid_bw1.yaml sets it to 1. +BINDING_WEIGHT="{{ binding_weight | default('') }}" +# Ceiling on the prefit's per-condition k prior scale (empty = its default, +# 0.1). grid_anchor.yaml sets it low to pin the k/dk_geno slide. +K_SCALE_CEILING="{{ k_scale_ceiling | default('') }}" +# tfs-fit-model --analysis_method (svi or map). grid_controls.yaml sets map. +ANALYSIS_METHOD="{{ analysis_method | default('svi') }}" +# Lambda value for lam_prior "fixed" (grid_profile.yaml). +LAM_FIXED="{{ lam_fixed | default('') }}" +# Congression theta rule for the fit (mixture only). Empty = the rule the +# simulation used (tfs_sim_config.yaml's congression_theta_rule); set it to +# fit with a different rule (cross-rule grids). +FIT_THETA_RULE="{{ fit_theta_rule | default('') }}" +# Congression dk rule (and softmin alpha) for the fit (mixture only). Empty = +# the simulation's (congression_dk_rule, congression_dk_alpha). +FIT_DK_RULE="{{ fit_dk_rule | default('') }}" +FIT_DK_ALPHA="{{ fit_dk_alpha | default('') }}" + +# The simulated lambda and the seed live in tfs_sim_config.yaml. +read -r SEED LAM_SIM SIM_THETA_RULE SIM_DK_RULE SIM_DK_ALPHA < <(python -c " +import yaml +cf = yaml.safe_load(open('tfs_sim_config.yaml')) +print(cf['seed'], cf.get('transformation_poisson_lambda') or 0.0, + cf.get('congression_theta_rule') or 'homodimer', + cf.get('congression_dk_rule') or 'dilution', + cf.get('congression_dk_alpha') or '')") +FIT_THETA_RULE=${FIT_THETA_RULE:-${SIM_THETA_RULE}} +if [[ -z "${FIT_DK_RULE}" ]]; then + FIT_DK_RULE=${SIM_DK_RULE} + FIT_DK_ALPHA=${SIM_DK_ALPHA} +fi + +# --------------------------------------------------------------------------- +# 1. Simulate +# --------------------------------------------------------------------------- +echo ">>> Simulate (lambda=${LAM_SIM}, seed=${SEED})" +tfs-simulate tfs_sim_config.yaml . --seed "${SEED}" + +GROWTH_CSV=tfs_sim_growth.csv +if [[ "${MIN_COUNTS}" -gt 0 ]]; then + GROWTH_CSV=tfs_sim_growth_min${MIN_COUNTS}.csv + python -c " +import pandas as pd +df = pd.read_csv('tfs_sim_growth.csv') +kept = df[df['counts'] >= ${MIN_COUNTS}] +kept.to_csv('${GROWTH_CSV}', index=False) +print(f'Dropped {len(df) - len(kept)} of {len(df)} growth rows with counts < ${MIN_COUNTS}')" +fi + +# --------------------------------------------------------------------------- +# 2. Configure +# --------------------------------------------------------------------------- +if [[ "${FIT}" == "single" ]]; then + TRANSFORMATION_ARGS=(--transformation_model single) +else + if [[ "${LAM_PRIOR}" == "matched" ]]; then + LAM_MEAN=$(python -c "print(max(${LAM_SIM}, 0.01))") + elif [[ "${LAM_PRIOR}" == "fixed" ]]; then + # lambda held at LAM_FIXED (prior SD 0.1% of the value). + LAM_MEAN=${LAM_FIXED} + LAM_PRIOR_SD=$(python -c "print(${LAM_FIXED} * 1e-3)") + elif [[ "${LAM_PRIOR}" == "fixed0" ]]; then + # lambda pinned essentially at zero: the mixture is then single. + LAM_MEAN=1e-6 + LAM_PRIOR_SD=1e-9 + else + LAM_MEAN=${LAM_MEASURED} + fi + TRANSFORMATION_ARGS=(--transformation_model mixture + --transformation_lambda "${LAM_MEAN}" "${LAM_PRIOR_SD}" + --congression_theta_rule "${FIT_THETA_RULE}" + --congression_dk_rule "${FIT_DK_RULE}") + if [[ -n "${FIT_DK_ALPHA}" ]]; then + TRANSFORMATION_ARGS+=(--congression_dk_alpha "${FIT_DK_ALPHA}") + fi +fi + +# The count likelihood carries its own per-row dispersion, so it refuses the +# extra ln_cfu-scale growth noise the lncfu arms use. +if [[ "${LIKELIHOOD}" == "counts" ]]; then + GROWTH_NOISE=zero +else + GROWTH_NOISE=normal_kt +fi + +BINDING_WEIGHT_ARGS=() +if [[ -n "${BINDING_WEIGHT}" ]]; then + BINDING_WEIGHT_ARGS=(--binding_weight "${BINDING_WEIGHT}") +fi + +echo ">>> Configure (${LIKELIHOOD}, offset ${SAMPLE_OFFSET}, ${FIT}, lambda prior ${LAM_PRIOR}, theta rule ${FIT_THETA_RULE}, dk rule ${FIT_DK_RULE}${FIT_DK_ALPHA:+ alpha ${FIT_DK_ALPHA}})" +tfs-configure-model \ + --binding_df tfs_sim_binding.csv \ + --growth_df "${GROWTH_CSV}" \ + --presplit_df tfs_sim_presplit.csv \ + --condition_growth_model linear \ + --growth_transition_model instant \ + --ln_cfu0_model hierarchical_factored \ + --dk_geno_model hierarchical_geno \ + --activity_model fixed \ + --theta_model hill_mut \ + --theta_rescale_model passthrough \ + --theta_growth_noise_model logit_normal \ + --theta_binding_noise_model zero \ + --growth_noise_model "${GROWTH_NOISE}" \ + --growth_likelihood "${LIKELIHOOD}" \ + --sample_offset_model "${SAMPLE_OFFSET}" \ + --library_config tfs_sim_config.yaml \ + --growth_shares_replicates \ + --epistasis \ + "${TRANSFORMATION_ARGS[@]}" \ + "${BINDING_WEIGHT_ARGS[@]}" + +# --------------------------------------------------------------------------- +# 3. Pre-fit calibration, fit, posterior +# --------------------------------------------------------------------------- +PREFIT_ARGS=() +if [[ -n "${K_SCALE_CEILING}" ]]; then + PREFIT_ARGS=(--k_scale_ceiling "${K_SCALE_CEILING}") +fi + +echo ">>> Pre-fit calibration" +tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" "${PREFIT_ARGS[@]}" + +echo ">>> Fit model" +tfs-fit-model tfs_configure_config.yaml \ + --seed "${SEED}" \ + --analysis_method "${ANALYSIS_METHOD}" + +echo ">>> Sample posterior" +tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl + +# --------------------------------------------------------------------------- +# 4. Extract, predict, summarize +# --------------------------------------------------------------------------- +echo ">>> Extract parameters" +tfs-extract-params tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict theta" +tfs-predict-theta tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict growth" +tfs-predict-growth tfs_configure_config.yaml tfs_posterior.h5 \ + --num_marginal_samples=500 + +echo ">>> Summarize fit" +tfs-summarize-fit . + +echo ">>> Done" diff --git a/src/tfscreen/process_raw/counts_to_lncfu.py b/src/tfscreen/process_raw/counts_to_lncfu.py index 5d3b5040..4eddebb5 100644 --- a/src/tfscreen/process_raw/counts_to_lncfu.py +++ b/src/tfscreen/process_raw/counts_to_lncfu.py @@ -228,6 +228,8 @@ def counts_to_lncfu( pd.DataFrame A new DataFrame containing the combined data, with calculated frequencies, genotype-specific cfu/mL, and propagated variances. + ``sample_reads`` is each sample's total reads (``__unknown__`` + included, no pseudocounts), the depth the count likelihood uses. The DataFrame is sorted, and the 'genotype' column is cast as a categorical type. @@ -275,6 +277,10 @@ def counts_to_lncfu( .reindex(group['counts'].sum().index, fill_value=0)) total_counts_per_sample = group['counts'].sum() + n_real_genotypes * pseudocount + # The tube's total reads, __unknown__ included and without pseudocounts: + # the depth the count likelihood (growth_likelihood='counts') uses. + sample_reads = group['counts'].sum() + # Drop the unknown bucket now that it has contributed to the denominator; # everything downstream treats only real library genotypes. combined_df = combined_df[~is_unknown].copy() @@ -298,6 +304,8 @@ def counts_to_lncfu( final_df = _calculate_concentrations_and_variance(freq_df, total_counts_per_sample) + final_df['sample_reads'] = final_df['sample'].map(sample_reads) + # Define genotype as a categorical variable final_df = set_categorical_genotype(final_df,standardize=True,sort=False) diff --git a/src/tfscreen/tfmodel/analysis/prediction.py b/src/tfscreen/tfmodel/analysis/prediction.py index f175dce6..9413c3a4 100644 --- a/src/tfscreen/tfmodel/analysis/prediction.py +++ b/src/tfscreen/tfmodel/analysis/prediction.py @@ -260,6 +260,12 @@ def _get_input(value, col_name): # Add required data columns with dummy values new_growth_df["ln_cfu"] = 0.0 new_growth_df["ln_cfu_std"] = 1.0 + if orchestrator.settings.get("growth_likelihood") == "counts": + # The count observer's inputs; placeholders too, since prediction + # reads growth_pred, not the observation. + new_growth_df["counts"] = 0 + new_growth_df["sample_reads"] = 1.0 + new_growth_df["sample_ln_cfu"] = 0.0 # We keep the binding_df as is, as it's keyed by genotype/titrant_name # and we aren't subsetting those in this step. A growth-only model has @@ -612,6 +618,18 @@ def predict(orchestrator, val = val[sample_indices] + # Per-tube offsets (sample_offset: one value per tube, on a + # "{name}_tubes" plate) describe particular tubes. A prediction is + # for a typical tube, and its tube grid (every t_pre x t_sel x + # concentration asked for) is not the training grid, so these are + # set to zero: the expected growth, without any one tube's shift. + if any(frame.name.endswith("_tubes") + for frame in site.get("cond_indep_stack", [])): + num_new_tubes = int(np.prod(new_orchestrator.growth_tm.tensor_shape[:-1])) + sliced_samples[site_name] = jnp.zeros((val.shape[0], num_new_tubes), + dtype=val.dtype) + continue + # Slice any plated dimension to match the new data labels. # This handles genotype subsetting and any other model plates (like # titrant_conc in congression/categorical models). diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index 2a48d4b3..e94f6b20 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -97,6 +97,18 @@ class GrowthData: growth_shares_replicates: bool = field(pytree_node=False, default=False) + # Growth observation model: "lncfu" (Student-t on ln_cfu, observe/growth.py) + # or "counts" (negative binomial on read counts, observe/growth_counts.py). + # Static: set by ModelOrchestrator from its growth_likelihood. + growth_likelihood: str = field(pytree_node=False, default="lncfu") + # Count-likelihood tensors, same layout as ln_cfu; None unless + # growth_likelihood == "counts". counts: reads of the genotype in the + # tube; ln_sample_reads: ln of the tube's total reads (__unknown__ + # included); sample_ln_cfu: ln of the tube's total cells as supplied. + counts: Any = field(default=None) + ln_sample_reads: Any = field(default=None) + sample_ln_cfu: Any = field(default=None) + # Optional mutation-decomposition matrices (set when using *_mut_decomp components). # Stored as pytree_node=False so they are treated as static by JAX tracing. # Shape: mut_geno_matrix (num_mutation, num_genotype). diff --git a/src/tfscreen/tfmodel/generative/components/sample_offset/level.py b/src/tfscreen/tfmodel/generative/components/sample_offset/level.py new file mode 100644 index 00000000..5c037133 --- /dev/null +++ b/src/tfscreen/tfmodel/generative/components/sample_offset/level.py @@ -0,0 +1,112 @@ +""" +Per-tube level offset: one ln_cfu shift per tube, shared by every genotype +in it, with a constant prior. + +A tube is one sequenced sample (replicate x time x condition x titrant; see +``docs/source/process-raw.rst``, "One tube per time-point"). Anything that +moves every genotype's reads in a tube together lands here: the tube's +composition offset (PCR and genotype-calling efficiency, the ``__unknown__`` +share; study 0b measured about 0.02 ln units) and any error in the tube's +supplied total cells (per-tube OD600 scattered about 0.17 ln units around a +smooth curve in study 0c). Roadmap D2 (planning/analysis-roadmap.md): unlike +``normal``, whose offset is a growth-rate shift scaled by elapsed time, this +one is a level with no time dependence. + +Prior +----- + sigma ~ HalfNormal(sigma_prior_scale) + offset[tube] ~ Normal(0, sigma) + +Guide +----- + sigma ~ LogNormal(sigma_loc, sigma_scale) + offset[tube] ~ Normal(offset_loc, offset_scale) + +The offset is a per-tube global site (not per genotype), so it is +mini-batch safe. Its contribution has shape ``(*tube_shape, 1)`` and +broadcasts over the genotype axis of ``ln_cfu_pred``. +""" + +import math +from typing import Any, Dict + +import jax.numpy as jnp +import numpyro as pyro +import numpyro.distributions as dist +from flax.struct import dataclass + +from tfscreen.tfmodel.data_class import GrowthData + + +@dataclass(frozen=True) +class ModelPriors: + """ + sigma_prior_scale : float + Scale of the HalfNormal prior on sigma, the SD of the per-tube + offsets (ln units). + """ + sigma_prior_scale: float + + +def _tube_shape(data: GrowthData): + return (data.num_replicate, data.num_time, data.num_condition_pre, + data.num_condition_sel, data.num_titrant_name, data.num_titrant_conc) + + +def define_model(name: str, + data: GrowthData, + priors: ModelPriors) -> jnp.ndarray: + """ + Sample the per-tube offsets and return them shaped + ``(*tube_shape, 1)`` for adding to ``ln_cfu_pred``. + """ + sigma = pyro.sample(f"{name}_sigma", + dist.HalfNormal(priors.sigma_prior_scale)) + shape = _tube_shape(data) + num_tubes = math.prod(shape) + with pyro.plate(f"{name}_tubes", num_tubes, dim=-1): + offset = pyro.sample(f"{name}_offset", dist.Normal(0.0, sigma)) + return offset.reshape(*shape, 1) + + +def guide(name: str, + data: GrowthData, + priors: ModelPriors) -> jnp.ndarray: + """LogNormal guide for sigma, per-tube Normal guides for the offsets.""" + shape = _tube_shape(data) + num_tubes = math.prod(shape) + + sigma_loc = pyro.param(f"{name}_sigma_loc", + jnp.log(jnp.array(priors.sigma_prior_scale) / 4.0)) + sigma_scale = pyro.param(f"{name}_sigma_scale", jnp.array(0.5), + constraint=dist.constraints.greater_than(1e-4)) + pyro.sample(f"{name}_sigma", dist.LogNormal(sigma_loc, sigma_scale)) + + offset_loc = pyro.param(f"{name}_offset_loc", jnp.zeros(num_tubes)) + offset_scale = pyro.param(f"{name}_offset_scale", jnp.full(num_tubes, 1e-2), + constraint=dist.constraints.greater_than(1e-4)) + with pyro.plate(f"{name}_tubes", num_tubes, dim=-1): + offset = pyro.sample(f"{name}_offset", + dist.Normal(offset_loc, offset_scale)) + return offset.reshape(*shape, 1) + + +def get_hyperparameters() -> Dict[str, Any]: + """ + sigma_prior_scale = 0.2: wide enough for the per-tube OD600 scatter of + study 0c (about 0.17 ln units) when each tube's total comes from its own + OD600, and for the small composition offset (about 0.02, study 0b). + """ + return {"sigma_prior_scale": 0.2} + + +def get_priors() -> ModelPriors: + return ModelPriors(**get_hyperparameters()) + + +def get_guesses(name: str, data: GrowthData) -> Dict[str, Any]: + return {f"{name}_sigma": jnp.array(0.05)} + + +def get_extract_specs(ctx) -> list: + return [] diff --git a/src/tfscreen/tfmodel/generative/observe/growth_counts.py b/src/tfscreen/tfmodel/generative/observe/growth_counts.py new file mode 100644 index 00000000..48635017 --- /dev/null +++ b/src/tfscreen/tfmodel/generative/observe/growth_counts.py @@ -0,0 +1,252 @@ +""" +Growth observer on read counts (``growth_likelihood: counts``). + +Roadmap step 7 (planning/analysis-roadmap.md). Instead of observing +``ln_cfu`` (a pseudocount-adjusted log frequency plus the tube total), each +genotype's reads in each tube are observed directly: + + reads[g, s] ~ NegBin(mean = mu[g, s], var = mu (1 + phi) + mu^2 / r) + log mu[g, s] = ln(depth_s) + ln_cfu_pred[g, s] - ln(N_s) + +``depth_s`` is the tube's total reads (including ``__unknown__``), ``N_s`` +the tube's total cells as supplied (``sample_ln_cfu``), and ``ln_cfu_pred`` +the model's cells of genotype g in tube s (with any per-tube +``sample_offset``). So ``mu / depth`` is the predicted frequency. There is +no pseudocount: a zero is an observation. + +The variance has two learned parts (study 0b, planning/studies/noise-anatomy/): + +- ``phi`` (``{name}_phi``): variance proportional to the mean, as from a + bottleneck upstream of the reads (template molecules into PCR, founder + cells per tube). Real data: about 3-10. +- ``1/r`` (``{name}_inv_r``): a constant coefficient of variation, as from + jackpotting that scales with abundance. + +Both reduce to Poisson as they go to zero. The distribution is a +negative binomial with ``mean = mu`` and concentration +``1 / (phi / mu + 1 / r)``, evaluated in log space. Its log-pmf uses Loader's +algorithm (``CountNegativeBinomial``): numpyro's own negative binomial loses +several nats per observation to float32 cancellation at 10^4-10^6 reads. + +The per-row observation weights, masking and genotype mini-batching are +identical to the ``ln_cfu`` observer (``observe/growth.py``). +""" + +import jax +import jax.numpy as jnp +import numpyro as pyro +import numpyro.distributions as dist +from flax.struct import dataclass + +from tfscreen.tfmodel.data_class import GrowthData + + +@dataclass(frozen=True) +class GrowthCountsObsPriors: + """ + LogNormal priors (in log space: loc, scale) on the count observer's + dispersion: ``phi`` (variance proportional to the mean) and ``inv_r`` + (1/r, the squared coefficient of variation that does not shrink with + depth). + """ + phi_loc: float + phi_scale: float + inv_r_loc: float + inv_r_scale: float + + +def log_mean(data: GrowthData, ln_cfu_pred: jnp.ndarray) -> jnp.ndarray: + """``log mu = ln(depth) + ln_cfu_pred - ln(N)`` per growth-tensor cell.""" + return data.ln_sample_reads + ln_cfu_pred - data.sample_ln_cfu + + +# --- A negative binomial log-pmf that stays accurate in float32 ----------- +# +# numpyro's NegativeBinomial computes lgamma(k + c) - lgamma(c) - lgamma(k + 1) +# + c log p + k log q directly. At the read depths here (10^4-10^6 reads for +# spiked genotypes) those terms are ~10^7 and cancel to a few nats, so float32 +# rounding alone costs several nats per observation. Loader's algorithm (C. +# Loader, "Fast and accurate computation of binomial probabilities", 2000; +# R's dbinom_raw / dnbinom_mu) writes the same probability through a deviance +# term (bd0) and Stirling-series errors (stirlerr), none of which cancel. + +_HALF_LOG_2PI = 0.9189385332046727 +_BD0_TERMS = 10 + + +def _stirlerr(n): + """lgamma(n + 1) - (n + 1/2) log n + n - log(2 pi)/2, for n > 0.""" + n = jnp.asarray(n) + # Each branch sees only inputs where it is valid, so the unused one + # cannot overflow and leak NaN into the gradient through jnp.where. + big_n = jnp.maximum(n, 15.0) + nn = big_n * big_n + large = (1/12 - (1/360 - (1/1260 - (1/1680 - (1/1188)/nn)/nn)/nn)/nn)/big_n + small_n = jnp.minimum(n, 15.0) + small = (jax.scipy.special.gammaln(small_n + 1.0) + - (small_n + 0.5)*jnp.log(small_n) + small_n - _HALF_LOG_2PI) + return jnp.where(n > 15.0, large, small) + + +def _bd0(x, log_m): + """ + Deviance ``x log(x / m) + m - x`` for x > 0, m = exp(log_m), without + cancellation when x is close to m (series in v = (x - m) / (x + m)). + """ + m = jnp.exp(log_m) + direct = x*(jnp.log(x) - log_m) + m - x + v = (x - m)/(x + m) + near = jnp.abs(x - m) < 0.1*(x + m) + v = jnp.where(near, v, 0.0) + s = (x - m)*v + ej = 2.0*x*v + v2 = v*v + for j in range(1, _BD0_TERMS + 1): + ej = ej*v2 + s = s + ej/(2*j + 1) + return jnp.where(near, s, direct) + + +def _nb_log_prob(k, log_mu, log_c): + """ + log NB(k; mean mu, concentration c), with the variance mu + mu^2 / c. + R's dnbinom_mu: log(c / (c + k)) + dbinom_raw(c, k + c, p, q) with + p = c / (c + mu) and q = mu / (c + mu); k = 0 is c log p. + """ + c = jnp.exp(log_c) + log_p = -jax.nn.softplus(log_mu - log_c) + log_q = -jax.nn.softplus(log_c - log_mu) + + zero = c*log_p + + k_safe = jnp.maximum(k, 1.0) + n = k_safe + c + log_n = jnp.log(n) + lc = (_stirlerr(n) - _stirlerr(c) - _stirlerr(k_safe) + - _bd0(c, log_n + log_p) - _bd0(k_safe, log_n + log_q)) + # log(2 pi c k / n), the binomial's normalizing term + lf = 2.0*_HALF_LOG_2PI + log_c + jnp.log(k_safe) - log_n + positive = (log_c - log_n) + lc - 0.5*lf + + return jnp.where(k > 0, positive, zero) + + +class CountNegativeBinomial(dist.Distribution): + """ + Negative binomial on counts, parameterized by ``log_mu`` (log mean) and + ``log_c`` (log concentration; variance ``mu + mu^2 / c``), with a + float32-accurate log-pmf (see ``_nb_log_prob``). Sampling is Gamma-Poisson. + """ + arg_constraints = {"log_mu": dist.constraints.real, + "log_c": dist.constraints.real} + support = dist.constraints.nonnegative_integer + + def __init__(self, log_mu, log_c, *, validate_args=None): + self.log_mu, self.log_c = jnp.broadcast_arrays(log_mu, log_c) + super().__init__(batch_shape=jnp.shape(self.log_mu), + validate_args=validate_args) + + def sample(self, key, sample_shape=()): + c = jnp.exp(self.log_c) + return dist.GammaPoisson(c, c*jnp.exp(-self.log_mu)).sample(key, sample_shape) + + def log_prob(self, value): + return _nb_log_prob(value, self.log_mu, self.log_c) + + @property + def mean(self): + return jnp.exp(self.log_mu) + + @property + def variance(self): + mu = jnp.exp(self.log_mu) + return mu + mu*mu*jnp.exp(-self.log_c) + + +def count_distribution(log_mu, phi, inv_r): + """ + Negative binomial with mean ``exp(log_mu)`` and variance + ``mu (1 + phi) + mu^2 inv_r``: concentration ``1 / (phi / mu + inv_r)``, + in log space so that very small means do not underflow. + """ + log_c = -jnp.logaddexp(jnp.log(phi) - log_mu, jnp.log(inv_r)) + return CountNegativeBinomial(log_mu, log_c) + + +def observe(name: str, + data: GrowthData, + ln_cfu_pred: jnp.ndarray, + sigma_k: jnp.ndarray = 0.0, + *, + priors: GrowthCountsObsPriors): + """ + Observation site for the growth read counts. + + Parameters + ---------- + name : str + Prefix for the sample sites (``{name}_phi``, ``{name}_inv_r``, + ``{name}_obs``). + data : GrowthData + Needs ``counts``, ``ln_sample_reads`` and ``sample_ln_cfu`` (built by + ``ModelOrchestrator`` when ``growth_likelihood='counts'``) besides + the usual mask, sizes and mini-batch scale vector. + ln_cfu_pred : jnp.ndarray + The model's ln cells of each genotype in each tube. + sigma_k : jnp.ndarray, optional + Accepted for signature compatibility with the ``ln_cfu`` observer and + ignored: ``growth_noise`` must be ``zero`` with this observer (the + orchestrator refuses anything else), because extra per-row noise is + what ``phi`` and ``inv_r`` describe. + priors : GrowthCountsObsPriors + """ + phi = pyro.sample(f"{name}_phi", + dist.LogNormal(priors.phi_loc, priors.phi_scale)) + inv_r = pyro.sample(f"{name}_inv_r", + dist.LogNormal(priors.inv_r_loc, priors.inv_r_scale)) + + log_mu = log_mean(data, ln_cfu_pred) + + with pyro.plate(f"{name}_replicate", size=data.num_replicate, dim=-7): + with pyro.plate(f"{name}_time", size=data.num_time, dim=-6): + with pyro.plate(f"{name}_condition_pre", size=data.num_condition_pre, dim=-5): + with pyro.plate(f"{name}_condition_sel", size=data.num_condition_sel, dim=-4): + with pyro.plate(f"{name}_titrant_name", size=data.num_titrant_name, dim=-3): + with pyro.plate(f"{name}_titrant_conc", size=data.num_titrant_conc, dim=-2): + with pyro.plate("shared_genotype_plate", size=data.batch_size, dim=-1): + with pyro.handlers.scale(scale=data.scale_vector): + with pyro.handlers.mask(mask=data.good_mask): + pyro.sample(f"{name}_obs", + count_distribution(log_mu, phi, inv_r), + obs=data.counts) + + +def guide(name: str, + data: GrowthData, + ln_cfu_pred: jnp.ndarray, + sigma_k: jnp.ndarray = 0.0, + *, + priors: GrowthCountsObsPriors): + """LogNormal guides for ``phi`` and ``inv_r``, started at their prior + medians.""" + for site, loc in (("phi", priors.phi_loc), ("inv_r", priors.inv_r_loc)): + site_loc = pyro.param(f"{name}_{site}_loc", jnp.asarray(loc)) + site_scale = pyro.param(f"{name}_{site}_scale", jnp.array(0.1), + constraint=dist.constraints.positive) + pyro.sample(f"{name}_{site}", dist.LogNormal(site_loc, site_scale)) + + +def get_hyperparameters(): + """ + Default priors. ``phi``: median 5, 95% interval about 0.7-35 (study 0b + found 3-10 on real data; a simulation without a bottleneck has about + 0). ``inv_r``: median 0.01 (a 10% coefficient-of-variation floor), 95% + interval about 5e-4 to 0.2. + """ + return {"phi_loc": float(jnp.log(5.0)), "phi_scale": 1.0, + "inv_r_loc": float(jnp.log(0.01)), "inv_r_scale": 1.5} + + +def get_priors(): + """Build GrowthCountsObsPriors from get_hyperparameters().""" + return GrowthCountsObsPriors(**get_hyperparameters()) diff --git a/src/tfscreen/tfmodel/generative/registry.py b/src/tfscreen/tfmodel/generative/registry.py index 3af4aa9f..94096ba7 100644 --- a/src/tfscreen/tfmodel/generative/registry.py +++ b/src/tfscreen/tfmodel/generative/registry.py @@ -53,9 +53,11 @@ from .components.sample_offset import zero as sample_offset_zero from .components.sample_offset import normal as sample_offset_normal +from .components.sample_offset import level as sample_offset_level from .observe import binding from .observe import growth +from .observe import growth_counts from .observe import presplit from .observe import base_growth @@ -123,6 +125,7 @@ "sample_offset":{ "zero":sample_offset_zero, "normal":sample_offset_normal, + "level":sample_offset_level, }, "growth_transition":{ "instant":growth_transition_instant, @@ -134,6 +137,7 @@ }, "observe_binding":binding, "observe_growth":growth, + "observe_growth_counts":growth_counts, "observe_presplit":presplit, "observe_base_growth":base_growth, } diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index 6f316b40..922c3c1f 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -38,7 +38,8 @@ def _read_growth_df(growth_df, theta_group_cols=None, - treatment_cols=None): + treatment_cols=None, + growth_likelihood="lncfu"): """ Reads and preprocesses a DataFrame containing growth curve data. @@ -64,6 +65,10 @@ def _read_growth_df(growth_df, Column names used to define unique growth treatment conditions. If not specified, defaults to ["condition_pre", "condition_sel", "titrant_name", "titrant_conc"]. + growth_likelihood : str, optional + "lncfu" (default) or "counts". For "counts" the frame also needs + ``counts``, each tube's total reads and total cells; see + :func:`_add_count_columns`. Returns ------- @@ -105,6 +110,9 @@ def _read_growth_df(growth_df, required.extend(["ln_cfu","ln_cfu_std","replicate","t_pre","t_sel"]) tfscreen.util.dataframe.check_columns(growth_df,required_columns=required) + if growth_likelihood == "counts": + growth_df = _add_count_columns(growth_df) + # These two maps are used to look up parameters after sampling posteriors growth_df = add_group_columns(target_df=growth_df, group_cols=treatment_cols, @@ -124,6 +132,62 @@ def _read_growth_df(growth_df, return growth_df +def _add_count_columns(growth_df): + """ + Columns the count likelihood needs (``growth_likelihood='counts'``): + ``counts`` (reads of the genotype in the tube), ``ln_sample_reads`` (ln of + the tube's total reads, ``__unknown__`` included) and ``sample_ln_cfu`` + (ln of the tube's total cells). + + The tube's total reads come from ``sample_reads`` (written by + ``counts_to_lncfu``) when present, else from ``adjusted_counts / + frequency`` (the frequency denominator of older processed files, which + also counts one pseudocount per genotype: about 1% more than the reads, + the same for every genotype in a tube, so a per-tube offset absorbs + it). ``sample_ln_cfu`` is used as given, else derived from + ``sample_cfu`` as ``counts_to_lncfu`` does. + + Raises + ------ + ValueError + If a column cannot be found or derived, or a tube's reads or + ``counts`` are not finite and non-negative. + """ + from tfscreen.process_raw.counts_to_lncfu import get_sample_ln_cfu + + if "counts" not in growth_df.columns: + raise ValueError("growth_likelihood='counts' needs a 'counts' column " + "in growth_df (reads per genotype per tube).") + counts = growth_df["counts"].to_numpy(dtype=float) + if not np.all(np.isfinite(counts) & (counts >= 0)): + raise ValueError("growth_df 'counts' must be finite and >= 0.") + + if "sample_reads" in growth_df.columns: + reads = growth_df["sample_reads"].to_numpy(dtype=float) + elif {"adjusted_counts", "frequency"} <= set(growth_df.columns): + with np.errstate(divide="ignore", invalid="ignore"): + reads = (growth_df["adjusted_counts"].to_numpy(dtype=float) + / growth_df["frequency"].to_numpy(dtype=float)) + else: + raise ValueError( + "growth_likelihood='counts' needs each tube's total reads: a " + "'sample_reads' column (tfs-process-counts writes it), or " + "'adjusted_counts' and 'frequency' to derive it from.") + if not np.all(np.isfinite(reads) & (reads > 0)): + raise ValueError("Every tube's total reads must be finite and > 0.") + growth_df["ln_sample_reads"] = np.log(reads) + + if "sample_ln_cfu" not in growth_df.columns: + try: + growth_df = get_sample_ln_cfu(growth_df) + except ValueError as e: + raise ValueError( + f"growth_likelihood='counts' needs each tube's total cells: " + f"{e}") from e + + return growth_df + + def _infer_is_selection(growth_df, per_library=False): """ Infer which growth conditions are selective from the data structure. @@ -167,7 +231,8 @@ def _infer_is_selection(growth_df, per_library=False): return {cond: bool(cond not in pre_set) for cond in sorted(all_conds)} -def _build_growth_tm(growth_df, growth_shares_replicates=False): +def _build_growth_tm(growth_df, growth_shares_replicates=False, + growth_likelihood="lncfu"): """ Builds a TensorManager for the main growth data. @@ -186,6 +251,9 @@ def _build_growth_tm(growth_df, growth_shares_replicates=False): Must contain all columns required for pivots and maps. growth_shares_replicates : bool, optional Whether to exclude replicate when mapping identical parameters. + growth_likelihood : str, optional + "lncfu" (default) or "counts". "counts" also registers the + ``counts``, ``ln_sample_reads`` and ``sample_ln_cfu`` tensors. Returns ------- @@ -222,6 +290,9 @@ def _build_growth_tm(growth_df, growth_shares_replicates=False): growth_tm.add_data_tensor("ln_cfu_std",dtype=FLOAT_DTYPE) growth_tm.add_data_tensor("t_pre",dtype=FLOAT_DTYPE) growth_tm.add_data_tensor("t_sel",dtype=FLOAT_DTYPE) + if growth_likelihood == "counts": + for col in ("counts", "ln_sample_reads", "sample_ln_cfu"): + growth_tm.add_data_tensor(col, dtype=FLOAT_DTYPE) # This creates a full-dimension map tensor that lets us look up the growth # conditions (pre and sel) for each element in the tensor. @@ -694,6 +765,11 @@ def _setup_batching(growth_genotypes, # Transformation components that were removed or renamed, with the reason. # Refused by name so an old config fails loudly instead of silently meaning # something new. +# Growth observation models: Student-t on ln_cfu, or negative binomial on +# read counts (roadmap step 7). +_GROWTH_LIKELIHOODS = {"lncfu": "observe_growth", + "counts": "observe_growth_counts"} + # Rules for a congressed cell's theta (transformation/mixture.py). _CONGRESSION_THETA_RULES = ("homodimer", "heterodimer", "max") # Rules for a congressed cell's dk_geno (the soft-min family; only @@ -861,6 +937,12 @@ class ModelOrchestrator: congression_dk_alpha : float, optional alpha for ``congression_dk_rule="softmin"`` (> 0, in units of 1/dk); required by that rule and refused by the others. + growth_likelihood : str, optional + How growth is observed: ``"lncfu"`` (default; Student-t on ``ln_cfu``, + ``observe/growth.py``) or ``"counts"`` (negative binomial on the read + counts, ``observe/growth_counts.py``; needs ``counts``, each tube's + total reads and total cells, see ``_add_count_columns``, and + ``growth_noise='zero'``). Attributes ---------- @@ -909,7 +991,8 @@ def __init__(self, congression_seed=0, congression_theta_rule="homodimer", congression_dk_rule="dilution", - congression_dk_alpha=None): + congression_dk_alpha=None, + growth_likelihood="lncfu"): self._ln_cfu_df = growth_df self._binding_df = binding_df @@ -947,6 +1030,17 @@ def __init__(self, self._congression_dk_rule = congression_dk_rule self._congression_dk_alpha = _check_congression_dk_alpha( congression_dk_rule, congression_dk_alpha) + self._growth_likelihood = growth_likelihood + + if self._growth_likelihood not in _GROWTH_LIKELIHOODS: + raise ValueError( + f"growth_likelihood must be one of " + f"{list(_GROWTH_LIKELIHOODS)}; got {self._growth_likelihood!r}.") + if self._growth_likelihood == "counts" and growth_noise != "zero": + raise ValueError( + f"growth_likelihood='counts' describes extra per-row noise " + f"through its own dispersion (phi, inv_r), so growth_noise " + f"must be 'zero'; got {growth_noise!r}.") if self._transformation in _RETIRED_TRANSFORMATIONS: raise ValueError(_RETIRED_TRANSFORMATIONS[self._transformation]) @@ -1057,8 +1151,11 @@ def _initialize_data(self): # Load in growth data, creating two blocks of tensors. One holds the # growth (replicate,time,condition,genotype) data. The other holds # the theta (titrant_conc,theta_group) tensor. - self.growth_df = _read_growth_df(self._ln_cfu_df) - self.growth_tm = _build_growth_tm(self.growth_df, self._growth_shares_replicates) + self.growth_df = _read_growth_df(self._ln_cfu_df, + growth_likelihood=self._growth_likelihood) + self.growth_tm = _build_growth_tm(self.growth_df, + self._growth_shares_replicates, + growth_likelihood=self._growth_likelihood) # Assemble tensors. tensors = {} @@ -1066,6 +1163,9 @@ def _initialize_data(self): from_growth_tm = ["ln_cfu","ln_cfu_std","t_pre","t_sel", "map_condition_pre","map_condition_sel","good_mask"] + if self._growth_likelihood == "counts": + from_growth_tm += ["counts", "ln_sample_reads", "sample_ln_cfu"] + for k in from_growth_tm: tensors[k] = self.growth_tm.tensors[k] @@ -1184,7 +1284,8 @@ def _initialize_data(self): "coresident_n":jnp.array(coresident_n,dtype=jnp.int32), "congression_theta_rule":self._congression_theta_rule, "congression_dk_rule":self._congression_dk_rule, - "congression_dk_alpha":self._congression_dk_alpha} + "congression_dk_alpha":self._congression_dk_alpha, + "growth_likelihood":self._growth_likelihood} # Grab the titrant concentration and log_titrant_conc (1D array from # the tensor labels along dimension 6) @@ -1820,8 +1921,9 @@ def _initialize_classes(self): main_control_kwargs["observe_binding"] = model_registry["observe_binding"].observe guide_control_kwargs["observe_binding"] = model_registry["observe_binding"].guide if not self._binding_only: - main_control_kwargs["observe_growth"] = model_registry["observe_growth"].observe - guide_control_kwargs["observe_growth"] = model_registry["observe_growth"].guide + growth_observer = model_registry[_GROWTH_LIKELIHOODS[self._growth_likelihood]] + main_control_kwargs["observe_growth"] = growth_observer.observe + guide_control_kwargs["observe_growth"] = growth_observer.guide # Optional side-channel observers -- wired only when their data was # supplied. Both borrow growth's genotype batch state and a latent @@ -1868,7 +1970,7 @@ def _initialize_classes(self): ) else: priors_class_kwargs["growth"]["growth_obs"] = \ - model_registry["observe_growth"].get_priors() + model_registry[_GROWTH_LIKELIHOODS[self._growth_likelihood]].get_priors() if self._base_growth_df is not None: priors_class_kwargs["growth"]["base_growth"] = \ model_registry["observe_base_growth"].get_priors( @@ -2183,4 +2285,5 @@ def settings(self): "congression_theta_rule": self._congression_theta_rule, "congression_dk_rule": self._congression_dk_rule, "congression_dk_alpha": self._congression_dk_alpha, + "growth_likelihood": self._growth_likelihood, } diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index d8c54f88..87dcd3d8 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -141,6 +141,8 @@ def configure_model(binding_df=None, theta_growth_noise_model="zero", theta_binding_noise_model="zero", growth_noise_model="zero", + sample_offset_model="zero", + growth_likelihood="lncfu", library_config=None, growth_shares_replicates=False, epistasis=False, @@ -265,6 +267,23 @@ def configure_model(binding_df=None, 'normal_kt' learns a global sigma_k that inflates the observation scale in quadrature with ln_cfu_std, capturing biological variability in growth rates not explained by theta or dk_geno. + sample_offset_model : str, optional + Per-tube offset shared by every genotype in a tube. 'zero' (default) + adds none; 'level' adds one ln_cfu offset per tube with a learned, + constant SD (the tube's composition offset and any error in its + supplied total); 'normal' adds a per-tube growth-rate offset scaled + by elapsed time. Recommended with growth_likelihood 'counts', where + an error in a tube's supplied total otherwise moves every genotype + in it. + growth_likelihood : str, optional + How growth data are observed: 'lncfu' (default; Student-t on + ln_cfu) or 'counts' (negative binomial on the read counts, with a + learned dispersion whose variance has a part proportional to the + mean and a quadratic part; no pseudocount). 'counts' needs a + 'counts' column, each tube's total reads ('sample_reads', or + 'adjusted_counts' and 'frequency' to derive it) and total cells + ('sample_ln_cfu', or 'sample_cfu' with its uncertainty), and + growth_noise_model 'zero'. library_config : str, optional Path to the library YAML describing the screened library -- the same file handed to ``tfs-process-fastq``. Required whenever ``growth_df`` @@ -397,6 +416,8 @@ def configure_model(binding_df=None, theta_growth_noise=theta_growth_noise_model, theta_binding_noise=theta_binding_noise_model, growth_noise=growth_noise_model, + sample_offset=sample_offset_model, + growth_likelihood=growth_likelihood, library_file=library_file, growth_shares_replicates=growth_shares_replicates, epistasis=epistasis, diff --git a/src/tfscreen/tfmodel/scripts/setup_grid_cli.py b/src/tfscreen/tfmodel/scripts/setup_grid_cli.py index ade0081b..55b28cf3 100644 --- a/src/tfscreen/tfmodel/scripts/setup_grid_cli.py +++ b/src/tfscreen/tfmodel/scripts/setup_grid_cli.py @@ -111,6 +111,7 @@ "theta_growth_noise", "theta_binding_noise", "growth_noise", + "sample_offset", }) # configure_model arguments that are input file paths. Each is copied into diff --git a/src/tfscreen/tfmodel/tensors/batch.py b/src/tfscreen/tfmodel/tensors/batch.py index 8c124f1c..16218995 100644 --- a/src/tfscreen/tfmodel/tensors/batch.py +++ b/src/tfscreen/tfmodel/tensors/batch.py @@ -51,6 +51,13 @@ def get_batch(full_data: DataClass, idx: jnp.ndarray) -> DataClass: map_condition_sel=full_data.growth.map_condition_sel[...,idx], good_mask=full_data.growth.good_mask[...,idx], ) + # Count-likelihood tensors (growth_likelihood == "counts" only). + if getattr(full_data.growth, "counts", None) is not None: + new_growth = new_growth.replace( + counts=full_data.growth.counts[...,idx], + ln_sample_reads=full_data.growth.ln_sample_reads[...,idx], + sample_ln_cfu=full_data.growth.sample_ln_cfu[...,idx], + ) return full_data.replace(growth=new_growth) # Binding-only mode: idx is a set of binding-genotype indices. diff --git a/tests/smoke-tests/test_configure_run_smoke.py b/tests/smoke-tests/test_configure_run_smoke.py index 86a80f40..f4bfde08 100644 --- a/tests/smoke-tests/test_configure_run_smoke.py +++ b/tests/smoke-tests/test_configure_run_smoke.py @@ -184,6 +184,38 @@ def test_configure_run_growth_only_smoke(tmpdir, growth_smoke_csv, assert len(pred) > 0 +@pytest.mark.slow +def test_configure_run_count_likelihood_smoke(tmpdir, growth_smoke_csv, + binding_smoke_csv, + library_smoke_yaml): + """ + configure -> fit -> sample posterior -> predict growth with the count + likelihood and a per-tube level offset. + """ + from tfscreen.tfmodel.scripts.predict_growth_cli import predict_growth + + cfg_prefix = os.path.join(tmpdir, "test_tfs_counts") + configure_model(binding_df=binding_smoke_csv, + growth_df=growth_smoke_csv, + library_config=library_smoke_yaml, + growth_likelihood="counts", + sample_offset_model="level", + out_prefix=cfg_prefix) + config_file = f"{cfg_prefix}_config.yaml" + + out_prefix = os.path.join(tmpdir, "test_tfs_counts_out") + fit_model(config_file=config_file, seed=42, max_num_epochs=1, + out_prefix=out_prefix) + sample_posterior(config_file=config_file, + checkpoint_file=f"{out_prefix}_checkpoint.pkl", + out_prefix=f"{out_prefix}_posterior", + num_posterior_samples=10, + sampling_batch_size=10) + posterior = f"{out_prefix}_posterior.h5" + predict_growth(config_file, posterior, out_prefix=f"{out_prefix}_pred") + assert len(pd.read_csv(f"{out_prefix}_pred.csv")) > 0 + + @pytest.mark.slow @pytest.mark.parametrize("guide_type", ["auto_normal", "auto_low_rank_multivariate_normal"]) diff --git a/tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py b/tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py new file mode 100644 index 00000000..b8f906ee --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py @@ -0,0 +1,67 @@ +"""Tests for the per-tube level offset (sample_offset: level).""" +from unittest.mock import MagicMock + +import jax.numpy as jnp +import numpy as np +import pytest +from numpyro import handlers + +from tfscreen.tfmodel.generative.components.sample_offset.level import ( + ModelPriors, + define_model, + get_guesses, + get_priors, + guide, +) + +SHAPE = (2, 3, 1, 2, 1, 4) + + +def _data(): + data = MagicMock() + (data.num_replicate, data.num_time, data.num_condition_pre, + data.num_condition_sel, data.num_titrant_name, + data.num_titrant_conc) = SHAPE + return data + + +def _trace(fn, **subs): + f = handlers.substitute(fn, data=subs) if subs else fn + return handlers.trace(handlers.seed(f, 0)).get_trace( + "sample_offset", _data(), get_priors()) + + +def test_priors(): + assert isinstance(get_priors(), ModelPriors) + assert get_priors().sigma_prior_scale == 0.2 + + +@pytest.mark.parametrize("fn", [define_model, guide]) +def test_shape_broadcasts_over_genotypes(fn): + with handlers.seed(rng_seed=0): + out = fn("sample_offset", _data(), get_priors()) + assert out.shape == (*SHAPE, 1) + + +def test_one_offset_per_tube_constant_in_time(): + num_tubes = int(np.prod(SHAPE)) + offsets = jnp.arange(num_tubes, dtype=float) / 100.0 + tr = _trace(define_model, sample_offset_sigma=0.1, + sample_offset_offset=offsets) + assert tr["sample_offset_offset"]["value"].shape == (num_tubes,) + with handlers.substitute(data={"sample_offset_sigma": 0.1, + "sample_offset_offset": offsets}): + out = define_model("sample_offset", _data(), get_priors()) + # The offset is the level itself: no scaling by elapsed time. + assert np.allclose(np.asarray(out).ravel(), np.asarray(offsets)) + + +def test_guide_follows_loc_scale_convention(): + tr = _trace(guide) + params = {k for k, v in tr.items() if v["type"] == "param"} + assert params == {"sample_offset_sigma_loc", "sample_offset_sigma_scale", + "sample_offset_offset_loc", "sample_offset_offset_scale"} + + +def test_guesses(): + assert set(get_guesses("sample_offset", _data())) == {"sample_offset_sigma"} diff --git a/tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py b/tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py new file mode 100644 index 00000000..ba36bcc1 --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py @@ -0,0 +1,145 @@ +"""Tests for the read-count growth observer (growth_likelihood='counts').""" +from collections import namedtuple + +import jax +import jax.numpy as jnp +import numpy as np +import pytest +from numpyro.handlers import seed, substitute, trace +from scipy import stats + +from tfscreen.tfmodel.generative.observe.growth_counts import ( + GrowthCountsObsPriors, + count_distribution, + get_priors, + guide, + log_mean, + observe, +) + +MockData = namedtuple("MockData", [ + "counts", "ln_sample_reads", "sample_ln_cfu", "num_replicate", "num_time", + "num_condition_pre", "num_condition_sel", "num_titrant_name", + "num_titrant_conc", "batch_size", "scale_vector", "good_mask"]) + +SHAPE = (1, 1, 1, 1, 1, 2, 3) + + +@pytest.fixture +def data(): + counts = jnp.array([0.0, 4.0, 120.0, 7.0, 0.0, 3000.0]).reshape(SHAPE) + good = jnp.ones(SHAPE, dtype=bool).at[..., 0, 1].set(False) + return MockData(counts=counts, + ln_sample_reads=jnp.full(SHAPE, jnp.log(1e6)), + sample_ln_cfu=jnp.full(SHAPE, jnp.log(1e8)), + num_replicate=1, num_time=1, num_condition_pre=1, + num_condition_sel=1, num_titrant_name=1, + num_titrant_conc=2, batch_size=3, + scale_vector=jnp.array([2.0, 1.0, 1.0]), + good_mask=good) + + +# --------------------------------------------------------------------------- +# the distribution +# --------------------------------------------------------------------------- + +@pytest.mark.parametrize("mu,phi,inv_r", [(3.0, 5.0, 0.01), (0.02, 8.0, 0.1), + (500.0, 0.5, 0.2)]) +def test_moments(mu, phi, inv_r): + d = count_distribution(jnp.log(mu), phi, inv_r) + assert float(d.mean) == pytest.approx(mu, rel=1e-4) + assert float(d.variance) == pytest.approx(mu * (1 + phi) + mu ** 2 * inv_r, + rel=1e-4) + + +def test_log_prob_matches_scipy_negative_binomial(): + mu, phi, inv_r = 40.0, 3.0, 0.05 + c = 1.0 / (phi / mu + inv_r) # concentration + p = c / (c + mu) # scipy's success probability + k = np.arange(0, 200) + expected = stats.nbinom.logpmf(k, c, p) + got = count_distribution(jnp.log(mu), phi, inv_r).log_prob(jnp.asarray(k, float)) + assert np.allclose(np.asarray(got), expected, atol=1e-4) + + +@pytest.mark.parametrize("mu,phi,inv_r", [(3e4, 5.0, 0.01), (1e6, 5.0, 0.01), + (1e6, 0.1, 1e-4), (0.01, 8.0, 0.05)]) +def test_log_prob_accurate_at_high_depth(mu, phi, inv_r): + # numpyro's own negative binomial loses several nats to float32 + # cancellation at 1e4-1e6 reads; this one must not. + c = 1.0 / (phi / mu + inv_r) + p = c / (c + mu) + sd = np.sqrt(mu * (1 + phi) + mu ** 2 * inv_r) + k = np.unique(np.clip(np.round(np.linspace(mu - 6 * sd, mu + 6 * sd, 41)), + 0, None)) + got = count_distribution(jnp.float32(np.log(mu)), jnp.float32(phi), + jnp.float32(inv_r)).log_prob(jnp.asarray(k, jnp.float32)) + assert np.allclose(np.asarray(got), stats.nbinom.logpmf(k, c, p), atol=1e-3) + + +def test_sample_moments(): + d = count_distribution(jnp.log(50.0), 3.0, 0.02) + x = np.asarray(d.sample(jax.random.PRNGKey(0), (200_000,))) + assert x.mean() == pytest.approx(50.0, rel=0.01) + assert x.var() == pytest.approx(50 * 4 + 50 ** 2 * 0.02, rel=0.03) + + +def test_poisson_limit(): + mu = 12.0 + k = np.arange(0, 60) + got = count_distribution(jnp.log(mu), 1e-8, 1e-10).log_prob(jnp.asarray(k, float)) + assert np.allclose(np.asarray(got), stats.poisson.logpmf(k, mu), atol=1e-4) + + +def test_tiny_mean_is_finite_with_finite_gradient(): + def lp(log_mu): + return count_distribution(log_mu, 5.0, 0.01).log_prob(jnp.array(2.0)) + assert np.isfinite(float(lp(-40.0))) + assert np.isfinite(float(jax.grad(lp)(-40.0))) + + +def test_log_mean_is_frequency_times_depth(data): + ln_cfu_pred = jnp.full(SHAPE, jnp.log(1e5)) # 1e5 of 1e8 cells + mu = jnp.exp(log_mean(data, ln_cfu_pred)) + assert np.allclose(np.asarray(mu), 1e6 * 1e-3) + + +# --------------------------------------------------------------------------- +# model / guide +# --------------------------------------------------------------------------- + +def _trace(fn, data, **subs): + f = substitute(fn, data=subs) if subs else fn + return trace(seed(f, 0)).get_trace("growth", data, jnp.full(SHAPE, 12.0), + priors=get_priors()) + + +def test_observe_sites_and_log_likelihood(data): + tr = _trace(observe, data, growth_phi=4.0, growth_inv_r=0.02) + assert {"growth_phi", "growth_inv_r", "growth_obs"} <= set(tr) + site = tr["growth_obs"] + assert site["is_observed"] + assert np.array_equal(np.asarray(site["value"]), np.asarray(data.counts)) + + # Masked cell contributes nothing; scale_vector weights by genotype. + log_mu = log_mean(data, jnp.full(SHAPE, 12.0)) + raw = count_distribution(log_mu, 4.0, 0.02).log_prob(data.counts) + expected = jnp.sum(jnp.where(data.good_mask, raw, 0.0) * data.scale_vector) + lp = site["fn"].log_prob(site["value"]) * site["scale"] + assert float(jnp.sum(lp)) == pytest.approx(float(expected), rel=1e-5) + + +def test_guide_registers_dispersion_only(data): + tr = _trace(guide, data) + assert set(k for k, v in tr.items() if v["type"] == "sample") == { + "growth_phi", "growth_inv_r"} + params = {k for k, v in tr.items() if v["type"] == "param"} + assert params == {"growth_phi_loc", "growth_phi_scale", + "growth_inv_r_loc", "growth_inv_r_scale"} + + +def test_priors(): + p = get_priors() + assert isinstance(p, GrowthCountsObsPriors) + assert np.exp(p.phi_loc) == pytest.approx(5.0) + assert np.exp(p.inv_r_loc) == pytest.approx(0.01) diff --git a/tests/tfscreen/tfmodel/generative/test_registry.py b/tests/tfscreen/tfmodel/generative/test_registry.py index a978a170..aec298dd 100644 --- a/tests/tfscreen/tfmodel/generative/test_registry.py +++ b/tests/tfscreen/tfmodel/generative/test_registry.py @@ -32,7 +32,8 @@ } OBSERVE_KEYS = {"observe_binding", "observe_growth", - "observe_presplit", "observe_base_growth"} + "observe_presplit", "observe_base_growth", + "observe_growth_counts"} # Attributes that non-rescale component modules should expose STANDARD_COMPONENT_ATTRS = {"get_priors", "define_model", "guide", "get_guesses"} diff --git a/tests/tfscreen/tfmodel/test_count_likelihood.py b/tests/tfscreen/tfmodel/test_count_likelihood.py new file mode 100644 index 00000000..a4d4bf19 --- /dev/null +++ b/tests/tfscreen/tfmodel/test_count_likelihood.py @@ -0,0 +1,174 @@ +""" +The read-count growth likelihood (growth_likelihood='counts'; roadmap step 7, +planning/analysis-roadmap.md), wired through the orchestrator. +""" +import os + +import numpy as np +import pandas as pd +import pytest +import yaml +from numpyro.handlers import seed, trace + +from tfscreen.tfmodel.analysis.prediction import copy_orchestrator +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.inference.batch_safety import ( + find_orchestrator_batch_dependent_latents, + find_orchestrator_batch_order_mismatches, +) +from tfscreen.tfmodel.model_orchestrator import ( + ModelOrchestrator, + _add_count_columns, +) +from tfscreen.tfmodel.scripts.configure_model_cli import configure_model + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") +_LIBRARY_YAML = os.path.join(_SMOKE_DATA, "library-smoke.yaml") + + +def _orch(**kwargs): + return ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV, + batch_size=6, growth_likelihood="counts", + **kwargs) + + +@pytest.fixture(scope="module") +def counts_model(): + return _orch(sample_offset="level") + + +def _trace(o): + d = o.get_batch(o.data, o.get_random_idx(batch_key=0)) + return d, trace(seed(o.jax_model, 0)).get_trace(data=d, priors=o.priors) + + +# --------------------------------------------------------------------------- +# data +# --------------------------------------------------------------------------- + +def test_count_tensors(counts_model): + g = counts_model.data.growth + assert g.growth_likelihood == "counts" + assert g.counts.shape == g.ln_cfu.shape + assert g.ln_sample_reads.shape == g.ln_cfu.shape + assert g.sample_ln_cfu.shape == g.ln_cfu.shape + # Every measured cell's counts match the input file. + df = pd.read_csv(_GROWTH_CSV) + good = np.asarray(g.good_mask) + assert np.sort(np.asarray(g.counts)[good]).tolist() == \ + np.sort(df["counts"].to_numpy(float)).tolist() + + +def test_lncfu_model_has_no_count_tensors(): + o = ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV) + assert o.data.growth.growth_likelihood == "lncfu" + assert o.data.growth.counts is None + + +def test_depth_from_sample_reads_or_derived(): + df = pd.DataFrame({"counts": [3, 7], "adjusted_counts": [4, 8], + "frequency": [4 / 1000, 8 / 1000], + "sample_cfu": [1e8, 1e8], "sample_cfu_std": [1e6, 1e6]}) + derived = _add_count_columns(df.copy()) + assert np.allclose(derived["ln_sample_reads"], np.log(1000.0)) + assert np.allclose(derived["sample_ln_cfu"], np.log(1e8)) + given = _add_count_columns(df.assign(sample_reads=990).copy()) + assert np.allclose(given["ln_sample_reads"], np.log(990.0)) + + +@pytest.mark.parametrize("drop,match", [("counts", "'counts' column"), + ("frequency", "total reads"), + ("sample_cfu", "total cells")]) +def test_missing_count_columns_refused(drop, match): + df = pd.DataFrame({"counts": [3], "adjusted_counts": [4], + "frequency": [0.004], "sample_cfu": [1e8], + "sample_cfu_std": [1e6]}).drop(columns=[drop]) + with pytest.raises(ValueError, match=match): + _add_count_columns(df) + + +# --------------------------------------------------------------------------- +# model +# --------------------------------------------------------------------------- + +def test_count_observer_sites(counts_model): + _, tr = _trace(counts_model) + assert {"growth_phi", "growth_inv_r", "growth_obs"} <= set(tr) + assert "growth_nu" not in tr + assert tr["growth_obs"]["fn"].base_dist.__class__.__name__ == \ + "CountNegativeBinomial" + assert {"sample_offset_sigma", "sample_offset_offset"} <= set(tr) + + +def test_count_model_is_batch_safe(counts_model): + assert find_orchestrator_batch_dependent_latents(counts_model) == {} + assert find_orchestrator_batch_order_mismatches(counts_model) == {} + + +def test_counts_refuse_growth_noise(): + with pytest.raises(ValueError, match="growth_noise"): + _orch(growth_noise="normal_kt") + + +def test_unknown_likelihood_refused(): + with pytest.raises(ValueError, match="growth_likelihood"): + ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV, + growth_likelihood="poisson") + + +def test_prediction_copy(counts_model): + new = copy_orchestrator(counts_model, genotypes=["wt"]) + assert new.data.growth.growth_likelihood == "counts" + assert new.data.growth.counts is not None + + +# --------------------------------------------------------------------------- +# configuration +# --------------------------------------------------------------------------- + +def test_configure_round_trip(tmp_path): + out_prefix = str(tmp_path / "cl") + configure_model(binding_df=_BINDING_CSV, growth_df=_GROWTH_CSV, + library_config=_LIBRARY_YAML, out_prefix=out_prefix, + growth_likelihood="counts", sample_offset_model="level", + skip_model_stats=True) + with open(f"{out_prefix}_config.yaml") as fh: + config = yaml.safe_load(fh) + assert config["components"]["growth_likelihood"] == "counts" + assert config["components"]["sample_offset"] == "level" + + o, _ = read_configuration(f"{out_prefix}_config.yaml") + assert o.data.growth.growth_likelihood == "counts" + assert "growth_obs.phi_loc" in pd.read_csv(f"{out_prefix}_priors.csv")[ + "parameter"].str.cat(sep=" ") + + +# --------------------------------------------------------------------------- +# prediction with per-tube offsets +# --------------------------------------------------------------------------- + +@pytest.mark.parametrize("sample_offset", ["level", "normal"]) +def test_predict_on_new_tube_grid(sample_offset): + """Per-tube offsets are set to zero on a prediction grid whose tubes are + not the training tubes (they used to fail a reshape).""" + import jax + from numpyro.infer import Predictive + from tfscreen.tfmodel.analysis.prediction import predict + + o = ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV, + growth_likelihood="counts", + sample_offset=sample_offset) + prior = Predictive(o.jax_model, num_samples=3)( + jax.random.PRNGKey(0), data=o.data, priors=o.priors) + posterior = {k: v for k, v in prior.items() + if not k.endswith("_obs") and not k.endswith("_pred")} + out = predict(o, posterior, t_sel=[0.0, 60.0, 120.0, 240.0], + num_samples=None) + assert len(out) > 0 + assert np.isfinite(out.filter(like="q0.5").to_numpy()).all() diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index 8c59c0f3..ca3f26b9 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -942,6 +942,7 @@ def test_model_class_properties(initialized_model_class): model._congression_theta_rule = "homodimer" model._congression_dk_rule = "softmin" model._congression_dk_alpha = 50.0 + model._growth_likelihood = "lncfu" assert ModelOrchestrator.jax_model.fget(model) == "jm" assert ModelOrchestrator.jax_model_guide.fget(model) == "jmg" From 5820c19f24fd445736d05353434d75fa5998d980 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 18:53:21 -0700 Subject: [PATCH 055/208] Add a growth-only fit on a wt-relative scale (roadmap step 5) Growth alone fixes an occupancy-like variable only up to an affine map, so fitting absolute theta without binding data leans on assumptions the data cannot check. theta: hill_relative fits a wt-relative variable X instead: hill_geno's curve with real-valued baselines, wt pinned to X = 1 at c_lo and X = 0 at c_hi (theta_gauge_conc, default the measured range, written to the config), wt's K and n free. The orchestrator refuses settings that assume theta in (0, 1): binding data, learned activity, logit rescaling, non-linear growth, theta noise, and any congression theta rule but max. Downstream, tfs-predict-theta labels the output theta_scale = X; the epistasis tools allow only additive epistasis on it (no in_regime); tfs-summarize-fit maps simulated theta and growth_k/growth_m truth onto the X gauge; the calibration summary labels those rows theta_regime = X. Prediction on a genotype subset keeps wt, which sets the gauge. Validation grid (24 runs: noise x likelihood x joint/relative x 3 seeds) in planning/studies/relative-fit/; not yet run. Tests: the component, orchestrator refusals and gauge, config round trip, prediction subset, extraction, the epistasis restrictions and the X-scale truth; hill_relative added to the registry-wide batch-safety, batch-order and guide-naming tests. Full unit suite passes; a local 3-epoch run of one grid cell completed every pipeline step. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 19 + CLAUDE.md | 6 +- planning/analysis-roadmap.md | 24 +- planning/growth-only-relative-fit.md | 5 +- planning/studies/relative-fit/README.md | 104 +++++ planning/studies/relative-fit/grid.yaml | 76 ++++ planning/studies/relative-fit/run.srun | 105 +++++ src/tfscreen/analysis/calibration_grid.py | 8 +- .../analysis/scripts/extract_epistasis_cli.py | 10 + src/tfscreen/tfmodel/analysis/extraction.py | 17 +- src/tfscreen/tfmodel/analysis/prediction.py | 22 +- src/tfscreen/tfmodel/data_class.py | 6 + .../components/theta/hill_relative.py | 403 ++++++++++++++++++ src/tfscreen/tfmodel/generative/registry.py | 2 + src/tfscreen/tfmodel/model_orchestrator.py | 82 +++- .../tfmodel/scripts/configure_model_cli.py | 18 +- .../tfmodel/scripts/predict_epistasis_cli.py | 2 + .../tfmodel/scripts/predict_theta_cli.py | 9 + .../tfmodel/scripts/summarize_fit_cli.py | 129 +++++- .../analysis/test_calibration_grid.py | 13 + .../components/theta/test_hill_relative.py | 148 +++++++ .../tfmodel/inference/test_batch_safety.py | 20 +- .../tfmodel/inference/test_initialization.py | 6 +- .../tfmodel/scripts/test_predict_theta_cli.py | 23 + .../tfmodel/test_model_orchestrator.py | 1 + tests/tfscreen/tfmodel/test_relative_fit.py | 241 +++++++++++ 26 files changed, 1470 insertions(+), 29 deletions(-) create mode 100644 planning/studies/relative-fit/README.md create mode 100644 planning/studies/relative-fit/grid.yaml create mode 100644 planning/studies/relative-fit/run.srun create mode 100644 src/tfscreen/tfmodel/generative/components/theta/hill_relative.py create mode 100644 tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py create mode 100644 tests/tfscreen/tfmodel/test_relative_fit.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 882013ae..13db9cf6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,25 @@ fall into two kinds: ### Added +- **Relative-X fit (`theta: hill_relative`; roadmap step 5).** A theta + component that fits growth alone on a wt-relative scale X instead of + claiming absolute occupancy (growth fixes it only up to an affine map): + hill_geno's per-genotype curve with real-valued baselines, gauged so that + wt's X is 1 at the low and 0 at the high gauge concentration + (`theta_gauge_conc`, an orchestrator setting and `tfs-configure-model + --theta_gauge_conc c_lo c_hi`; default the lowest and highest measured + concentration, recorded in the config). wt keeps its K and n free. It + refuses binding data, a learned activity, `logit` rescaling, non-linear + condition growth, theta noise and, under the congression mixture, any + theta rule but `max`. Outputs are labelled: deterministic sites + `theta_X_low`/`theta_X_high`, a `theta_scale = X` column from + `tfs-predict-theta`; `tfs-predict-epistasis` and `tfs-extract-epistasis` + allow only `--scale add` on X, and the former writes no `in_regime`. + `tfs-summarize-fit` puts simulated theta and `growth_k`/`growth_m` truth + on the X gauge, and `tfs-summarize-calibration` gives such rows + `theta_regime = X`. Prediction on a genotype subset keeps wt (the gauge + needs it) and drops it from the output. Validation grid: + `planning/studies/relative-fit/`. - **Count likelihood (`growth_likelihood: counts`; roadmap step 7).** Growth can be observed as read counts instead of `ln_cfu`: each genotype's reads in a tube are negative binomial with mean diff --git a/CLAUDE.md b/CLAUDE.md index 966fa62b..33090ebc 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -128,7 +128,7 @@ The hierarchical Bayesian inference engine. Key files: - `growth/` (registry key `condition_growth`): `linear`, `power`, `saturation`. Their per-condition prior loc/scale fields accept a scalar (broadcast to all conditions) **or** a per-condition array; the pre-fit calibration writes per-condition arrays to pin the baselines (see **Per-condition growth priors** below). Each declares `get_scale_bounds()`. - `growth_transition/`: `instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop` - `transformation/`: `single`, `mixture` (`empirical`/`logit_norm` were removed; `ModelOrchestrator` refuses them by name with a message, `_RETIRED_TRANSFORMATIONS`). The old E[max] θ operator (`_congression.py`) is gone, along with Stage 1.5 of the empirical pipeline that used it - - `theta/`: `categorical_geno`, `hill_geno`, `hill_mut`; thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) + - `theta/`: `categorical_geno`, `hill_geno`, `hill_relative` (wt-relative X, see **Relative-X fit** below), `hill_mut`; thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) - `theta_rescale/`: `passthrough`, `logit` - `dk_geno/`: `fixed`, `hierarchical_geno`, `pinned` - `noise/` (theta observation noise; registry keys `theta_growth_noise`: `zero`/`beta`/`logit_normal`, `theta_binding_noise`: `zero`/`beta`) @@ -142,6 +142,10 @@ The hierarchical Bayesian inference engine. Key files: Roadmap step 7. `observe/growth_counts.py` observes reads directly: `reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r)` with `log mu = ln_sample_reads + ln_cfu_pred - sample_ln_cfu` (predicted frequency times the tube's reads), learned `growth_phi`/`growth_inv_r` (LogNormal priors, medians 5 and 0.01), no pseudocount. The log-pmf is `CountNegativeBinomial`, Loader's algorithm (R's `dnbinom_mu`: `bd0` deviance + `stirlerr`): numpyro's own negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; keep any rewrite of it tested against scipy at high depth (`test_observe_growth_counts.py`), and guard `jnp.where` branches so the unused one cannot overflow (NaN gradients). Data: `GrowthData.counts`/`ln_sample_reads`/`sample_ln_cfu` (same layout as `ln_cfu`, None for `lncfu`; sliced by `tensors/batch.py`) and the static `GrowthData.growth_likelihood`, built by `model_orchestrator._add_count_columns` (tube reads from `sample_reads`, else `adjusted_counts / frequency`, about 1% high from pseudocounts, the same for every genotype in a tube; tube totals from `sample_ln_cfu` or `sample_cfu`). The orchestrator refuses `growth_noise` other than `zero` with counts. Pair it with `sample_offset: level` (one constant-prior ln_cfu offset per tube), since an error in a tube's supplied total otherwise moves every genotype in it. Presplit is still observed as `ln_cfu`. Validation grid: `planning/studies/count-likelihood/`. +### Relative-X fit (`theta: hill_relative`) + +Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). Validation grid: `planning/studies/relative-fit/`. + ### Adding a New Model Component 1. Create `src/tfscreen/tfmodel/generative/components//myname.py` diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 1f35dc6a..40bec5d7 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -426,7 +426,8 @@ step 7. OD600 2.9, above a realistic calibrated range; tune `cfu0` and timing before using its OD600. Deferred: monoculture growth-rate outputs and a spike-in counting standard (waiting on the bench decisions). -5. **Relative-X fit** (G; new component, opt-in). +5. [ ] **Relative-X fit** (G; new component, opt-in). (Implemented; + validation grid pending.) - A relative Hill theta component: hill_geno's curve with real-valued baselines, population priors centered on wt, registry rules (C5). Gauge (D4): wt's curve is pinned to `X = 1` at `c_lo` and `X = 0` at `c_hi` @@ -451,6 +452,27 @@ step 7. binding file, so this is a held-out comparison); `k_c`/`m_c` recovery and the IPTG-independent genotypes as internal standards (C4). Then under step 4's noise. Real data runs use step 2's smoothed total. + Implemented 2026-09-26: `theta: hill_relative` + (`generative/components/theta/hill_relative.py`; baselines `X_low` and + `X_delta` real-valued and hierarchical, priors centered on wt's 1 and + -1; wt's baselines computed from its K and n by `gauge_baselines`, with + the occupancy span floored at 1e-3). The gauge is the orchestrator + setting `theta_gauge_conc` (`--theta_gauge_conc`; default the measured + min and max, written to the config). The orchestrator refuses binding + data, learned activity, `logit` rescaling, non-linear growth, theta + noise, and non-`max` rules under `mixture` (C1; `mixture`'s `max` + branch does not clip, checked). C8: `THETA_SCALE = "X"`; + `tfs-predict-theta` writes `theta_scale = X`; epistasis tools allow only + `add` (no `in_regime`); `tfs-summarize-fit` maps theta and + `growth_k`/`growth_m` truth onto the gauge (with simulated activity); + `tfs-summarize-calibration` labels those rows `theta_regime = X`. + Prediction on a genotype subset keeps wt for the gauge. Registry-wide + batch-safety, batch-order and guide-naming tests pass for it. Not built: + the kan-vs-4CP consistency check (X is shared by construction, so a fit + cannot test it alone; needs a per-condition-family X variant or a + model-free comparison, to be decided with the real-data run). Validation + grid: `planning/studies/relative-fit/` (24 runs: noise x likelihood x + joint/relative x 3 seeds; not yet run). 6. **Population model in the fit** (N; replaces the per-tube offset). - Population curves: `P = ln N` per replicate x condition x concentration over `t_pre + t_sel`, starting at the replicate's split density (from diff --git a/planning/growth-only-relative-fit.md b/planning/growth-only-relative-fit.md index c9a25798..e13b4ac7 100644 --- a/planning/growth-only-relative-fit.md +++ b/planning/growth-only-relative-fit.md @@ -21,7 +21,10 @@ related: --- **Promoted 2026-09-26** into `planning/analysis-roadmap.md` (Track G: steps -0a, 1, 5, 8, 9). Step 1, the growth-only plumbing listed below, is done. +0a, 1, 5, 8, 9). Step 1, the growth-only plumbing listed below, is done; +step 5, the relative-X fit, is implemented as `theta: hill_relative` (gauge: +wt pinned at the measured concentration range's ends), with its validation +grid in `planning/studies/relative-fit/`. **Context:** While calibrating fits for congression, it became clear we want to fit growth data without binding data, at least to check whether the two diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md new file mode 100644 index 00000000..63a3e7cc --- /dev/null +++ b/planning/studies/relative-fit/README.md @@ -0,0 +1,104 @@ +# Relative-X fit study + +**Question.** Does a growth-only fit on the wt-relative scale X (theta +component `hill_relative`: no binding data, no prefit, wt's X pinned to 1 at +0 mM and 0 at 1 mM IPTG) recover X, the Hill K and n, and each condition's +`k` and `m`, about as well as the anchored joint fit recovers theta? Does +that hold under realistic count noise, and on either growth likelihood? + +**Decisions it feeds.** +- Roadmap step 5 (`planning/analysis-roadmap.md`): whether the relative fit + is sound enough to run on real data and build the growth-binding map on + (step 8). +- C4: whether `k_c`/`m_c` are recovered from growth alone, with totals + supplied (step 6 later replaces the supplied totals). + +## Design + +Base config: `../congression-calibration/simulate_config.yaml` (483 +genotypes, hill_mut theta, instant growth transitions, kanR and pheS, 20 +in-library binding anchors), at lambda 0 and the wide dk spread, like +`../count-likelihood/`. Lambda 0 keeps congression out of the comparison; +both fits use `single`. + +[`grid.yaml`](grid.yaml): 2 noise x 2 likelihood x 2 fits x 3 seeds = 24 +runs. + +| axis | levels | +|---|---| +| simulated noise | `poisson`; `realistic` (founder sampling, demographic growth, shared transformation, 150,000 PCR templates with CV 0.5: about 8x Poisson), as in `../count-likelihood/` | +| likelihood | `lncfu` (Student-t on `ln_cfu`, `normal_kt` growth noise); `counts` (negative binomial on reads, `sample_offset: level`) | +| fit | `joint` (`hill_geno`, binding at weight 1, prefit with `k_scale_ceiling` 0.005); `relative` (`hill_relative`, growth only, no prefit) | +| seed | 1, 2, 3 | + +Both fits use per-genotype Hill curves (the simulation's `hill_mut` truth +is fit by neither), activity fixed and no theta noise (the relative fit +refuses it; the joint fit leaves it off to match). Each run +([`run.srun`](run.srun)) simulates, configures, prefits (joint only), fits, +samples the posterior and summarizes. + +## How to run + +On the cluster, from a scratch directory, with this repository checked out: + +```bash +tfs-setup-sim-grid grid.yaml --out_prefix relative_fit +for d in relative_fit/run_*/; do (cd "$d" && sbatch run.srun); done +``` + +When the runs finish: + +```bash +tfs-summarize-calibration relative_fit --out_prefix calib/relative_fit \ + --baseline fit=joint --facet_by founder_sampling +``` + +## What to look at + +- `theta_test`: for the relative arms `tfs-summarize-fit` puts the truth on + the X gauge, `X = (A theta - A_wt theta_wt(1 mM)) / (A_wt (theta_wt(0) - + theta_wt(1 mM)))`, and the rows carry `theta_regime = X`. Coverage, PIT, + width by `purity` x `has_binding` (has_binding is held-out for the + relative fit: it saw no binding). Coverage and PIT are scale-free and + compare across arms; width and RMSE do not (X spans about 1 where theta + spans about 0.98 for the base config's wt, so close). +- `log_hill_K`, `hill_n` (`*_params_theta_*`): the same quantity in both + fits (the gauge leaves them unchanged). +- `growth_k`, `growth_m`: for the relative arms the truth is mapped to X + (`k_X = k + m theta_wt(1 mM)`, `m_X = m (theta_wt(0) - theta_wt(1 mM))`). + C4 asks for these explicitly: the joint fit gets them partly from the + prefit's binding anchors; the relative fit only from wt and the totals. +- `dk_geno`: unaffected by the gauge; the X baselines trade against it + (idea file, "what stays assumed"), so compare its recovery across arms. +- Genotypes whose true theta does not depend on IPTG (the simulator's + stuck-bound and never-binds classes): internal standards across columns + (C4). +- Convergence: no prefit on the relative arm, so check that the fit stops + on the noise-referenced rule, not the epoch cap. + +## Not covered here + +- The kan-vs-4CP consistency check (D5): X is shared by construction, so a + fit cannot test it by itself. It needs either a variant with one X per + condition family or a model-free comparison of kan and 4CP wt-relative + slopes per genotype (as in `../growth-binding-map/`); decide when the + real-data run is set up. +- Real data: waits for the new processing batch and step 2's smoothed total. + +## Inputs + +Repository paths only: `grid.yaml`, `run.srun`, +`../congression-calibration/simulate_config.yaml` and its +`hill_params.csv`. Seeds fixed in the grid. + +## Commit + +Not yet run. A local smoke run of one `realistic`/`counts`/`relative` run +(SVI stopped after 3 epochs past the pre-MAP) completed every pipeline step +(2026-09-26): the theta test file carries `theta_scale = X` with truth on the +gauge, and `growth_k`/`growth_m` carry X-scale truth. It checks plumbing, +not results. + +## Results + +Pending. diff --git a/planning/studies/relative-fit/grid.yaml b/planning/studies/relative-fit/grid.yaml new file mode 100644 index 00000000..79c0b924 --- /dev/null +++ b/planning/studies/relative-fit/grid.yaml @@ -0,0 +1,76 @@ +# --------------------------------------------------------------------------- +# Relative-X fit validation (roadmap step 5, planning/analysis-roadmap.md) +# +# tfs-setup-sim-grid grid.yaml --out_prefix relative_fit +# for d in relative_fit/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Does a growth-only fit on the wt-relative scale X (theta: hill_relative; +# wt's X pinned to 1 at 0 mM and 0 at 1 mM IPTG; no binding data, no prefit) +# recover X, the Hill K and n, and each condition's k and m as well as the +# joint fit recovers theta with binding anchors? Truth goes onto the X gauge +# in tfs-summarize-fit (C8). +# +# Simulated noise (as in ../count-likelihood/grid.yaml): +# poisson deterministic growth, one multinomial draw of reads. +# realistic founder sampling, demographic growth, shared transformation, +# template bottleneck with PCR jackpotting (~8x Poisson). +# +# Fits (both hill-per-genotype, theta noise off, single transformation; the +# simulation has lambda 0, so congression is out of the comparison): +# joint hill_geno with binding at weight 1, prefit (k_scale_ceiling +# 0.005), the anchored baseline of the congression study +# relative hill_relative, growth only, no prefit +# crossed with the growth likelihood: +# lncfu Student-t on ln_cfu with normal_kt growth noise (today's) +# counts negative binomial on reads with a per-tube level offset +# +# 2 noise x 2 likelihood x 2 fits x 3 seeds = 24 runs. +# --------------------------------------------------------------------------- + +base_config: ../congression-calibration/simulate_config.yaml + +run_name: "{{ 'realistic' if founder_sampling else 'poisson' }}__seed{{ seed }}__{{ likelihood }}__{{ fit }}" + +output_file: run.srun + + +simulate: + + - name: noise + variants: + - founder_sampling: false + - founder_sampling: true + demographic_growth: true + shared_transformation: true + cfu0: 150_000.0 + pcr_template_molecules: 150_000 + pcr_amplification_cv: 0.5 + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + - seed: 3 + + +template: + + - name: fit + variants: + - fit: joint + - fit: relative + + - name: likelihood + variants: + - likelihood: lncfu + - likelihood: counts diff --git a/planning/studies/relative-fit/run.srun b/planning/studies/relative-fit/run.srun new file mode 100644 index 00000000..4c1e29d6 --- /dev/null +++ b/planning/studies/relative-fit/run.srun @@ -0,0 +1,105 @@ +#!/bin/bash -l +#SBATCH --account=harmslab +#SBATCH --job-name=relative_fit +#SBATCH --output=run.out +#SBATCH --error=run.err +#SBATCH --partition=gpu +#SBATCH --time=00-02:00:00 +#SBATCH --nodes=1 +#SBATCH --cpus-per-task=8 +#SBATCH --gpus=1 +#SBATCH --ntasks-per-node=1 + +# Relative-X fit study, one run (rendered by tfs-setup-sim-grid from +# planning/studies/relative-fit/run.srun). Submit from the run directory: +# sbatch run.srun + +# Swap lines if on cluster (module load) or local (XLA_FLAGS to use CPU) +module load cuda/12.4.1 +#export XLA_FLAGS="--xla_force_host_platform_device_count=8" + +set -e + +# joint (hill_geno + binding + prefit) or relative (hill_relative, growth only) +FIT="{{ fit }}" +# Growth likelihood: lncfu (with normal_kt growth noise) or counts (with a +# per-tube level offset; it refuses extra growth noise). +LIKELIHOOD="{{ likelihood }}" + +SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") + +# --------------------------------------------------------------------------- +# 1. Simulate +# --------------------------------------------------------------------------- +echo ">>> Simulate (seed=${SEED})" +tfs-simulate tfs_sim_config.yaml . --seed "${SEED}" + +# --------------------------------------------------------------------------- +# 2. Configure +# --------------------------------------------------------------------------- +if [[ "${LIKELIHOOD}" == "counts" ]]; then + LIKELIHOOD_ARGS=(--growth_likelihood counts --growth_noise_model zero + --sample_offset_model level) +else + LIKELIHOOD_ARGS=(--growth_likelihood lncfu --growth_noise_model normal_kt + --sample_offset_model zero) +fi + +if [[ "${FIT}" == "relative" ]]; then + FIT_ARGS=(--theta_model hill_relative) +else + FIT_ARGS=(--theta_model hill_geno + --binding_df tfs_sim_binding.csv + --binding_weight 1.0) +fi + +echo ">>> Configure (${FIT}, ${LIKELIHOOD})" +tfs-configure-model \ + --growth_df tfs_sim_growth.csv \ + --presplit_df tfs_sim_presplit.csv \ + --condition_growth_model linear \ + --growth_transition_model instant \ + --ln_cfu0_model hierarchical_factored \ + --dk_geno_model hierarchical_geno \ + --activity_model fixed \ + --theta_rescale_model passthrough \ + --theta_growth_noise_model zero \ + --theta_binding_noise_model zero \ + --transformation_model single \ + --library_config tfs_sim_config.yaml \ + --growth_shares_replicates \ + "${FIT_ARGS[@]}" \ + "${LIKELIHOOD_ARGS[@]}" + +# --------------------------------------------------------------------------- +# 3. Pre-fit calibration (joint only: it needs binding), fit, posterior +# --------------------------------------------------------------------------- +if [[ "${FIT}" == "joint" ]]; then + echo ">>> Pre-fit calibration" + tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" \ + --k_scale_ceiling 0.005 +fi + +echo ">>> Fit model" +tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" + +echo ">>> Sample posterior" +tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl + +# --------------------------------------------------------------------------- +# 4. Extract, predict, summarize +# --------------------------------------------------------------------------- +echo ">>> Extract parameters" +tfs-extract-params tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict theta" +tfs-predict-theta tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict growth" +tfs-predict-growth tfs_configure_config.yaml tfs_posterior.h5 \ + --num_marginal_samples=500 + +echo ">>> Summarize fit" +tfs-summarize-fit . + +echo ">>> Done" diff --git a/src/tfscreen/analysis/calibration_grid.py b/src/tfscreen/analysis/calibration_grid.py index d0631067..8b8baa05 100644 --- a/src/tfscreen/analysis/calibration_grid.py +++ b/src/tfscreen/analysis/calibration_grid.py @@ -36,8 +36,10 @@ mutants, which the bulk sub-libraries also encode). θ is additionally split by ``theta_regime``: ``resolvable`` when the true θ lies in ``[regime_eps, 1 - regime_eps]``, -``saturated`` otherwise. The pooled row carries ``"all"`` in every stratum -column. +``saturated`` otherwise; a relative fit's θ is the wt-relative X (its +``theta_scale`` column is ``X``, and ``ref`` is the truth on the X gauge), where +the band means nothing, so its ``theta_regime`` is ``X``. The pooled row +carries ``"all"`` in every stratum column. No thresholds, no grades: every value is a raw number; filter downstream. """ @@ -282,6 +284,8 @@ def summarize_run(run_dir, summary_subdir="summary", regime_eps=0.01): if quantity == "theta_test": resolvable = df["ref"].between(regime_eps, 1.0 - regime_eps) df["theta_regime"] = np.where(resolvable, "resolvable", "saturated") + if "theta_scale" in df.columns: + df.loc[df["theta_scale"] == "X", "theta_regime"] = "X" for keys in _groupings(df): groups = [((), df)] if not keys else df.groupby(list(keys), dropna=True) diff --git a/src/tfscreen/analysis/scripts/extract_epistasis_cli.py b/src/tfscreen/analysis/scripts/extract_epistasis_cli.py index 74fdd693..510a3c4a 100644 --- a/src/tfscreen/analysis/scripts/extract_epistasis_cli.py +++ b/src/tfscreen/analysis/scripts/extract_epistasis_cli.py @@ -156,6 +156,16 @@ def extract_epistasis(data_file, # estimate, (q0.841 - q0.159)/2 for the std) when not given explicitly. df, y_obs, y_std = resolve_obs_columns(df, y_obs=y_obs, y_std=y_std) + # tfs-predict-theta labels a relative fit's output as X (theta_scale), + # which is defined only up to an affine map: only additive epistasis + # applies to it (roadmap C8). + if "theta_scale" in df.columns and (df["theta_scale"] == "X").any() \ + and scale != "add": + raise ValueError( + f"'{data_file}' holds the wt-relative growth variable X " + f"(theta_scale == 'X'), not an occupancy; only scale='add' " + f"applies to it (got scale={scale!r}).") + # Fail fast on missing columns rather than deep inside the pivot. required = ["genotype", y_obs] if y_std is not None: diff --git a/src/tfscreen/tfmodel/analysis/extraction.py b/src/tfscreen/tfmodel/analysis/extraction.py index 9bb94281..b6250950 100644 --- a/src/tfscreen/tfmodel/analysis/extraction.py +++ b/src/tfscreen/tfmodel/analysis/extraction.py @@ -386,6 +386,16 @@ def extract_theta_epistasis(orchestrator, posteriors, q_to_get=None, f"'{orchestrator._theta}' does not support this interface." ) + # A relative theta component gives X, defined only up to an affine map + # (roadmap C8): additive epistasis is the only scale that means anything + # until the map to theta is known, and the in_regime band is a theta band. + relative = getattr(module, "THETA_SCALE", "theta") == "X" + if relative and scale != "add": + raise ValueError( + f"theta component '{orchestrator._theta}' predicts the " + f"wt-relative growth variable X, not an occupancy in (0, 1); only " + f"scale='add' applies to it (got scale={scale!r}).") + q_to_get, param_posteriors = load_posteriors(posteriors, q_to_get) # Joint sample matrix: (num_sample, num_row), rows aligned to calc_df. @@ -414,8 +424,8 @@ def extract_theta_epistasis(orchestrator, posteriors, q_to_get=None, cycles = cycles.dropna(subset=idx_cols) if cycles.empty: - return pd.DataFrame(columns=["genotype"] + group_by - + list(q_to_get) + ["in_regime"]) + return pd.DataFrame(columns=["genotype"] + group_by + list(q_to_get) + + ([] if relative else ["in_regime"])) idx_00 = cycles["00__row_idx"].values.astype(int) idx_10 = cycles["10__row_idx"].values.astype(int) @@ -436,6 +446,9 @@ def extract_theta_epistasis(orchestrator, posteriors, q_to_get=None, for q_name, q_val in q_to_get.items(): out[q_name] = np.quantile(ep_samples, q_val, axis=0) + if relative: + return out.sort_values(["genotype"] + group_by).reset_index(drop=True) + # in_regime: are all four cycle corners' theta posteriors inside the # resolvable band [regime_eps, 1 - regime_eps]? Outside it logit(theta) # saturates and the epistasis leans on the theta-model extrapolation, so the diff --git a/src/tfscreen/tfmodel/analysis/prediction.py b/src/tfscreen/tfmodel/analysis/prediction.py index 9413c3a4..4505c576 100644 --- a/src/tfscreen/tfmodel/analysis/prediction.py +++ b/src/tfscreen/tfmodel/analysis/prediction.py @@ -1,7 +1,7 @@ import pandas as pd import numpy as np import itertools -from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator, _RELATIVE_THETA from tfscreen.tfmodel.inference.posteriors import load_posteriors, get_posterior_samples from tfscreen.tfmodel.tensors.batch import get_batch as _get_batch import jax @@ -161,6 +161,11 @@ def _condition_rep_output_df(growth_tm, site_samples, q_to_get, num_samples): return df +def _is_relative(orchestrator): + """True when the model's theta component is on the relative X scale.""" + return orchestrator.settings.get("theta") in _RELATIVE_THETA + + def copy_orchestrator(orchestrator, t_pre=None, t_sel=None, @@ -189,7 +194,8 @@ def copy_orchestrator(orchestrator, values from `orchestrator.growth_df`. genotypes : list, optional Subset of genotypes to include. Must be a subset of those in - ``orchestrator.growth_df``. If None, uses all genotypes. + ``orchestrator.growth_df``. If None, uses all genotypes. A relative + theta component is gauged on wt, so wt is always kept. Returns ------- @@ -246,6 +252,8 @@ def _get_input(value, col_name): missing = [g for g in geno_strs if g not in all_genos] if missing: raise ValueError(f"Genotype(s) not found in orchestrator: {missing}") + if _is_relative(orchestrator) and "wt" not in geno_strs: + geno_strs = geno_strs + ["wt"] unique_cats = unique_cats[ unique_cats["genotype"].astype(str).isin(set(geno_strs)) ] @@ -556,6 +564,11 @@ def predict(orchestrator, titrant_conc=titrant_conc, genotypes=genotypes) + # A relative theta component's gauge needs wt, so copy_orchestrator keeps + # it in any subset; it is dropped from the output below if not asked for. + drop_wt = (genotypes is not None and _is_relative(orchestrator) + and "wt" not in [str(g) for g in genotypes]) + # After copy_orchestrator the new TM contains exactly the requested # genotypes (or all genotypes when genotypes=None). genotypes = new_orchestrator.growth_tm.tensor_dim_labels[-1].tolist() @@ -848,6 +861,11 @@ def predict(orchestrator, all_dfs[site] = df + if drop_wt: + for site, df in all_dfs.items(): + if "genotype" in df.columns: + all_dfs[site] = df[df["genotype"].astype(str) != "wt"] + if len(predict_sites) == 1: return all_dfs[predict_sites[0]] diff --git a/src/tfscreen/tfmodel/data_class.py b/src/tfscreen/tfmodel/data_class.py index e94f6b20..1c8c31ef 100644 --- a/src/tfscreen/tfmodel/data_class.py +++ b/src/tfscreen/tfmodel/data_class.py @@ -97,6 +97,12 @@ class GrowthData: growth_shares_replicates: bool = field(pytree_node=False, default=False) + # (ln c_lo, ln c_hi): the concentrations at which the relative theta + # component (theta/hill_relative.py) pins wt's X to 1 and 0. None for + # every other theta component. Set by ModelOrchestrator from its + # theta_gauge_conc (zero concentration mapped like log_titrant_conc). + theta_gauge_log_conc: Any = field(default=None) + # Growth observation model: "lncfu" (Student-t on ln_cfu, observe/growth.py) # or "counts" (negative binomial on read counts, observe/growth_counts.py). # Static: set by ModelOrchestrator from its growth_likelihood. diff --git a/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py b/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py new file mode 100644 index 00000000..d8fb493b --- /dev/null +++ b/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py @@ -0,0 +1,403 @@ +""" +Relative Hill curves: a wt-relative growth variable X instead of theta. + +Roadmap step 5 (``planning/analysis-roadmap.md``). Growth data alone fix an +occupancy-like variable only up to an affine map (``X -> a X + b`` is absorbed +by each condition's ``k`` and ``m``), so this component does not claim +absolute theta. Each genotype's X follows hill_geno's curve, + + X_g(c) = X_low_g + (X_high_g - X_low_g) * sigmoid(n_g (ln c - ln K_g)), + +with real-valued baselines (a mutant may repress more than wt, X > 1, or +less than wt does at saturating IPTG, X < 0). The gauge is fixed on wt (D4): + + X_wt(c_lo) = 1, X_wt(c_hi) = 0, + +at the two gauge concentrations ``data.theta_gauge_log_conc`` (an +orchestrator setting, ``theta_gauge_conc``; default the lowest and highest +measured concentration). wt keeps its K and n free; its baselines follow from +them. Then ``k_c`` is wt's growth at ``c_hi`` and ``m_c`` wt's growth change +between the two, in every condition, and X is shared by all conditions (D5). + +Only valid with activity 'fixed', theta_rescale 'passthrough', linear +condition growth, no theta noise, no binding data and, under the congression +mixture, the 'max' theta rule (C1); ModelOrchestrator enforces these. + +Outputs are on the X scale (``THETA_SCALE = "X"``): the deterministic sites +are ``theta_X_low``/``theta_X_high`` and tfs-predict-theta labels its rows. +""" +from typing import Any, Dict + +import jax +import jax.numpy as jnp +import numpy as np +import numpyro as pyro +import numpyro.distributions as dist +from flax.struct import dataclass + +from tfscreen.tfmodel.data_class import DataClass + +# What run_model returns; read by tfs-predict-theta and the X-scale checks. +THETA_SCALE = "X" + +# Floor on wt's occupancy change between the gauge concentrations. The gauge +# divides by it; a wt curve that barely moves across the range would +# otherwise send wt's baselines to infinity. +_MIN_GAUGE_SPAN = 1e-3 + + +@dataclass(frozen=True) +class ModelPriors: + """ + Hyperpriors for the relative Hill model. + + ``X_low`` is X at no titrant, ``X_delta`` = ``X_high - X_low``. The + defaults are centered on wt under the gauge (1 and -1). + """ + + theta_X_low_hyper_loc_loc: float + theta_X_low_hyper_loc_scale: float + theta_X_low_hyper_scale: float + theta_X_delta_hyper_loc_loc: float + theta_X_delta_hyper_loc_scale: float + theta_X_delta_hyper_scale: float + + theta_log_hill_K_hyper_loc_loc: float + theta_log_hill_K_hyper_loc_scale: float + theta_log_hill_K_hyper_scale: float + + theta_log_hill_n_hyper_loc_loc: float + theta_log_hill_n_hyper_loc_scale: float + theta_log_hill_n_hyper_scale: float + + +@dataclass(frozen=True) +class ThetaParam: + """ + Per-genotype relative Hill parameters, each shape ``(num_titrant_name, + num_genotype)``, library-ordered. wt's ``X_low``/``X_high`` are set by + the gauge. + """ + + X_low: jnp.ndarray + X_high: jnp.ndarray + log_hill_K: jnp.ndarray + hill_n: jnp.ndarray + + +def gauge_baselines(log_hill_K, hill_n, gauge_log_conc): + """ + wt's X baselines that put ``X = 1`` at ``c_lo`` and ``X = 0`` at ``c_hi``. + + Parameters + ---------- + log_hill_K, hill_n : jnp.ndarray + wt's Hill constant (log) and coefficient, any matching shape. + gauge_log_conc : jnp.ndarray + ``(ln c_lo, ln c_hi)``. + + Returns + ------- + X_low, X_high : jnp.ndarray + """ + occ_lo = jax.nn.sigmoid(hill_n * (gauge_log_conc[0] - log_hill_K)) + occ_hi = jax.nn.sigmoid(hill_n * (gauge_log_conc[1] - log_hill_K)) + span = jnp.maximum(occ_hi - occ_lo, _MIN_GAUGE_SPAN) + X_low = 1.0 + occ_lo / span + X_high = X_low - 1.0 / span + return X_low, X_high + + +def _assemble(hyper, offsets, data): + """Per-genotype parameters from hyperparameters and offsets, wt gauged.""" + (low_loc, low_scale, delta_loc, delta_scale, + K_loc, K_scale, n_loc, n_scale) = hyper + low_off, delta_off, K_off, n_off = offsets + + X_low = low_loc[:, None] + low_off * low_scale[:, None] + X_delta = delta_loc[:, None] + delta_off * delta_scale[:, None] + log_hill_K = K_loc[:, None] + K_off * K_scale[:, None] + hill_n = jnp.exp(n_loc[:, None] + n_off * n_scale[:, None]) + + wt = data.wt_indexes[0] + wt_low, wt_high = gauge_baselines(log_hill_K[:, wt], hill_n[:, wt], + data.theta_gauge_log_conc) + is_wt = jnp.zeros(data.num_genotype, dtype=bool).at[data.wt_indexes].set(True) + X_low = jnp.where(is_wt[None, :], wt_low[:, None], X_low) + X_high = jnp.where(is_wt[None, :], wt_high[:, None], X_low + X_delta) + + return ThetaParam(X_low=X_low, X_high=X_high, + log_hill_K=log_hill_K, hill_n=hill_n) + + +_HYPER = ("X_low", "X_delta", "log_hill_K", "log_hill_n") +_OFFSETS = ("X_low_offset", "X_delta_offset", "log_hill_K_offset", + "log_hill_n_offset") + + +def define_model(name: str, + data: DataClass, + priors: ModelPriors) -> ThetaParam: + """ + Hierarchical relative Hill model with per-titrant hyperpriors and + library-sized per-genotype offsets (``run_model`` slices by + ``data.batch_idx[data.geno_theta_idx]``). + """ + T = data.num_titrant_name + + hyper = [] + with pyro.plate(f"{name}_hyper_plate", T, dim=-1): + for h in _HYPER: + hyper.append(pyro.sample( + f"{name}_{h}_hyper_loc", + dist.Normal(getattr(priors, f"theta_{h}_hyper_loc_loc"), + getattr(priors, f"theta_{h}_hyper_loc_scale")))) + hyper.append(pyro.sample( + f"{name}_{h}_hyper_scale", + dist.HalfNormal(getattr(priors, f"theta_{h}_hyper_scale")))) + + with pyro.plate(f"{name}_titrant_name_plate", T, dim=-2): + with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): + offsets = [pyro.sample(f"{name}_{o}", dist.Normal(0.0, 1.0)) + for o in _OFFSETS] + + theta_param = _assemble(hyper, offsets, data) + + pyro.deterministic(f"{name}_X_low", theta_param.X_low) + pyro.deterministic(f"{name}_X_high", theta_param.X_high) + pyro.deterministic(f"{name}_log_hill_K", theta_param.log_hill_K) + pyro.deterministic(f"{name}_hill_n", theta_param.hill_n) + + return theta_param + + +def guide(name: str, + data: DataClass, + priors: ModelPriors) -> ThetaParam: + """Mean-field guide mirroring ``define_model``.""" + T = data.num_titrant_name + G = data.num_genotype + + hyper = [] + with pyro.plate(f"{name}_hyper_plate", T, dim=-1): + for h in _HYPER: + loc_loc = pyro.param( + f"{name}_{h}_hyper_loc_loc", + jnp.full(T, getattr(priors, f"theta_{h}_hyper_loc_loc"))) + loc_scale = pyro.param( + f"{name}_{h}_hyper_loc_scale", + jnp.full(T, getattr(priors, f"theta_{h}_hyper_loc_scale")), + constraint=dist.constraints.greater_than(1e-4)) + scale_loc = pyro.param(f"{name}_{h}_hyper_scale_loc", + jnp.full(T, -1.0)) + scale_scale = pyro.param( + f"{name}_{h}_hyper_scale_scale", jnp.full(T, 0.1), + constraint=dist.constraints.greater_than(1e-4)) + hyper.append(pyro.sample(f"{name}_{h}_hyper_loc", + dist.Normal(loc_loc, loc_scale))) + hyper.append(pyro.sample(f"{name}_{h}_hyper_scale", + dist.LogNormal(scale_loc, scale_scale))) + + locs = [pyro.param(f"{name}_{o}_locs", jnp.zeros((T, G), dtype=float)) + for o in _OFFSETS] + scales = [pyro.param(f"{name}_{o}_scales", jnp.ones((T, G), dtype=float), + constraint=dist.constraints.positive) + for o in _OFFSETS] + + with pyro.plate(f"{name}_titrant_name_plate", T, dim=-2): + with pyro.plate(f"{name}_genotype_plate", G, dim=-1): + offsets = [pyro.sample(f"{name}_{o}", dist.Normal(l, s)) + for o, l, s in zip(_OFFSETS, locs, scales)] + + return _assemble(hyper, offsets, data) + + +def run_model(theta_param: ThetaParam, data: DataClass) -> jnp.ndarray: + """ + X at every titrant concentration for the batch's genotypes. + + Returns shape ``(T, C, G_subset)``, or ``(1, 1, 1, 1, T, C, G_subset)`` + when ``data.scatter_theta == 1`` (the hill_geno contract). + """ + geno_idx = data.batch_idx[data.geno_theta_idx] + X_low = theta_param.X_low[:, None, geno_idx] + X_high = theta_param.X_high[:, None, geno_idx] + log_hill_K = theta_param.log_hill_K[:, None, geno_idx] + hill_n = theta_param.hill_n[:, None, geno_idx] + + log_titrant = data.log_titrant_conc[None, :, None] + occupancy = jax.nn.sigmoid(hill_n * (log_titrant - log_hill_K)) + X = X_low + (X_high - X_low) * occupancy + + if data.scatter_theta == 1: + X = X[None, None, None, None, :, :, :] + + return X + + +def get_population_moments(theta_param: ThetaParam, data: DataClass) -> tuple: + """No logit-space moments: X is not an occupancy (theta noise is refused).""" + return None, None + + +def get_hyperparameters() -> Dict[str, Any]: + """Default hyperparameters (X centered on wt's gauge; K/n as hill_geno).""" + return { + "theta_X_low_hyper_loc_loc": 1.0, + "theta_X_low_hyper_loc_scale": 0.5, + "theta_X_low_hyper_scale": 1.0, + "theta_X_delta_hyper_loc_loc": -1.0, + "theta_X_delta_hyper_loc_scale": 0.5, + "theta_X_delta_hyper_scale": 1.0, + "theta_log_hill_K_hyper_loc_loc": -4.1, + "theta_log_hill_K_hyper_loc_scale": 1.0, + "theta_log_hill_K_hyper_scale": 0.1, + "theta_log_hill_n_hyper_loc_loc": 0.7, + "theta_log_hill_n_hyper_loc_scale": 0.5, + "theta_log_hill_n_hyper_scale": 1.0, + } + + +def get_priors() -> ModelPriors: + return ModelPriors(**get_hyperparameters()) + + +def get_guesses(name: str, data: DataClass) -> Dict[str, Any]: + """Starting values: wt-like baselines, K at the median concentration.""" + log_conc = np.array(data.log_titrant_conc) + finite = log_conc[np.isfinite(log_conc)] + log_K_guess = float(np.median(finite)) if len(finite) > 0 else -4.1 + + T = data.num_titrant_name + G = data.num_genotype + + guesses = { + f"{name}_X_low_hyper_loc": jnp.full(T, 1.0), + f"{name}_X_low_hyper_scale": jnp.full(T, 0.5), + f"{name}_X_delta_hyper_loc": jnp.full(T, -1.0), + f"{name}_X_delta_hyper_scale": jnp.full(T, 0.5), + f"{name}_log_hill_K_hyper_loc": jnp.full(T, log_K_guess), + f"{name}_log_hill_K_hyper_scale": jnp.full(T, 1.0), + f"{name}_log_hill_n_hyper_loc": jnp.full(T, 0.7), + f"{name}_log_hill_n_hyper_scale": jnp.full(T, 0.3), + } + for o in _OFFSETS: + guesses[f"{name}_{o}"] = jnp.zeros((T, G), dtype=float) + return guesses + + +def get_extract_specs(ctx): + return [dict( + input_df=ctx.growth_tm.df, + params_to_get=["hill_n", "log_hill_K", "X_high", "X_low"], + map_column="map_theta_group", + get_columns=["genotype", "titrant_name"], + in_run_prefix="theta_", + )] + + +_ZERO_CONC_VALUE = 1e-20 + + +def _log_conc(conc): + conc = np.asarray(conc, dtype=float).copy() + conc[conc == 0] = _ZERO_CONC_VALUE + return np.log(conc) + + +def build_calc_df(model, manual_titrant_df): + """Concentration grid for X extraction (same grid as hill_geno).""" + from tfscreen.tfmodel.generative.components.theta.hill_geno import ( + build_calc_df as _hill_build_calc_df, + ) + return _hill_build_calc_df(model, manual_titrant_df) + + +def compute_theta_samples(calc_df, param_posteriors): + """Posterior X samples, shape ``(S, len(calc_df))``.""" + from tfscreen.tfmodel.inference.posteriors import get_posterior_samples + + indices = calc_df["map_theta_group"].values.astype(int) + log_titrant = _log_conc(calc_df["titrant_conc"].values)[None, :] + + def _load_flat(key): + v = get_posterior_samples(param_posteriors, key) + if hasattr(v, "shape") and not hasattr(v, "reshape"): + v = v[:] + return v.reshape(v.shape[0], -1) + + h_n = _load_flat("theta_hill_n")[:, indices] + l_K = _load_flat("theta_log_hill_K")[:, indices] + x_h = _load_flat("theta_X_high")[:, indices] + x_l = _load_flat("theta_X_low")[:, indices] + + occupancy = 1.0 / (1.0 + np.exp(-h_n * (log_titrant - l_K))) + return x_l + (x_h - x_l) * occupancy + + +def predict_unmeasured(target_genotypes, + titrant_names, + manual_titrant_df, + mut_labels, + pair_labels, + param_posteriors, + q_to_get): + """ + Population-mean X for genotypes not seen in training (no per-mutation + structure, as for hill_geno). + """ + from tfscreen.tfmodel.inference.posteriors import get_posterior_samples + from tfscreen.tfmodel.analysis.predict_unmeasured import ( + _build_prediction_grid, + ) + + calc_df, _, titrant_idx = _build_prediction_grid( + list(target_genotypes), titrant_names, manual_titrant_df) + + def _load(key): + v = get_posterior_samples(param_posteriors, key) + if hasattr(v, "shape") and not hasattr(v, "reshape"): + v = v[:] + return np.array(v) + + X_low = _load("theta_X_low_hyper_loc")[:, titrant_idx] + X_high = X_low + _load("theta_X_delta_hyper_loc")[:, titrant_idx] + l_K = _load("theta_log_hill_K_hyper_loc")[:, titrant_idx] + h_n = np.exp(_load("theta_log_hill_n_hyper_loc"))[:, titrant_idx] + + log_conc = _log_conc(calc_df["titrant_conc"].values)[None, :] + occupancy = 1.0 / (1.0 + np.exp(-h_n * (log_conc - l_K))) + samples = X_low + (X_high - X_low) * occupancy + + result_df = calc_df[["genotype", "titrant_name", "titrant_conc"]].copy() + for q_name, q_val in q_to_get.items(): + result_df[q_name] = np.quantile(samples, q_val, axis=0) + return result_df + + +def x_scale_truth(theta, theta_wt_lo, theta_wt_hi, + activity=1.0, activity_wt=1.0): + """ + Map simulated occupancy onto the X gauge (roadmap C8). + + With growth linear in ``activity * theta`` and the gauge ``X_wt(c_lo) = + 1``, ``X_wt(c_hi) = 0``: + + X = (A theta - A_wt theta_wt(c_hi)) / (A_wt (theta_wt(c_lo) - theta_wt(c_hi))) + + Parameters are arrays or scalars that broadcast together. + """ + theta = np.asarray(theta, dtype=float) + span = activity_wt * (np.asarray(theta_wt_lo) - np.asarray(theta_wt_hi)) + return (activity * theta - activity_wt * np.asarray(theta_wt_hi)) / span + + +def x_scale_growth_truth(k, m, theta_wt_lo, theta_wt_hi, activity_wt=1.0): + """ + A condition's (k, m) on the X gauge, from its (k, m) on the theta scale. + + ``g = k + m A theta`` with ``A theta = A_wt theta_wt(c_hi) + X * span`` + gives ``k_X = k + m A_wt theta_wt(c_hi)`` and ``m_X = m * span``. + """ + span = activity_wt * (theta_wt_lo - theta_wt_hi) + return k + m * activity_wt * theta_wt_hi, m * span diff --git a/src/tfscreen/tfmodel/generative/registry.py b/src/tfscreen/tfmodel/generative/registry.py index 94096ba7..5416e175 100644 --- a/src/tfscreen/tfmodel/generative/registry.py +++ b/src/tfscreen/tfmodel/generative/registry.py @@ -25,6 +25,7 @@ from .components.theta import _simple as theta_simple from .components.theta import categorical_geno as theta_cat from .components.theta import hill_geno as theta_hill +from .components.theta import hill_relative as theta_hill_relative from .components.theta import hill_mut as theta_hill_mut from .components.theta.thermo.O2_C4_K3_U0_a import PK as theta_lac_dimer_lnK_mut from .components.theta.thermo.O2_C4_K3_U0_a import PnnC as theta_lac_dimer_lnK_nn_prior @@ -95,6 +96,7 @@ "_simple":theta_simple, "categorical_geno":theta_cat, "hill_geno":theta_hill, + "hill_relative":theta_hill_relative, "hill_mut":theta_hill_mut, "thermo.O2_C4_K3_U0_a.PK":theta_lac_dimer_lnK_mut, "thermo.O2_C4_K3_U0_a.PnnC":theta_lac_dimer_lnK_nn_prior, diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index 922c3c1f..37e6a202 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -776,6 +776,10 @@ def _setup_batching(growth_genotypes, # "softmin" takes congression_dk_alpha). _CONGRESSION_DK_RULES = ("dilution", "softmin", "min") +# Theta components on the wt-relative X scale (roadmap step 5): real-valued, +# defined up to an affine map, gauged on wt at two concentrations. +_RELATIVE_THETA = ("hill_relative",) + _RETIRED_TRANSFORMATIONS = { "empirical": ( "transformation 'empirical' has been replaced by 'mixture'. The old " @@ -796,6 +800,58 @@ def _setup_batching(growth_genotypes, } +def _check_relative_theta(theta, has_binding, activity, theta_rescale, + condition_growth, theta_growth_noise, + transformation, congression_theta_rule, + theta_gauge_conc): + """ + Refuse settings that assume theta is an absolute occupancy when the theta + component is on the relative X scale, and check ``theta_gauge_conc``. + + Returns ``theta_gauge_conc`` as a list of two floats, or None. + """ + if theta not in _RELATIVE_THETA: + if theta_gauge_conc is not None: + raise ValueError( + f"theta_gauge_conc={theta_gauge_conc!r} was given but theta " + f"{theta!r} is not a relative theta component " + f"({list(_RELATIVE_THETA)}); only those have a gauge.") + return None + + why = (f"theta={theta!r} infers a wt-relative growth variable X, not an " + f"absolute occupancy (roadmap step 5, " + f"planning/analysis-roadmap.md)") + if has_binding: + raise ValueError( + f"{why}, so binding data (an absolute occupancy) cannot be fit " + f"with it. Leave out binding_df.") + fixed = {"activity": (activity, "fixed"), + "theta_rescale": (theta_rescale, "passthrough"), + "condition_growth": (condition_growth, "linear"), + "theta_growth_noise": (theta_growth_noise, "zero")} + for key, (value, required) in fixed.items(): + if value != required: + raise ValueError( + f"{why}; it requires {key}={required!r} (got {value!r}). " + f"X's scale absorbs activity, and rescaling, nonlinear " + f"growth and theta noise all assume theta in (0, 1).") + if transformation == "mixture" and congression_theta_rule != "max": + raise ValueError( + f"{why}; under the congression mixture only " + f"congression_theta_rule='max' is invariant to X's affine gauge " + f"(the partition-function rules take logit(theta)). Got " + f"{congression_theta_rule!r}.") + + if theta_gauge_conc is None: + return None + gauge = [float(c) for c in theta_gauge_conc] + if len(gauge) != 2 or not (0.0 <= gauge[0] < gauge[1]): + raise ValueError( + f"theta_gauge_conc must be two concentrations (c_lo, c_hi) with " + f"0 <= c_lo < c_hi; got {theta_gauge_conc!r}.") + return gauge + + def _check_congression_sets(congression_sets): """ Validate ``congression_sets``: a non-empty sequence of non-negative @@ -992,7 +1048,8 @@ def __init__(self, congression_theta_rule="homodimer", congression_dk_rule="dilution", congression_dk_alpha=None, - growth_likelihood="lncfu"): + growth_likelihood="lncfu", + theta_gauge_conc=None): self._ln_cfu_df = growth_df self._binding_df = binding_df @@ -1045,6 +1102,11 @@ def __init__(self, if self._transformation in _RETIRED_TRANSFORMATIONS: raise ValueError(_RETIRED_TRANSFORMATIONS[self._transformation]) + self._theta_gauge_conc = _check_relative_theta( + theta, binding_df is not None, activity, theta_rescale, + condition_growth, theta_growth_noise, transformation, + congression_theta_rule, theta_gauge_conc) + # A growth-only model has no binding data at all: no binding tensors, # no binding likelihood, no binding noise component. self._has_binding = binding_df is not None @@ -1297,6 +1359,23 @@ def _initialize_data(self): other_data["titrant_conc"] = titrant_conc other_data["log_titrant_conc"] = log_titrant_conc + + # The relative theta component's gauge: wt's X is 1 at c_lo and 0 at + # c_hi, by default the lowest and highest measured concentration. + # The resolved pair goes into settings, so the config records it. + if self._theta in _RELATIVE_THETA: + if len(wt_loc[0]) != 1: + raise ValueError( + f"theta={self._theta!r} is gauged on wt, so the growth " + f"data must contain the genotype 'wt' (found " + f"{len(wt_loc[0])}).") + if self._theta_gauge_conc is None: + self._theta_gauge_conc = [float(np.min(titrant_conc)), + float(np.max(titrant_conc))] + gauge = np.array(self._theta_gauge_conc, dtype=float) + gauge[gauge == 0] = ZERO_CONC_VALUE + other_data["theta_gauge_log_conc"] = jnp.asarray( + np.log(gauge), dtype=FLOAT_DTYPE) other_data["growth_shares_replicates"] = bool(self._growth_shares_replicates) # Resolve pinned dk_geno values (dk_geno == "pinned") from an @@ -2286,4 +2365,5 @@ def settings(self): "congression_dk_rule": self._congression_dk_rule, "congression_dk_alpha": self._congression_dk_alpha, "growth_likelihood": self._growth_likelihood, + "theta_gauge_conc": self._theta_gauge_conc, } diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index 87dcd3d8..ff3cc666 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -143,6 +143,7 @@ def configure_model(binding_df=None, growth_noise_model="zero", sample_offset_model="zero", growth_likelihood="lncfu", + theta_gauge_conc=None, library_config=None, growth_shares_replicates=False, epistasis=False, @@ -226,6 +227,12 @@ def configure_model(binding_df=None, 'thermo.O2_C4_K3_U0_a.PddG', 'thermo.O2_C12_K5_U0_a.PK', 'thermo.O2_C12_K5_U0_a.PnnC', 'thermo.O2_C12_K5_U0_a.PddG', and their O2_C4_K3_U1_a / O2_C12_K5_U1_a unfolded equivalents). + 'hill_relative' fits growth alone on a wt-relative scale X instead + of theta (wt's X is 1 at the low and 0 at the high gauge + concentration, theta_gauge_conc). It takes no binding_df, and + requires activity 'fixed', theta_rescale 'passthrough', linear + condition growth, theta_growth_noise 'zero' and, with the + 'mixture' transformation, congression_theta_rule 'max'. transformation_model : str, optional Model for congression. Allowed values are 'single' (default; one plasmid per cell) or 'mixture' (clean and congressed cells mixed at @@ -284,6 +291,10 @@ def configure_model(binding_df=None, 'adjusted_counts' and 'frequency' to derive it) and total cells ('sample_ln_cfu', or 'sample_cfu' with its uncertainty), and growth_noise_model 'zero'. + theta_gauge_conc : list of float, optional + ``c_lo c_hi``: the titrant concentrations at which theta_model + 'hill_relative' pins wt's X to 1 and 0. Default: the lowest and + highest concentration in growth_df. Refused by other theta models. library_config : str, optional Path to the library YAML describing the screened library -- the same file handed to ``tfs-process-fastq``. Required whenever ``growth_df`` @@ -418,6 +429,7 @@ def configure_model(binding_df=None, growth_noise=growth_noise_model, sample_offset=sample_offset_model, growth_likelihood=growth_likelihood, + theta_gauge_conc=theta_gauge_conc, library_file=library_file, growth_shares_replicates=growth_shares_replicates, epistasis=epistasis, @@ -458,8 +470,10 @@ def main(): "thermo_data":str, "batch_size":int, "binding_weight":float, - "transformation_lambda":float}, - manual_arg_nargs={"transformation_lambda":2}) + "transformation_lambda":float, + "theta_gauge_conc":float}, + manual_arg_nargs={"transformation_lambda":2, + "theta_gauge_conc":2}) if __name__ == "__main__": main() diff --git a/src/tfscreen/tfmodel/scripts/predict_epistasis_cli.py b/src/tfscreen/tfmodel/scripts/predict_epistasis_cli.py index 9c514d3b..904aca88 100644 --- a/src/tfscreen/tfmodel/scripts/predict_epistasis_cli.py +++ b/src/tfscreen/tfmodel/scripts/predict_epistasis_cli.py @@ -84,6 +84,8 @@ def predict_epistasis(config_file, Epistatic scale. 'logit' (default) computes additive epistasis of logit(theta) -- the natural scale for an occupancy in [0, 1]. 'add': (Y11 - Y10) - (Y01 - Y00). 'mult': (Y11 / Y10) / (Y01 / Y00). + A relative fit (theta 'hill_relative') gives X, not theta: it takes + only 'add', and its output has no 'in_regime' column. scale_constant : float, optional Constant applied to the transform before the difference-of-differences; multiplies the reported epistasis. Default 1.0. Mainly a unit diff --git a/src/tfscreen/tfmodel/scripts/predict_theta_cli.py b/src/tfscreen/tfmodel/scripts/predict_theta_cli.py index 5e7b04a2..b38b129d 100644 --- a/src/tfscreen/tfmodel/scripts/predict_theta_cli.py +++ b/src/tfscreen/tfmodel/scripts/predict_theta_cli.py @@ -39,6 +39,10 @@ def predict_theta(config_file, (genotype, titrant_name, titrant_conc) triple was in the training data, 0 otherwise. + A relative theta component (``hill_relative``) predicts the wt-relative + growth variable X, not theta; its output gets a column ``theta_scale`` + with the value ``X`` so nothing downstream takes it for an occupancy. + Parameters ---------- config_file : str @@ -205,6 +209,11 @@ def predict_theta(config_file, axis=1, ) + theta_scale = getattr(model_registry["theta"].get(orchestrator._theta), + "THETA_SCALE", "theta") + if theta_scale != "theta": + result_df["theta_scale"] = theta_scale + out_file = f"{out_prefix}.csv" result_df.to_csv(out_file, index=False) print(f"Wrote {len(result_df)} rows to {out_file}", flush=True) diff --git a/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py b/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py index 44002c4c..24803115 100644 --- a/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py +++ b/src/tfscreen/tfmodel/scripts/summarize_fit_cli.py @@ -167,6 +167,79 @@ def _find_unique(run_dir, suffix, label, warn_missing=True): return matches[0] +def _is_relative_config(config_yaml): + """True when the fit's theta component predicts X, not theta.""" + from tfscreen.tfmodel.generative.registry import model_registry + + components = (config_yaml or {}).get("components", {}) or {} + module = model_registry["theta"].get(components.get("theta")) + return getattr(module, "THETA_SCALE", "theta") == "X" + + +def _x_gauge(config_yaml, ref_theta_file, run_dir): + """ + What is needed to put simulated truth on a relative fit's X scale. + + Returns None unless the fit's theta component is on the X scale + (``hill_relative``). Otherwise a dict with ``gauge`` (c_lo, c_hi), ``wt`` + ({titrant_name: (theta_wt(c_lo), theta_wt(c_hi))}, from the reference + theta file) and ``activity`` (genotype -> simulated activity, from + ``*_sim_parameters.csv``; empty when absent, meaning activity 1). Warns + and returns None when the truth cannot be mapped. + """ + if not _is_relative_config(config_yaml): + return None + components = config_yaml.get("components", {}) or {} + + gauge = components.get("theta_gauge_conc") + if gauge is None or ref_theta_file is None: + warnings.warn("Relative (X-scale) fit without a recorded gauge or a " + "reference theta file; its truth cannot be put on the " + "X scale.") + return None + + gt = pd.read_csv(ref_theta_file) + theta_col = "theta_obs" if "theta_obs" in gt.columns else "theta" + wt = gt[gt["genotype"].astype(str) == "wt"] + wt_theta = {} + for titrant, rows in wt.groupby("titrant_name"): + by_conc = rows.set_index("titrant_conc")[theta_col] + values = [] + for c in gauge: + match = by_conc[np.isclose(by_conc.index.values.astype(float), c)] + if len(match) == 0: + warnings.warn(f"The reference theta file has no wt value at " + f"the gauge concentration {c} ({titrant}); the " + f"truth cannot be put on the X scale.") + return None + values.append(float(match.iloc[0])) + wt_theta[titrant] = tuple(values) + + activity = {} + params_file = _find_unique(run_dir, "_sim_parameters.csv", + "sim parameters", warn_missing=False) + if params_file is not None: + params = pd.read_csv(params_file) + if "activity" in params.columns: + activity = dict(zip(params["genotype"].astype(str), + params["activity"].astype(float))) + + return {"gauge": gauge, "wt": wt_theta, "activity": activity} + + +def _x_scale_ref(gt_df, x_gauge): + """The ``ref`` column of a reference theta table, on the X scale.""" + from tfscreen.tfmodel.generative.components.theta.hill_relative import ( + x_scale_truth, + ) + act = x_gauge["activity"] + lo = gt_df["titrant_name"].map(lambda t: x_gauge["wt"][t][0]) + hi = gt_df["titrant_name"].map(lambda t: x_gauge["wt"][t][1]) + a = gt_df["genotype"].astype(str).map(lambda g: act.get(g, 1.0)) + return x_scale_truth(gt_df["ref"].values, lo.values, hi.values, + a.values, act.get("wt", 1.0)) + + def _is_tfmodel_config(path): """True when the YAML at ``path`` is a tfmodel config ('data' + 'components').""" try: @@ -607,7 +680,33 @@ def _summarize_params(run_dir, out_prefix): _GROWTH_PARAM_NAMES = ["growth_k", "growth_m", "growth_n", "growth_min", "growth_max"] -def _summarize_condition_growth_params(run_dir, out_prefix): +def _x_scale_growth_ref(growth_ref_df, x_gauge): + """ + ``growth_k``/``growth_m`` truth on a relative fit's X scale (roadmap C4: + k is wt's growth at c_hi, m its change between the gauge + concentrations). Needs a single titrant (the gauge is per titrant, k and + m per condition); otherwise warns and blanks both. + """ + from tfscreen.tfmodel.generative.components.theta.hill_relative import ( + x_scale_growth_truth, + ) + out = growth_ref_df.copy() + if not {"growth_k", "growth_m"} <= set(out.columns): + return out + if len(x_gauge["wt"]) != 1: + warnings.warn("growth_k/growth_m truth is not mapped to the X scale " + "with more than one titrant; left blank.") + out["growth_k"] = np.nan + out["growth_m"] = np.nan + return out + lo, hi = next(iter(x_gauge["wt"].values())) + out["growth_k"], out["growth_m"] = x_scale_growth_truth( + out["growth_k"].values, out["growth_m"].values, lo, hi, + x_gauge["activity"].get("wt", 1.0)) + return out + + +def _summarize_condition_growth_params(run_dir, out_prefix, x_gauge=None): """Annotate *_params_growth_{name}.csv with ground-truth ref from tfs_sim_growth_parameters.csv. Scans run_dir for a ``*_sim_growth_parameters.csv`` file (written by @@ -620,7 +719,8 @@ def _summarize_condition_growth_params(run_dir, out_prefix): the configured growth model produces), the function looks for a matching ``*_params_{name}.csv`` file, warns if it is absent, and otherwise joins the two on ``condition_rep`` and writes the annotated - result to ``{out_prefix}_params_{name}.csv``. + result to ``{out_prefix}_params_{name}.csv``. For a relative (X-scale) + fit, ``x_gauge`` (from ``_x_gauge``) maps the k/m truth onto its scale. """ sim_path = _find_unique(run_dir, "_sim_growth_parameters.csv", "sim growth parameters", warn_missing=False) @@ -640,6 +740,9 @@ def _summarize_condition_growth_params(run_dir, out_prefix): ) return + if x_gauge is not None: + growth_ref_df = _x_scale_growth_ref(growth_ref_df, x_gauge) + present_param_names = [c for c in _GROWTH_PARAM_NAMES if c in growth_ref_df.columns] for param_name in present_param_names: @@ -782,7 +885,7 @@ def _summarize_transformation_lam(run_dir, out_prefix): _try_calibration(merged, "ref", out_name[:-4], "transformation_lam") -def _summarize_growth_params(run_dir, out_prefix): +def _summarize_growth_params(run_dir, out_prefix, x_gauge=None): """Annotate growth-model parameter files with simulated ground truth. Handles two independent, optionally-present ground-truth sources @@ -798,7 +901,7 @@ def _summarize_growth_params(run_dir, out_prefix): base_growth_data); each is silently skipped when its sim-side file isn't found. """ - _summarize_condition_growth_params(run_dir, out_prefix) + _summarize_condition_growth_params(run_dir, out_prefix, x_gauge) _summarize_k_ref(run_dir, out_prefix) @@ -974,8 +1077,20 @@ def summarize_fit(run_dir, "ref theta", warn_missing=False) metadata["ref_theta_file"] = ref_theta_file + # A relative fit predicts X, not theta: its truth is mapped onto the X + # gauge (roadmap C8). + x_gauge = None + try: + x_gauge = _x_gauge(config_yaml, ref_theta_file, run_dir) + except Exception as exc: + warnings.warn(f"Could not build the X-scale truth: {exc}") + relative = _is_relative_config(config_yaml) + metadata["theta_scale"] = "X" if relative else "theta" + # --- Theta test statistics --- - if ref_theta_file is not None and pred_df is not None: + # (a relative fit whose truth could not be mapped to X is not compared) + if (ref_theta_file is not None and pred_df is not None + and (x_gauge is not None or not relative)): try: gt_df = pd.read_csv(ref_theta_file) join_cols = ["genotype", "titrant_name", "titrant_conc"] @@ -991,6 +1106,8 @@ def summarize_fit(run_dir, theta_col = None if theta_col is not None: gt_df = gt_df.rename(columns={theta_col: "ref"}) + if x_gauge is not None: + gt_df["ref"] = _x_scale_ref(gt_df, x_gauge) test_merged = pred_df.merge( gt_df[join_cols + ["ref"]], on=join_cols, @@ -1161,7 +1278,7 @@ def summarize_fit(run_dir, # --- Sim-parameter correlation CSVs --- _summarize_params(run_dir, out_prefix) - _summarize_growth_params(run_dir, out_prefix) + _summarize_growth_params(run_dir, out_prefix, x_gauge) _summarize_transformation_lam(run_dir, out_prefix) return results diff --git a/tests/tfscreen/analysis/test_calibration_grid.py b/tests/tfscreen/analysis/test_calibration_grid.py index 2a118e4d..cb786763 100644 --- a/tests/tfscreen/analysis/test_calibration_grid.py +++ b/tests/tfscreen/analysis/test_calibration_grid.py @@ -181,6 +181,19 @@ def test_summarize_run_strata_rows(grid_dir): assert len(mut) == 1 and mut[0]["has_binding"] == "all" +def test_x_scale_rows_have_their_own_regime(grid_dir): + """A relative fit's theta_test (theta_scale X) is not split by the + theta band, which means nothing for X.""" + run = os.path.join(grid_dir, "run_auto_normal_sim1") + path = os.path.join(run, "summary", "tfs_summarize_theta_corr_test.csv") + df = pd.read_csv(path) + df["theta_scale"] = "X" + df.to_csv(path, index=False) + rows, _ = summarize_run(run) + regimes = {r["theta_regime"] for r in rows if r["quantity"] == "theta_test"} + assert regimes == {"all", "X"} + + def test_unfinished_run_reported_in_status(grid_dir): runs_df, status_df, grid_vars = summarize_grid_runs(grid_dir) status = status_df.set_index("run")["status"] diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py new file mode 100644 index 00000000..97d4993c --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py @@ -0,0 +1,148 @@ +"""Tests for the relative Hill theta component (X scale; roadmap step 5).""" +from types import SimpleNamespace + +import jax.numpy as jnp +import numpy as np +import pandas as pd +import pytest +from numpyro import handlers +from scipy.special import expit + +from tfscreen.tfmodel.generative.components.theta import hill_relative as hr + +LOG_CONC = np.log(np.array([1e-20, 1e-3, 1e-2, 1e-1, 1.0])) +GAUGE = jnp.array([LOG_CONC[0], LOG_CONC[-1]]) + + +def _data(num_genotype=4, wt=1, T=1): + idx = jnp.arange(num_genotype) + return SimpleNamespace(num_titrant_name=T, num_genotype=num_genotype, + wt_indexes=jnp.array([wt]), + theta_gauge_log_conc=GAUGE, + log_titrant_conc=jnp.asarray(LOG_CONC), + batch_idx=idx, geno_theta_idx=idx, + scatter_theta=0) + + +def _X(theta_param, data): + return np.asarray(hr.run_model(theta_param, data)) # (T, C, G) + + +@pytest.mark.parametrize("log_K,n", [(-4.1, 2.0), (-2.0, 0.7), (-6.0, 4.0)]) +def test_gauge_baselines_pin_wt(log_K, n): + low, high = hr.gauge_baselines(jnp.array(log_K), jnp.array(n), GAUGE) + occ = expit(n * (np.asarray(GAUGE) - log_K)) + X = float(low) + (float(high) - float(low)) * occ + assert X == pytest.approx([1.0, 0.0], abs=1e-5) + + +def test_gauge_span_is_floored(): + # a wt curve that does not move across the gauge range stays finite + low, high = hr.gauge_baselines(jnp.array(10.0), jnp.array(1.0), GAUGE) + assert np.isfinite(float(low)) and np.isfinite(float(high)) + + +@pytest.mark.parametrize("fn", [hr.define_model, hr.guide]) +def test_wt_is_gauged_others_free(fn): + data = _data() + with handlers.seed(rng_seed=3): + tp = fn("theta", data, hr.get_priors()) + X = _X(tp, data) + assert X.shape == (1, len(LOG_CONC), 4) + assert X[0, 0, 1] == pytest.approx(1.0, abs=1e-5) + assert X[0, -1, 1] == pytest.approx(0.0, abs=1e-5) + # other genotypes are not pinned + assert not np.allclose(X[0, 0, [0, 2, 3]], 1.0) + + +def test_sites_and_deterministics(): + data = _data() + tr = handlers.trace(handlers.seed(hr.define_model, 0)).get_trace( + "theta", data, hr.get_priors()) + for site in ("theta_X_low", "theta_X_high", "theta_log_hill_K", + "theta_hill_n"): + assert tr[site]["type"] == "deterministic" + assert tr[site]["value"].shape == (1, 4) + # per-genotype offsets are library-sized + assert tr["theta_X_low_offset"]["value"].shape == (1, 4) + + +def test_run_model_follows_batch_idx(): + data = _data() + with handlers.seed(rng_seed=0): + tp = hr.define_model("theta", data, hr.get_priors()) + full = _X(tp, data) + order = jnp.array([2, 0, 3, 1]) + sub = _X(tp, SimpleNamespace(**{**vars(data), "batch_idx": order})) + assert np.allclose(sub, full[..., np.asarray(order)]) + + +def test_scatter_shape(): + data = _data() + with handlers.seed(rng_seed=0): + tp = hr.define_model("theta", data, hr.get_priors()) + data.scatter_theta = 1 + assert hr.run_model(tp, data).shape == (1, 1, 1, 1, 1, len(LOG_CONC), 4) + + +def test_population_moments_are_none(): + assert hr.get_population_moments(None, None) == (None, None) + + +def test_priors_and_guesses(): + p = hr.get_priors() + assert p.theta_X_low_hyper_loc_loc == 1.0 + assert p.theta_X_delta_hyper_loc_loc == -1.0 + g = hr.get_guesses("theta", _data()) + assert g["theta_X_low_offset"].shape == (1, 4) + assert set(k for k in g if k.endswith("_hyper_loc")) == { + "theta_X_low_hyper_loc", "theta_X_delta_hyper_loc", + "theta_log_hill_K_hyper_loc", "theta_log_hill_n_hyper_loc"} + + +def test_compute_theta_samples_matches_run_model(): + data = _data() + with handlers.seed(rng_seed=1): + tp = hr.define_model("theta", data, hr.get_priors()) + post = {"theta_X_low": np.asarray(tp.X_low)[None], + "theta_X_high": np.asarray(tp.X_high)[None], + "theta_log_hill_K": np.asarray(tp.log_hill_K)[None], + "theta_hill_n": np.asarray(tp.hill_n)[None]} + conc = np.exp(LOG_CONC) + conc[0] = 0.0 + calc = pd.DataFrame({"titrant_conc": np.tile(conc, 4), + "map_theta_group": np.repeat(np.arange(4), len(conc))}) + got = hr.compute_theta_samples(calc, post)[0].reshape(4, len(conc)) + assert np.allclose(got, _X(tp, data)[0].T, atol=1e-5) + + +def test_predict_unmeasured_uses_population_means(): + post = {"theta_X_low_hyper_loc": np.array([[1.0]]), + "theta_X_delta_hyper_loc": np.array([[-1.0]]), + "theta_log_hill_K_hyper_loc": np.array([[np.log(0.01)]]), + "theta_log_hill_n_hyper_loc": np.array([[np.log(2.0)]])} + grid = pd.DataFrame({"titrant_name": ["iptg", "iptg"], + "titrant_conc": [0.0, 0.01]}) + out = hr.predict_unmeasured(["A1V", "B2C"], ["iptg"], grid, None, None, + post, {"q0.5": 0.5}) + at0 = out[out["titrant_conc"] == 0.0]["q0.5"] + atK = out[out["titrant_conc"] == 0.01]["q0.5"] + assert np.allclose(at0, 1.0) and np.allclose(atK, 0.5) + + +def test_x_scale_truth_gauges_wt(): + wt = np.array([0.95, 0.6, 0.05]) # wt theta at c_lo, mid, c_hi + X = hr.x_scale_truth(wt, wt[0], wt[-1]) + assert X == pytest.approx([1.0, (0.6 - 0.05) / 0.9, 0.0]) + # activity multiplies occupancy + assert hr.x_scale_truth(0.5, 1.0, 0.0, activity=0.5) == pytest.approx(0.25) + + +def test_x_scale_growth_truth_preserves_growth(): + rng = np.random.default_rng(0) + k, m = 0.02, -0.015 + lo, hi = 0.9, 0.1 + theta = rng.uniform(0, 1, 10) + k_X, m_X = hr.x_scale_growth_truth(k, m, lo, hi) + X = hr.x_scale_truth(theta, lo, hi) + assert np.allclose(k + m * theta, k_X + m_X * X) diff --git a/tests/tfscreen/tfmodel/inference/test_batch_safety.py b/tests/tfscreen/tfmodel/inference/test_batch_safety.py index db1cb9b6..6aa717c6 100644 --- a/tests/tfscreen/tfmodel/inference/test_batch_safety.py +++ b/tests/tfscreen/tfmodel/inference/test_batch_safety.py @@ -152,6 +152,7 @@ def test_equal_length_index_sets_rejected(): ("ln_cfu0", "hierarchical"), ("ln_cfu0", "hierarchical_factored"), ("theta", "hill_geno"), + ("theta", "hill_relative"), ("theta", "hill_mut"), ("theta", "categorical_geno"), ("theta", "_simple"), @@ -173,12 +174,21 @@ def test_equal_length_index_sets_rejected(): ("sample_offset", "normal"), ] -# Extra constructor arguments some variants require. +# Extra constructor arguments some variants require. The relative theta +# component (X scale) takes no binding data and no theta noise. _VARIANT_KWARGS = { ("transformation", "mixture"): {"transformation_lambda": (1.0, 0.1)}, + ("theta", "hill_relative"): {"binding_df": None, + "theta_growth_noise": "zero"}, } +def _variant_kwargs(axis, variant): + """Constructor arguments for one variant (binding data unless refused).""" + return {"binding_df": _BINDING_CSV, axis: variant, + **_VARIANT_KWARGS.get((axis, variant), {})} + + def _owned_by(axis, site_name): """True when site_name belongs to the component registered under axis.""" if not site_name.startswith(f"{axis}_"): @@ -193,10 +203,8 @@ def _owned_by(axis, site_name): @pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) def test_component_latents_are_batch_safe(axis, variant): orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, - binding_df=_BINDING_CSV, batch_size=6, - **{axis: variant}, - **_VARIANT_KWARGS.get((axis, variant), {})) + **_variant_kwargs(axis, variant)) found = find_orchestrator_batch_dependent_latents(orchestrator) found = {k: v for k, v in found.items() if _owned_by(axis, k)} assert found == {}, ( @@ -303,9 +311,7 @@ def test_order_check_needs_reorderings(): @pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) def test_component_predictions_follow_batch_order(axis, variant): orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, - binding_df=_BINDING_CSV, - **{axis: variant}, - **_VARIANT_KWARGS.get((axis, variant), {})) + **_variant_kwargs(axis, variant)) found = find_orchestrator_batch_order_mismatches(orchestrator) assert found == {}, ( f"{axis}={variant}: predictions do not follow a reordered full " diff --git a/tests/tfscreen/tfmodel/inference/test_initialization.py b/tests/tfscreen/tfmodel/inference/test_initialization.py index fc1debf8..b77f0be9 100644 --- a/tests/tfscreen/tfmodel/inference/test_initialization.py +++ b/tests/tfscreen/tfmodel/inference/test_initialization.py @@ -27,7 +27,7 @@ _BINDING_CSV, _GROWTH_CSV, _SAFE_VARIANTS, - _VARIANT_KWARGS, + _variant_kwargs, _owned_by, ) @@ -161,10 +161,8 @@ def test_site_unconstrained_prior_sds(): @pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) def test_component_guides_follow_loc_scale_convention(axis, variant): orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, - binding_df=_BINDING_CSV, batch_size=None, - **{axis: variant}, - **_VARIANT_KWARGS.get((axis, variant), {})) + **_variant_kwargs(axis, variant)) ri = RunInference(orchestrator, seed=0) mapping, unmatched, _ = component_guide_map(orchestrator.jax_model_guide, orchestrator.priors, diff --git a/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py b/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py index e140e0a3..ccf6002c 100644 --- a/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_predict_theta_cli.py @@ -462,3 +462,26 @@ def fake_curves(**kwargs): out_prefix=str(tmp_path / "out")) assert extract_calls["q_to_get"] is None + + +# --------------------------------------------------------------------------- +# X-scale label (relative theta component; roadmap C8) +# --------------------------------------------------------------------------- + +@pytest.mark.parametrize("theta,label", [("hill_relative", "X"), + ("hill_geno", None)]) +def test_relative_output_is_labelled_X(mock_extract, mock_orchestrator, + tmp_path, theta, label): + mock_orchestrator._theta = theta + out = str(tmp_path / "out") + with patch("tfscreen.tfmodel.scripts.predict_theta_cli.extract_theta_curves", + return_value=pd.DataFrame({"genotype": ["wt"], + "titrant_name": ["IPTG"], + "titrant_conc": [0.0], + "q0.5": [1.0]})): + predict_theta("cfg.yaml", "post.h5", out_prefix=out) + df = pd.read_csv(f"{out}.csv") + if label is None: + assert "theta_scale" not in df.columns + else: + assert (df["theta_scale"] == label).all() diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index ca3f26b9..b615301f 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -943,6 +943,7 @@ def test_model_class_properties(initialized_model_class): model._congression_dk_rule = "softmin" model._congression_dk_alpha = 50.0 model._growth_likelihood = "lncfu" + model._theta_gauge_conc = None assert ModelOrchestrator.jax_model.fget(model) == "jm" assert ModelOrchestrator.jax_model_guide.fget(model) == "jmg" diff --git a/tests/tfscreen/tfmodel/test_relative_fit.py b/tests/tfscreen/tfmodel/test_relative_fit.py new file mode 100644 index 00000000..1350c73a --- /dev/null +++ b/tests/tfscreen/tfmodel/test_relative_fit.py @@ -0,0 +1,241 @@ +""" +The relative-X fit (theta 'hill_relative'; roadmap step 5, +planning/analysis-roadmap.md), wired through the orchestrator, configuration, +prediction and the downstream X-scale checks (C1, C8). +""" +import os + +import jax +import numpy as np +import pandas as pd +import pytest +import yaml +from numpyro.handlers import seed, trace +from numpyro.infer import Predictive + +from tfscreen.analysis.scripts.extract_epistasis_cli import extract_epistasis +from tfscreen.tfmodel.analysis.extraction import ( + extract_theta_curves, + extract_theta_epistasis, +) +from tfscreen.tfmodel.analysis.prediction import copy_orchestrator, predict +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.model_orchestrator import ModelOrchestrator +from tfscreen.tfmodel.scripts.configure_model_cli import configure_model +from tfscreen.tfmodel.scripts import summarize_fit_cli + + +_SMOKE_DATA = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "..", "..", "smoke-tests", "test_data", +) +_GROWTH_CSV = os.path.join(_SMOKE_DATA, "growth-smoke.csv") +_BINDING_CSV = os.path.join(_SMOKE_DATA, "binding-smoke.csv") +_LIBRARY_YAML = os.path.join(_SMOKE_DATA, "library-smoke.yaml") + +_RELATIVE = dict(theta="hill_relative", theta_growth_noise="zero") + + +def _orch(**kwargs): + return ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=None, + **{**_RELATIVE, **kwargs}) + + +@pytest.fixture(scope="module") +def relative(): + return _orch(batch_size=6) + + +@pytest.fixture(scope="module") +def prior_draws(relative): + draws = Predictive(relative.jax_model, num_samples=4)( + jax.random.PRNGKey(0), data=relative.data, priors=relative.priors) + return {k: v for k, v in draws.items() + if not k.endswith("_obs") and not k.endswith("_pred")} + + +# --------------------------------------------------------------------------- +# gauge and refusals +# --------------------------------------------------------------------------- + +def test_default_gauge_is_measured_range(relative): + assert relative.settings["theta_gauge_conc"] == [0.0, 1.0] + lc = np.asarray(relative.data.growth.theta_gauge_log_conc) + assert lc[0] == pytest.approx(np.log(1e-20)) + assert lc[1] == pytest.approx(0.0) + + +def test_wt_is_pinned_in_the_model(relative): + d = relative.get_batch(relative.data, relative.get_random_idx(batch_key=0)) + tr = trace(seed(relative.jax_model, 1)).get_trace(data=d, + priors=relative.priors) + wt = int(relative.data.growth.wt_indexes[0]) + lo, hi = tr["theta_X_low"]["value"][0, wt], tr["theta_X_high"]["value"][0, wt] + K, n = tr["theta_log_hill_K"]["value"][0, wt], tr["theta_hill_n"]["value"][0, wt] + lc = np.asarray(relative.data.growth.theta_gauge_log_conc) + occ = 1 / (1 + np.exp(-n * (lc - K))) + assert lo + (hi - lo) * occ == pytest.approx([1.0, 0.0], abs=1e-5) + + +def test_explicit_gauge(): + o = _orch(theta_gauge_conc=[0.0, 0.1]) + assert o.settings["theta_gauge_conc"] == [0.0, 0.1] + assert float(o.data.growth.theta_gauge_log_conc[1]) == pytest.approx(np.log(0.1)) + + +@pytest.mark.parametrize("gauge", [[1.0, 0.0], [0.1], [-1.0, 1.0]]) +def test_bad_gauge_refused(gauge): + with pytest.raises(ValueError, match="theta_gauge_conc"): + _orch(theta_gauge_conc=gauge) + + +def test_gauge_refused_for_absolute_theta(): + with pytest.raises(ValueError, match="theta_gauge_conc"): + ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=None, + theta_growth_noise="zero", theta_gauge_conc=[0, 1]) + + +@pytest.mark.parametrize("kwargs,match", [ + ({"binding_df": _BINDING_CSV}, "binding"), + ({"activity": "hierarchical_geno"}, "activity"), + ({"theta_rescale": "logit"}, "theta_rescale"), + ({"condition_growth": "power"}, "condition_growth"), + ({"theta_growth_noise": "logit_normal"}, "theta_growth_noise"), + ({"transformation": "mixture", "transformation_lambda": (0.3, 0.05)}, + "congression_theta_rule"), +]) +def test_absolute_theta_settings_refused(kwargs, match): + with pytest.raises(ValueError, match=match): + ModelOrchestrator(growth_df=_GROWTH_CSV, + **{"binding_df": None, **_RELATIVE, **kwargs}) + + +def test_mixture_with_max_rule(): + o = _orch(transformation="mixture", transformation_lambda=(0.3, 0.05), + congression_theta_rule="max") + d = o.get_batch(o.data, o.get_random_idx(batch_key=0)) + tr = trace(seed(o.jax_model, 0)).get_trace(data=d, priors=o.priors) + assert np.all(np.isfinite(np.asarray(tr["growth_pred"]["value"]))) + + +def test_requires_wt(tmp_path): + df = pd.read_csv(_GROWTH_CSV) + path = tmp_path / "no_wt.csv" + df[df["genotype"] != "wt"].to_csv(path, index=False) + with pytest.raises(ValueError, match="wt"): + ModelOrchestrator(growth_df=str(path), binding_df=None, **_RELATIVE) + + +# --------------------------------------------------------------------------- +# configuration +# --------------------------------------------------------------------------- + +def test_configure_round_trip(tmp_path): + out_prefix = str(tmp_path / "rel") + configure_model(growth_df=_GROWTH_CSV, library_config=_LIBRARY_YAML, + out_prefix=out_prefix, theta_model="hill_relative", + theta_gauge_conc=[0.0, 0.1], skip_model_stats=True) + with open(f"{out_prefix}_config.yaml") as fh: + config = yaml.safe_load(fh) + assert config["components"]["theta"] == "hill_relative" + assert config["components"]["theta_gauge_conc"] == [0.0, 0.1] + o, _ = read_configuration(f"{out_prefix}_config.yaml") + assert o.settings["theta_gauge_conc"] == [0.0, 0.1] + + +def test_configure_records_default_gauge(tmp_path): + out_prefix = str(tmp_path / "rel") + configure_model(growth_df=_GROWTH_CSV, library_config=_LIBRARY_YAML, + out_prefix=out_prefix, theta_model="hill_relative", + skip_model_stats=True) + with open(f"{out_prefix}_config.yaml") as fh: + config = yaml.safe_load(fh) + assert config["components"]["theta_gauge_conc"] == [0.0, 1.0] + other = str(tmp_path / "abs") + configure_model(growth_df=_GROWTH_CSV, library_config=_LIBRARY_YAML, + out_prefix=other, skip_model_stats=True) + with open(f"{other}_config.yaml") as fh: + assert yaml.safe_load(fh)["components"]["theta_gauge_conc"] is None + + +# --------------------------------------------------------------------------- +# prediction and extraction +# --------------------------------------------------------------------------- + +def test_prediction_subset_keeps_wt_for_the_gauge(relative, prior_draws): + new = copy_orchestrator(relative, genotypes=["M42I"]) + assert set(new.growth_tm.tensor_dim_labels[-1]) == {"M42I", "wt"} + out = predict(relative, prior_draws, genotypes=["M42I"], num_samples=None) + assert set(out["genotype"].astype(str)) == {"M42I"} + assert np.isfinite(out.filter(like="q0.5").to_numpy()).all() + + +def test_extract_curves_on_X(relative, prior_draws): + out = extract_theta_curves(relative, prior_draws, num_samples=None) + wt = out[out["genotype"] == "wt"].set_index("titrant_conc") + # every draw pins wt, so every quantile does + assert wt.loc[0.0].filter(like="q").to_numpy() == pytest.approx(1.0, abs=1e-4) + assert wt.loc[1.0].filter(like="q").to_numpy() == pytest.approx(0.0, abs=1e-4) + + +def test_epistasis_on_X_is_additive_only(relative, prior_draws): + with pytest.raises(ValueError, match="scale='add'"): + extract_theta_epistasis(relative, prior_draws, scale="logit") + out = extract_theta_epistasis(relative, prior_draws, scale="add") + assert "in_regime" not in out.columns + + +def test_extract_epistasis_cli_refuses_non_additive_X(tmp_path): + path = tmp_path / "x.csv" + pd.DataFrame({"genotype": ["wt", "A1B", "C2D", "A1B/C2D"], + "q0.5": [1.0, 0.5, 0.4, 0.1], + "theta_scale": "X"}).to_csv(path, index=False) + with pytest.raises(ValueError, match="scale='add'"): + extract_epistasis(str(path), out_prefix=str(tmp_path / "ep"), + scale="logit") + extract_epistasis(str(path), out_prefix=str(tmp_path / "ep"), scale="add") + assert pd.read_csv(tmp_path / "ep.csv")["ep_obs"].iloc[0] == \ + pytest.approx((0.1 - 0.4) - (0.5 - 1.0)) + + +# --------------------------------------------------------------------------- +# summarize-fit truth on the X scale +# --------------------------------------------------------------------------- + +def _truth_files(tmp_path): + theta = pd.DataFrame({ + "genotype": ["wt"] * 3 + ["A1B"] * 3, + "titrant_name": "iptg", + "titrant_conc": [0.0, 0.01, 1.0] * 2, + "theta": [0.9, 0.5, 0.1, 0.6, 0.4, 0.2]}) + theta_file = tmp_path / "tfs_sim_genotype_theta.csv" + theta.to_csv(theta_file, index=False) + pd.DataFrame({"genotype": ["wt", "A1B"], "activity": [1.0, 0.5]}).to_csv( + tmp_path / "tfs_sim_parameters.csv", index=False) + return str(theta_file) + + +def test_x_gauge_and_ref(tmp_path): + theta_file = _truth_files(tmp_path) + config = {"components": {"theta": "hill_relative", + "theta_gauge_conc": [0.0, 1.0]}} + g = summarize_fit_cli._x_gauge(config, theta_file, str(tmp_path)) + assert g["wt"] == {"iptg": (0.9, 0.1)} + assert g["activity"]["A1B"] == 0.5 + + gt = pd.read_csv(theta_file).rename(columns={"theta": "ref"}) + X = summarize_fit_cli._x_scale_ref(gt, g) + assert X[:3] == pytest.approx([1.0, 0.5, 0.0]) + assert X[3] == pytest.approx((0.5 * 0.6 - 0.1) / 0.8) + + assert summarize_fit_cli._x_gauge( + {"components": {"theta": "hill_geno"}}, theta_file, str(tmp_path)) is None + + +def test_x_scale_growth_ref(tmp_path): + g = {"wt": {"iptg": (0.9, 0.1)}, "activity": {}} + growth = pd.DataFrame({"condition_rep": ["kan"], "growth_k": [0.02], + "growth_m": [-0.01]}) + out = summarize_fit_cli._x_scale_growth_ref(growth, g) + assert out["growth_k"].iloc[0] == pytest.approx(0.02 - 0.01 * 0.1) + assert out["growth_m"].iloc[0] == pytest.approx(-0.01 * 0.8) From c65390aa7f68d5fdc923fa43de9b4e9e648ac9ee Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 26 Sep 2026 20:35:05 -0700 Subject: [PATCH 056/208] Fix the pre-fit Hessian point and count-likelihood underflow The count-likelihood grid's first run lost 11 of its 12 counts runs to two bugs. compute_hessian_sigmas took the MAP values it was given as unconstrained, but tfs-prefit-calibration passes svi.get_params(), which AutoDelta returns constrained. Every positive site was evaluated at exp(value): the count likelihood's phi (MAP 49) overflowed and the pre-fit wrote NaN k_scale/m_scale_plus, crashing 8 fits; on lncfu runs the written k_scale was loose (0.0028 against k sigmas of 0.0003-0.0007 at the right point, now floored at 0.002). The values are now mapped to unconstrained space first. tfs-sample-posterior and tfs-extract-params read the optimizer state and were unaffected; their docstrings now say which form they take. The negative binomial's concentration mu/phi underflowed float32 for genotypes predicted near extinction (all-zero genotypes drift there), turning the gradient and Hessian to NaN; SVI exploded within 250 steps in 3 runs. The concentration now has a floor, c + e^-30, which changes only rows expecting under ~1e-12 reads. Both reproduced from the grid's saved states (run_0003's pre-fit MAP, run_0007's pre-MAP hand-off) and fixed there. Study README and roadmap record the first run's partial results; the grid needs a full rerun. Tests: finite value/gradient/Hessian of the count log-pmf down to log mu = -200; compute_hessian_sigmas round-trips a constrained MAP. Full unit suite passes. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 20 +++++++ CLAUDE.md | 4 +- planning/analysis-roadmap.md | 8 ++- planning/studies/count-likelihood/.gitignore | 1 + planning/studies/count-likelihood/README.md | 42 +++++++++++-- .../generative/observe/growth_counts.py | 16 ++++- .../tfmodel/inference/run_inference.py | 59 ++++++++++++------- .../observe/test_observe_growth_counts.py | 27 +++++++++ .../tfmodel/inference/test_run_inference.py | 34 +++++++++++ 9 files changed, 181 insertions(+), 30 deletions(-) create mode 100644 planning/studies/count-likelihood/.gitignore diff --git a/CHANGELOG.md b/CHANGELOG.md index 13db9cf6..37bc6462 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -417,6 +417,26 @@ fall into two kinds: ### Fixed +- **`tfs-prefit-calibration` took its Hessian at the wrong point.** + `RunInference.compute_hessian_sigmas` treated the MAP values it was given + as unconstrained, but its caller passes `svi.get_params(...)`, which + AutoDelta returns constrained; every positive site (hyper-scales, noise + scales, the count likelihood's `phi`) was evaluated at `exp(value)`. The + pre-fit's Hessian-derived `k_scale`/`m_scale_plus` were therefore off + (on a count-likelihood grid run, k sigmas of 0.0012-0.0029 against 0.0003-0.0007 at the + right point, so the written `k_scale` was ~0.0028 where the 0.002 floor + now applies), and on the count likelihood `phi` overflowed and wrote + NaN scales that crashed the fit. It now maps the values to unconstrained + space first. `tfs-sample-posterior` and `tfs-extract-params` read the + optimizer state (already unconstrained) and were not affected. +- **Count likelihood NaN for genotypes predicted near extinction.** The + negative binomial's concentration `mu / phi` underflowed float32 when the + expected reads fell below about `e^-40` (reached by genotypes with zero + reads everywhere, whose likelihood keeps rising as `mu` falls), and the + log-pmf's gradient and Hessian went to NaN; SVI then exploded within its + first 250 steps. The concentration now has a floor of `e^-30` + (`growth_counts._LOG_C_FLOOR`), which changes only rows expecting under + ~1e-12 reads. - **Prediction with a per-tube `sample_offset`.** `tfs-predict-growth` (and anything calling `analysis.prediction.predict` on a new time or concentration grid) failed to reshape the per-tube offsets of diff --git a/CLAUDE.md b/CLAUDE.md index 33090ebc..3ae05801 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -140,7 +140,7 @@ The hierarchical Bayesian inference engine. Key files: ### Count likelihood (`growth_likelihood: counts`) -Roadmap step 7. `observe/growth_counts.py` observes reads directly: `reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r)` with `log mu = ln_sample_reads + ln_cfu_pred - sample_ln_cfu` (predicted frequency times the tube's reads), learned `growth_phi`/`growth_inv_r` (LogNormal priors, medians 5 and 0.01), no pseudocount. The log-pmf is `CountNegativeBinomial`, Loader's algorithm (R's `dnbinom_mu`: `bd0` deviance + `stirlerr`): numpyro's own negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; keep any rewrite of it tested against scipy at high depth (`test_observe_growth_counts.py`), and guard `jnp.where` branches so the unused one cannot overflow (NaN gradients). Data: `GrowthData.counts`/`ln_sample_reads`/`sample_ln_cfu` (same layout as `ln_cfu`, None for `lncfu`; sliced by `tensors/batch.py`) and the static `GrowthData.growth_likelihood`, built by `model_orchestrator._add_count_columns` (tube reads from `sample_reads`, else `adjusted_counts / frequency`, about 1% high from pseudocounts, the same for every genotype in a tube; tube totals from `sample_ln_cfu` or `sample_cfu`). The orchestrator refuses `growth_noise` other than `zero` with counts. Pair it with `sample_offset: level` (one constant-prior ln_cfu offset per tube), since an error in a tube's supplied total otherwise moves every genotype in it. Presplit is still observed as `ln_cfu`. Validation grid: `planning/studies/count-likelihood/`. +Roadmap step 7. `observe/growth_counts.py` observes reads directly: `reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r)` with `log mu = ln_sample_reads + ln_cfu_pred - sample_ln_cfu` (predicted frequency times the tube's reads), learned `growth_phi`/`growth_inv_r` (LogNormal priors, medians 5 and 0.01), no pseudocount. The log-pmf is `CountNegativeBinomial`, Loader's algorithm (R's `dnbinom_mu`: `bd0` deviance + `stirlerr`): numpyro's own negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; keep any rewrite of it tested against scipy at high depth (`test_observe_growth_counts.py`), and guard `jnp.where` branches so the unused one cannot overflow (NaN gradients). The concentration has a floor (`c + e^-30`, `_LOG_C_FLOOR`): without it `mu / phi` underflows for genotypes predicted near extinction (all-zero genotypes drift there) and the gradient/Hessian go NaN; `test_finite_value_gradient_and_hessian` covers log mu down to -200. Data: `GrowthData.counts`/`ln_sample_reads`/`sample_ln_cfu` (same layout as `ln_cfu`, None for `lncfu`; sliced by `tensors/batch.py`) and the static `GrowthData.growth_likelihood`, built by `model_orchestrator._add_count_columns` (tube reads from `sample_reads`, else `adjusted_counts / frequency`, about 1% high from pseudocounts, the same for every genotype in a tube; tube totals from `sample_ln_cfu` or `sample_cfu`). The orchestrator refuses `growth_noise` other than `zero` with counts. Pair it with `sample_offset: level` (one constant-prior ln_cfu offset per tube), since an error in a tube's supplied total otherwise moves every genotype in it. Presplit is still observed as `ln_cfu`. Validation grid: `planning/studies/count-likelihood/`. ### Relative-X fit (`theta: hill_relative`) @@ -175,6 +175,8 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi **Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (default 0.1 for the component guide, `DEFAULT_COMPONENT_INIT_SCALE`). `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. +**MAP values: constrained or not.** AutoDelta's `svi.get_params(state)` (what `run_optimization` returns and `write_params` saves) is *constrained*; `svi.optim.get_params(state.optim_state)` (what `tfs-sample-posterior`, `tfs-extract-params` and `checkpoint_io` read from checkpoints) is *unconstrained*. `compute_hessian_sigmas` takes the former, `get_laplace_posteriors`/`get_map_posteriors`/`_map_params_to_constrained` the latter. Mixing them up silently evaluates positive sites at `exp(value)` (the pre-fit did until 2026-09-27). + ### Per-condition growth priors The `condition_growth` components (`linear`/`power`/`saturation`) carry a per-condition **additive baseline** (`k` for linear/power, `min` for saturation) that is only jointly identified with the shared per-genotype `dk_geno`: the growth likelihood `g = k_condition + dk_geno + A·m·θ` is invariant to `k += C, dk_geno −= C`. With only weak/rare anchors (wt's pinned `dk_geno=0`, `base_growth`) the whole system slides by a global constant `C`, inflating all condition baselines and `k_ref` and making genotypes with constrained `dk_geno` (notably wt) badly mis-fit their `ln_cfu`. The fix is to pin each condition baseline with a per-condition prior — a prior on the 4 baseline params acts at full strength, unlike the abundance-diluted genotype anchors. diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 40bec5d7..494e914e 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -525,7 +525,13 @@ step 7. the new processing batch needs no rerun. Refuses `growth_noise` other than `zero`. Presplit stays `ln_cfu` (its data have no counts yet); index hopping is not modeled yet. Validation grid: - `planning/studies/count-likelihood/` (24 runs, not yet run). + `planning/studies/count-likelihood/` (24 runs). First run (2026-09-27): + 11 of 12 `counts` runs failed, on two bugs now fixed (the pre-fit's + Hessian was taken at `exp` of every positive site's MAP, overflowing on + `phi`; the concentration underflowed for near-extinct genotypes, giving + NaN gradients). Rerun needed, `lncfu` arms included (the Hessian bug + also loosened their `k_scale`). The one finished `counts` mixture run + found lambda 0.027 at a true 0 (the `lncfu` mixture found ~0.12). - [ ] **7b. Growth regime: test, choose, purge** (N). The `growth_transition` components (`instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop`) were unconstrained by the data diff --git a/planning/studies/count-likelihood/.gitignore b/planning/studies/count-likelihood/.gitignore new file mode 100644 index 00000000..299cf2be --- /dev/null +++ b/planning/studies/count-likelihood/.gitignore @@ -0,0 +1 @@ +count_likelihood diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md index a766f5c5..00ecbfda 100644 --- a/planning/studies/count-likelihood/README.md +++ b/planning/studies/count-likelihood/README.md @@ -72,10 +72,44 @@ Repository paths only: `grid.yaml`, `run.srun`, ## Commit -Not yet run. A local smoke run of one `realistic`/`counts`/`mixture` run with -3 epochs completed every pipeline step (2026-09-26); it checks plumbing, not -results. +First run: commit 775f8b7 (2026-09-26/27). Rerun after the two fixes below +(this branch, 2026-09-27); give the rerun its own `--out_prefix`. ## Results -Pending. +**First run (775f8b7): 11 of the 12 `counts` runs failed; not usable for +the comparison.** All 12 `lncfu` runs and one `counts` run +(`poisson`/seed 2/`mixture`) finished. + +- 8 `counts` runs crashed at the fit on a NaN `k_scale` written by the + pre-fit. Cause: `RunInference.compute_hessian_sigmas` took the constrained + MAP values it was given as unconstrained, so every positive site was + evaluated at `exp(value)`; the count likelihood's `growth_phi` (MAP 49 + from the calibration model's misfit, dk_geno fixed at 0) became e^49 and + overflowed. Reproduced from `run_0003`'s saved MAP; fixed. The same bug + loosened the `lncfu` arms' pre-fit `k_scale` (0.0028 written against + k sigmas of 0.0003-0.0007 at the right point, which the 0.002 floor + now overrides), so the `lncfu` arms need the rerun too. +- 3 `counts` runs (`poisson` seeds 2 and 3) went NaN within 250 SVI steps + after the pre-MAP. Cause: the negative binomial's concentration `mu / phi` + underflows float32 for genotypes predicted near extinction (all-zero + genotypes drift there), and the gradient goes NaN. Reproduced by + replaying `run_0007`'s pre-MAP hand-off (NaN by step 250); with the + concentration floor (`c + e^-30`) the same replay runs normally. +- The one finished `counts` run (true lambda 0, prior 0.357 +/- 0.05) + found lambda 0.027 (95% 0.026-0.028): far from the prior and well below + the ~0.12 the `lncfu` mixture found at true lambda 0 in the congression + study, as the floor hypothesis predicts; one run, and the interval is + overconfident. Its theta RMSE was 0.054 against 0.10 for the `lncfu` + arms at the same noise. +- `lncfu` arms, pooled theta 95% coverage (3 seeds each): `poisson` + 0.76 (`zero`) and 0.55 (`level`); `realistic` 0.82 (`zero`) and 0.68 + (`level`). The `level` offset narrows the theta intervals by about half + at the same RMSE, so it makes `lncfu` more overconfident, not less. + `growth_k` coverage is about 0 in every arm (intervals ~1e-4 wide, RMSE + 0.001): the pre-fit's k prior dominates. +- Counts runs start SVI at a much higher ELBO than `lncfu` (about 3e8 at + the pre-MAP point here): at 1e4-1e5 reads the likelihood is sharp and the + component guide's initial location scales (0.1) cost ~(0.1 mu)^2 / var per + observation. It falls as the scales shrink; a smaller + `--guide_init_scale` may suit counts fits if this slows convergence. diff --git a/src/tfscreen/tfmodel/generative/observe/growth_counts.py b/src/tfscreen/tfmodel/generative/observe/growth_counts.py index 48635017..ac96801c 100644 --- a/src/tfscreen/tfmodel/generative/observe/growth_counts.py +++ b/src/tfscreen/tfmodel/generative/observe/growth_counts.py @@ -163,13 +163,25 @@ def variance(self): return mu + mu*mu*jnp.exp(-self.log_c) +# Floor on the concentration, c + exp(_LOG_C_FLOOR). Without it c ~ mu / phi +# underflows float32 for genotypes predicted near extinction (log mu below +# about -40, which the MAP reaches for genotypes with zero reads everywhere: +# P(0) keeps rising as mu falls), and the gradient and Hessian of the log-pmf +# go to NaN (count-likelihood grid, 2026-09-27). It changes only rows whose +# expected reads are below ~phi * 1e-13, where P(0) is 1 either way and a +# nonzero count still pushes mu up. +_LOG_C_FLOOR = -30.0 + + def count_distribution(log_mu, phi, inv_r): """ Negative binomial with mean ``exp(log_mu)`` and variance - ``mu (1 + phi) + mu^2 inv_r``: concentration ``1 / (phi / mu + inv_r)``, - in log space so that very small means do not underflow. + ``mu (1 + phi) + mu^2 inv_r``: concentration ``1 / (phi / mu + inv_r)`` + (plus a floor of ``exp(_LOG_C_FLOOR)``), in log space so that very small + means do not underflow. """ log_c = -jnp.logaddexp(jnp.log(phi) - log_mu, jnp.log(inv_r)) + log_c = jnp.logaddexp(log_c, _LOG_C_FLOOR) return CountNegativeBinomial(log_mu, log_c) diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index 079bf843..af441932 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -1742,8 +1742,10 @@ def _map_params_to_constrained(self, map_params): Parameters ---------- map_params : dict - Parameter dict from an AutoDelta guide state, keys follow the - ``{site}_auto_loc`` convention, values are in unconstrained space. + AutoDelta parameters in *unconstrained* space, keys following the + ``{site}_auto_loc`` convention: the optimizer state + (``svi.optim.get_params(svi_state.optim_state)``), not + ``svi.get_params``, which returns constrained values. Returns ------- @@ -1825,7 +1827,8 @@ def get_map_posteriors(self, ---------- map_params : dict Parameter dict from a MAP (AutoDelta) optimizer state, as - returned by ``svi.get_params(svi_state)``. Keys follow the + returned by ``svi.optim.get_params(svi_state.optim_state)`` (not + ``svi.get_params``, which constrains them). Keys follow the ``{site}_auto_loc`` convention; values are in unconstrained space. out_prefix : str Root name for the output file (written as @@ -1974,10 +1977,16 @@ def compute_hessian_sigmas(self, map_params, hessian_chunk_size=64): Parameters ---------- map_params : dict - Parameter dict from a MAP (AutoDelta) optimizer state, as - returned by ``svi.get_params(svi_state)``. Keys follow the - ``{site}_auto_loc`` convention; values are in unconstrained - space. + MAP (AutoDelta) parameters as returned by + ``svi.get_params(svi_state)`` (what ``run_optimization`` returns): + keys follow the ``{site}_auto_loc`` convention and values are in + *constrained* space (AutoDelta's ``_auto_loc`` params carry the + site's support, so ``get_params`` constrains them). They are + mapped to unconstrained space here, where the Hessian is taken. + (Until 2026-09-27 they were taken as already unconstrained, so + every positive site was evaluated at ``exp(value)``: the Hessian + of the pre-fit was taken at the wrong point, and overflowed on + the count likelihood's ``growth_phi``.) hessian_chunk_size : int, optional Number of Hessian rows to compute per device batch (default 64). Reduce if you hit device OOM during the Hessian computation. @@ -2002,16 +2011,32 @@ def compute_hessian_sigmas(self, map_params, hessian_chunk_size=64): full_data = self.model.get_batch(data_on_gpu, all_indices) model_kwargs = {"priors": self.model.priors, "data": full_data} - # Strip _auto_loc suffix → unconstrained site-level param dict - unconstrained = { + # Strip _auto_loc suffix → constrained site-level param dict + constrained = { k[: -len("_auto_loc")]: jnp.array(v) for k, v in map_params.items() if k.endswith("_auto_loc") } - if len(unconstrained) == 0: + if len(constrained) == 0: return {} + # Per-site bijection (unconstrained -> constrained) from a model + # trace; identity for real-valued supports. + seeded_model = seed(self.model.jax_model, rng_seed=0) + traced_model = trace(seeded_model) + model_trace = traced_model.get_trace(**model_kwargs) + site_transforms = { + name: biject_to(site["fn"].support) + for name, site in model_trace.items() + if site["type"] == "sample" and not site.get("is_observed", False) + } + unconstrained = { + name: (site_transforms[name].inv(v) if name in site_transforms + else v) + for name, v in constrained.items() + } + # Flatten to a single vector for Hessian computation. We need to # remember the per-site shapes / offsets so we can pull the # diagonal back into per-site sigma arrays. @@ -2043,17 +2068,6 @@ def pe_fn(flat_p): sigma_unconstrained = unravel(jnp.array(sigma_unconstrained_flat, dtype=flat_map.dtype)) - # Get the per-site bijection from a model trace. For unconstrained - # supports (Normal) this is the identity transform. - seeded_model = seed(self.model.jax_model, rng_seed=0) - traced_model = trace(seeded_model) - model_trace = traced_model.get_trace(**model_kwargs) - site_transforms = { - name: biject_to(site["fn"].support) - for name, site in model_trace.items() - if site["type"] == "sample" and not site.get("is_observed", False) - } - out = {} for name, x_unc in unconstrained.items(): transform = site_transforms.get(name) @@ -2139,7 +2153,8 @@ def get_laplace_posteriors(self, ---------- map_params : dict Parameter dict from a MAP (AutoDelta) optimizer state, as returned - by ``svi.get_params(svi_state)``. Keys follow the + by ``svi.optim.get_params(svi_state.optim_state)`` (not + ``svi.get_params``, which constrains them). Keys follow the ``{site}_auto_loc`` convention used by AutoDelta; values are in the unconstrained parameter space. out_prefix : str diff --git a/tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py b/tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py index ba36bcc1..22c4b537 100644 --- a/tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py +++ b/tests/tfscreen/tfmodel/generative/observe/test_observe_growth_counts.py @@ -143,3 +143,30 @@ def test_priors(): assert isinstance(p, GrowthCountsObsPriors) assert np.exp(p.phi_loc) == pytest.approx(5.0) assert np.exp(p.inv_r_loc) == pytest.approx(0.01) + + +@pytest.mark.parametrize("log_mu", [-200.0, -80.0, -40.0, 0.0, 14.0]) +@pytest.mark.parametrize("log_phi", [-15.0, 1.6, 10.0]) +@pytest.mark.parametrize("k", [0.0, 1.0, 30.0, 1e6]) +def test_finite_value_gradient_and_hessian(log_mu, log_phi, k): + # A genotype predicted near extinction (log mu << 0; the MAP of an + # all-zero genotype goes there) used to underflow the concentration + # mu / phi in float32 and turn the gradient and Hessian to NaN + # (count-likelihood grid, 2026-09-27). + def lp(p): + return count_distribution(p[0], jnp.exp(p[1]), jnp.exp(p[2])).log_prob( + jnp.float32(k)) + p = jnp.array([log_mu, log_phi, -4.6], dtype=jnp.float32) + assert np.isfinite(float(lp(p))) + assert np.all(np.isfinite(np.asarray(jax.grad(lp)(p)))) + assert np.all(np.isfinite(np.asarray(jax.hessian(lp)(p)))) + + +def test_concentration_floor_leaves_ordinary_rows_alone(): + # the floor (exp(-30)) is far below any concentration a real row has + mu, phi, inv_r = 0.01, 8.0, 0.05 + c = 1.0 / (phi / mu + inv_r) + k = np.arange(0, 5) + got = count_distribution(jnp.log(mu), phi, inv_r).log_prob(jnp.asarray(k, float)) + assert np.allclose(np.asarray(got), stats.nbinom.logpmf(k, c, c / (c + mu)), + atol=1e-5) diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index 9efc7899..4bc2487f 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -1256,3 +1256,37 @@ def test_write_epoch_checkpoint_atomic_no_tmp_left(tmpdir): tmp_path = os.path.join(ri._epoch_checkpoints_dir, "0000003_checkpoint.pkl.tmp") assert not os.path.exists(tmp_path) + + +# ============================================================================= +# compute_hessian_sigmas: takes constrained MAP values (svi.get_params) +# ============================================================================= + +def test_compute_hessian_sigmas_takes_constrained_values(): + """ + run_optimization returns svi.get_params(), which AutoDelta constrains. + compute_hessian_sigmas must map those back to unconstrained space; it + used to take them as unconstrained, so a positive site was evaluated at + exp(value) (the pre-fit's k_scale came out NaN on the count likelihood, + 2026-09-27). With s ~ LogNormal(1, 0.5), log s is Normal(1, 0.5): at the + MAP s = e the unconstrained sigma is 0.5 and the constrained one e / 2. + """ + def model(data, priors): + numpyro.sample("s", dist.LogNormal(1.0, 0.5)) + numpyro.sample("x", dist.Normal(0.0, 2.0)) + + m = MockModel(num_genotype=1) + m.jax_model = model + ri = RunInference(m, seed=0) + + # confirm what AutoDelta's get_params hands over + svi = ri.setup_svi(guide_type="delta", + init_values={"s": float(np.e), "x": 0.0}) + state = svi.init(ri.get_key(), data=m.data, priors=m.priors) + params = svi.get_params(state) + assert float(params["s_auto_loc"]) == pytest.approx(np.e, rel=1e-5) + + out = ri.compute_hessian_sigmas(params) + assert float(out["s"]["map"]) == pytest.approx(np.e, rel=1e-5) + assert float(out["s"]["sigma"]) == pytest.approx(np.e * 0.5, rel=1e-3) + assert float(out["x"]["sigma"]) == pytest.approx(2.0, rel=1e-3) From 740ebc1977eed7ab43391fd098e2aed62802b246 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sun, 27 Sep 2026 12:42:19 -0700 Subject: [PATCH 057/208] Pool stalled windows before cutting; overflow-safe horseshoe Two failures in the second count-likelihood grid, neither in the likelihood. The convergence monitor cut the step size after `patience` windows each without a significant loss trend, even when together they were clearly still falling. Replaying all 23 finished runs' loss traces, 20 made their first cut mid-descent (pooled t 4.4-14.2); run 0012 was cut into a wrong optimum at twice its twin's ELBO. Before a cut or a stop the monitor now fits one line through the block medians of all stalled windows (convergence.pooled_loss_trend) and starts the count over if that is a significant descent. The 3 real plateaus are still cut. New pooled_loss_t column in the convergence CSV; checkpoints carry the stalled windows. Fits spend longer at the large step size. The slab-regularized horseshoe scale and numpyro's HalfCauchy log density both square the local scale; for low-read doubles hill_mut's guide local scales widened until a draw near 1e20 overflowed float32 and the fit went NaN (run 0007). New components/_horseshoe.py (regularized_scale, HalfCauchy via hypot), used by every horseshoe component (hill_mut, horseshoe_mut, thermo horseshoe/PK/PnnC/PddG); same values, no overflow. A replay of run 0007 from its step-12,000 checkpoint, which went NaN at 12,370, now runs clean. Tests: helper equivalence and tail finiteness; pooled check on synthetic descents, plateaus, the floor and a resume; run 0012's recorded trace is no longer cut. Full unit suite passes. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 20 ++++ CLAUDE.md | 6 +- planning/analysis-roadmap.md | 10 ++ planning/studies/count-likelihood/.gitignore | 2 +- planning/studies/count-likelihood/README.md | 76 ++++++++++++++- .../generative/components/_horseshoe.py | 46 +++++++++ .../components/activity/horseshoe_mut.py | 19 ++-- .../generative/components/theta/hill_mut.py | 15 +-- .../theta/thermo/O2_C12_K5_U0_a/PK.py | 17 ++-- .../theta/thermo/O2_C12_K5_U0_a/PddG.py | 3 +- .../theta/thermo/O2_C12_K5_U0_a/PnnC.py | 3 +- .../theta/thermo/O2_C12_K5_U1_a/PK.py | 17 ++-- .../theta/thermo/O2_C12_K5_U1_a/PddG.py | 3 +- .../theta/thermo/O2_C12_K5_U1_a/PnnC.py | 3 +- .../theta/thermo/O2_C4_K3_U0_a/PK.py | 13 +-- .../theta/thermo/O2_C4_K3_U0_a/PddG.py | 3 +- .../theta/thermo/O2_C4_K3_U0_a/PnnC.py | 3 +- .../theta/thermo/O2_C4_K3_U1_a/PK.py | 13 +-- .../theta/thermo/O2_C4_K3_U1_a/PddG.py | 3 +- .../theta/thermo/O2_C4_K3_U1_a/PnnC.py | 3 +- .../components/theta/thermo/horseshoe.py | 7 +- src/tfscreen/tfmodel/inference/convergence.py | 91 +++++++++++++++++- .../tfmodel/inference/run_inference.py | 2 +- .../generative/components/test_horseshoe.py | 61 ++++++++++++ .../sim_svi_counts_noisy_descent_run0012.npy | Bin 0 -> 88128 bytes .../tfmodel/inference/test_convergence.py | 65 +++++++++++++ .../inference/test_run_optimization.py | 4 +- 27 files changed, 442 insertions(+), 66 deletions(-) create mode 100644 src/tfscreen/tfmodel/generative/components/_horseshoe.py create mode 100644 tests/tfscreen/tfmodel/generative/components/test_horseshoe.py create mode 100644 tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_counts_noisy_descent_run0012.npy diff --git a/CHANGELOG.md b/CHANGELOG.md index 37bc6462..73284638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -417,6 +417,26 @@ fall into two kinds: ### Fixed +- **Step-size cuts during a slow descent.** The convergence monitor cut the + step size after `patience` windows each without a significant loss trend, + even when those windows together were clearly still falling: on the + count-likelihood v2 grid, 20 of 23 runs made their first cut mid-descent + (pooled t = 4-14), and one (run 0012) was cut into a wrong optimum at + twice its twin's ELBO. Before a cut or a stop the monitor now fits one + line through all the stalled windows (`convergence.pooled_loss_trend`) and + starts the count over if that is a significant descent. Fits spend longer + at the large step size; more may reach `max_num_epochs`. New + `pooled_loss_t` column in `{out_prefix}_convergence.csv`; checkpoints + carry the stalled windows. +- **NaN from horseshoe priors far in the tail.** The slab-regularized + horseshoe scale `sqrt(c2 lam^2 / (c2 + tau^2 lam^2))` and numpyro's + HalfCauchy log density both square the local scale; a draw near 1e20 + overflowed float32 and turned the fit to NaN (hill_mut epistasis for + low-read doubles, whose guide local scales widened to ~11 in log space; + count-likelihood v2 run 0007). New `components/_horseshoe.py` + (`regularized_scale`, a `HalfCauchy` with a `hypot`-based log density), + used by hill_mut, activity `horseshoe_mut`, `thermo/horseshoe.py` and the + thermo `PK`/`PnnC`/`PddG` variants; same values, no overflow. - **`tfs-prefit-calibration` took its Hessian at the wrong point.** `RunInference.compute_hessian_sigmas` treated the MAP values it was given as unconstrained, but its caller passes `svi.get_params(...)`, which diff --git a/CLAUDE.md b/CLAUDE.md index 3ae05801..3f063fc8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -157,7 +157,9 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi 7. A new `dk_geno` or `activity` component must accept `return_population=False` in `define_model` and `guide` and, when True, return `(tensor, population)`: the library-ordered per-genotype values from the same draw, or `None` if the latents arrived batch-sized. Build both with `generative/components/_population.py::per_genotype` (default path = the old slice-then-compute, so no extra cost when not requested). The congression mixture looks co-resident genotypes up in these by library index; `tests/tfscreen/tfmodel/generative/components/test_component_population.py` checks every registered variant. -8. Guide sites should follow the `{site}_loc(s)` / `{site}_scale(s)` naming convention (a Normal or LogNormal guide whose location/scale params are named after the site). The MAP warm-up hands its solution to the component guide through it (`inference/initialization.py`); `tests/tfscreen/tfmodel/inference/test_initialization.py::test_component_guides_follow_loc_scale_convention` fails for a new variant that does not, unless it is added to `_KNOWN_UNMAPPED` with a reason. +8. Horseshoe priors use `components/_horseshoe.py`: its `HalfCauchy` (log density via `hypot`, finite far in the tail) and `regularized_scale(lam, tau, c2)` (the slab-regularized `sqrt(c2 lam^2 / (c2 + tau^2 lam^2))` without squaring `lam`). Never write `lam ** 2` there: a mean-field guide can widen a local scale until a draw near 1e20 squares to inf, and the whole fit goes NaN (count-likelihood grid v2, run 0007, hill_mut epistasis on low-read doubles). + +9. Guide sites should follow the `{site}_loc(s)` / `{site}_scale(s)` naming convention (a Normal or LogNormal guide whose location/scale params are named after the site). The MAP warm-up hands its solution to the component guide through it (`inference/initialization.py`); `tests/tfscreen/tfmodel/inference/test_initialization.py::test_component_guides_follow_loc_scale_convention` fails for a new variant that does not, unless it is added to `_KNOWN_UNMAPPED` with a reason. (This applies to `components/` categories. `generative/observe/` is not a `/` registry entry — see above.) @@ -168,7 +170,7 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi - **Loss test** (`loss_trend`): OLS line through the medians of 20 blocks of the window's per-step losses → drop per window ± SE. *Improving* iff `drop > z·SE` and `drop > loss_rtol·|loss|`. Judged against the loss's own noise: never against the start-up transient (the old rule's `|Δ|/(loss_start − loss_best)` stopped runs ~500× above their final loss and never stopped after a resume) nor against `|loss|` (the rule before that, which never fired on a noisy ELBO). A rising or oscillating loss is *not* improving. - **Loss skew** (`loss_skew`, reported by `loss_trend`): `(mean − median) / (1.4826·MAD)` of the window's losses about the trend line. Medians hide rare huge penalties that dominate the mean (the objective); benign ELBO noise, skewed or heavy-tailed, stays < ~1 (all recorded clean traces ≤ 0.4), rare penalties give 10–40. At the floor a window with skew > `MAX_LOSS_SKEW` (3) is not a plateau; skew never forces a cut (a smaller step size does not remove penalties). Blind once penalized steps are the majority (median and MAD follow them) — then the loss level shows it instead. - **Parameter test** (`param_drift`): each tracked param's block means (accumulated on the device inside the `lax.scan` carry — no per-step host transfer) → per-element trend over the window, in **normalizer** units (`RunInference._param_normalizer_specs`): paired guide scale for a location (`_loc`/`_locs`/`_auto_loc` ↔ `_scale`/`_scales`/`_auto_scale`; the posterior SD), derived SD for AutoContinuous `auto_loc`, prior SD for an AutoDelta location on a real site, and 1 for positive/bounded params (log/logit units, so relative). Excess = `|drift| − z·SE − floor`, where `floor = MIN_STEP_COHERENCE (0.01) · step_size · window` is the optimizer's resolution (Adam moves ~step size per step whatever the gradient; without the floor, jitter of a location whose guide scale collapsed below the step size reads as hundreds of SDs of drift). The posterior SD is floored at `PRIOR_SD_FLOOR` (0.01) × the site's prior SD in the location's unconstrained units (`initialization.site_unconstrained_prior_sds`: exact SD for real sites, robust MC `IQR/1.349` of prior draws otherwise; `RunInference._posterior_sd_floors` maps component-guide locations via `{site}_loc(s)`, AutoNormal via `{site}_auto_loc`, and AutoContinuous `auto_loc` via numpyro's `_ravel_dict` latent order): the mean-field component guide collapses hierarchical scales' guide SDs to ~4e-4 (hill_mut `theta_sigma_d_*_scale`, `theta_epi_tau_scale`), and in those units a negligible creep never settles. Summarized per array (max if ≤ 100 elements, else 99th percentile); *moving* iff any summary > `param_tolerance` (0.05). `scale_tril`/`cov_factor` are not tracked. -- **Decisions** (`ConvergenceMonitor.end_window`): above the floor step size, `patience` consecutive windows without loss improvement → cut (`step_size_cut`, default 0.1). **Parameters and skew never block a cut**: some directions never settle (a horseshoe local scale's MAP drifts to 0 forever at ~no loss change) and holding the step size high for them only wastes time. At `final_step_size`, `patience` consecutive windows with no loss improvement, no parameter movement and no loss skew → converged; a still-moving parameter or a skewed loss keeps the run going and is named in the log, so a slide, degenerate direction or hidden penalty is reported, never called converged. `max_num_epochs` is only a cap. A hierarchical MAP generally has no finite optimum (hyper-scale funnel), so MAP/pre-MAP runs often end at the cap — the honest outcome. +- **Decisions** (`ConvergenceMonitor.end_window`): above the floor step size, `patience` consecutive windows without loss improvement → cut (`step_size_cut`, default 0.1), unless the stalls pooled are a descent: before a cut or a stop, `pooled_loss_trend` fits one line through the block medians of all `patience` stalled windows (same `z`/`loss_rtol`), and a significant drop resets the stall count (`pooled_loss_t` in the convergence CSV; the stalled windows' medians are kept in checkpoints). A single window misses a slow, noisy descent: on the count-likelihood v2 grid, 20 of 23 first cuts came during a descent that pooled to t = 4-14, one (run 0012) into a wrong optimum (`loss_traces/sim_svi_counts_noisy_descent_run0012.npy`). **Parameters and skew never block a cut**: some directions never settle (a horseshoe local scale's MAP drifts to 0 forever at ~no loss change) and holding the step size high for them only wastes time. At `final_step_size`, `patience` consecutive windows with no loss improvement, no parameter movement and no loss skew → converged; a still-moving parameter or a skewed loss keeps the run going and is named in the log, so a slide, degenerate direction or hidden penalty is reported, never called converged. `max_num_epochs` is only a cap. A hierarchical MAP generally has no finite optimum (hyper-scale funnel), so MAP/pre-MAP runs often end at the cap — the honest outcome. - **Optimizer** (`run_inference.adam_optimizer`): plain numpyro `Adam` by default; `adam_clip_norm` (every CLI and `setup_svi`) opts into `ClippedAdam`. **Do not re-enable clipping by default.** `ClippedAdam` clips each gradient *element* to ±`clip_norm`; these losses have gradients of 1e3–1e6 per element, so every element is clipped every step and Adam follows each draw's gradient *sign* — its fixed point is where the per-draw signs balance, not where the expected gradient is zero. With a heavy-tailed ELBO (step-like binding curve M42C/K84N, `hill_n` 24.6, measured with SD 0.001; a guide draw crossing it costs ~2.4e5 nats) that held 5–90% of draws in violation on every congression-calibration run (2026-09-25; the "blow-ups" were block medians flipping once the rate passed 50%, and step-size cuts cannot move a sign-balance point). Unclipped, the same fits drop to ~0 violations and converge (`planning/studies/congression-calibration/diagnosis/`). The two optimizers share their state, so old checkpoints resume unclipped. - **Step-size cuts** swap `svi.optim` for a new optimizer of the same kind (clipped or not, read off the current `svi.optim`) at the smaller constant step (the optimizer state is step-size independent) and re-trace the scan (a fresh closure, so no stale compiled step size). `setup_svi` records `_step_size`/`_adam_clip_norm` (the latter written to checkpoints); a step-size *schedule* is still accepted but refuses cuts. The old `optax.exponential_decay` over `max_num_epochs` is gone (it collapsed the pre-MAP's step size within its 1000 epochs and tied resumes to `max_num_epochs`). - **Records**: `{out_prefix}_convergence.csv` (one row per window: loss (median), drop ± SE, t, `loss_mean`/`loss_skew`/`loss_skewed`, worst param and its excess/drift, step size, plateau count, decision; a resume rewrites an older file under the current columns, `_migrate_convergence_columns`); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 494e914e..53bac2cb 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -532,6 +532,16 @@ step 7. NaN gradients). Rerun needed, `lncfu` arms included (the Hessian bug also loosened their `k_scale`). The one finished `counts` mixture run found lambda 0.027 at a true 0 (the `lncfu` mixture found ~0.12). + Second run (2026-09-27, 23 of 24 finished): counts cuts theta RMSE by a + third to two thirds against `lncfu`, at coverage close to `lncfu`/`zero` + (all arms still under-cover, 0.66-0.81 at 95%); lambda at a true 0 is + 0.02-0.06 (not ~0.12), with intervals that exclude 0. Two failures + outside the likelihood: hill_mut's horseshoe local scales widen for + low-read doubles until a draw overflows (NaN), and a premature step-size + cut during a noisy descent (one wrong fit). Both fixed (overflow-safe + horseshoe helpers; pooled check of stalled windows before a cut, which + would have kept 20 of 23 v2 runs from cutting mid-descent). A third run + is needed. Details: `planning/studies/count-likelihood/README.md`. - [ ] **7b. Growth regime: test, choose, purge** (N). The `growth_transition` components (`instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop`) were unconstrained by the data diff --git a/planning/studies/count-likelihood/.gitignore b/planning/studies/count-likelihood/.gitignore index 299cf2be..b8072a76 100644 --- a/planning/studies/count-likelihood/.gitignore +++ b/planning/studies/count-likelihood/.gitignore @@ -1 +1 @@ -count_likelihood +count_likelihood* diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md index 00ecbfda..79ead132 100644 --- a/planning/studies/count-likelihood/README.md +++ b/planning/studies/count-likelihood/README.md @@ -72,11 +72,83 @@ Repository paths only: `grid.yaml`, `run.srun`, ## Commit -First run: commit 775f8b7 (2026-09-26/27). Rerun after the two fixes below -(this branch, 2026-09-27); give the rerun its own `--out_prefix`. +First run: commit 775f8b7 (2026-09-26/27), results in `count_likelihood/`. +Second run: commit c65390aa (2026-09-27), results in `count_likelihood_v2/` +(neither is committed). ## Results +**Second run (`count_likelihood_v2`, commit c65390aa, 2026-09-27): the +count likelihood is clearly more accurate; two failures remain, neither in +the likelihood itself.** 23 of 24 runs finished; 18 stopped on the +convergence rule, 5 at the epoch cap (3 `counts`, 2 `lncfu`/`level`). + +Pooled theta (test genotypes), mean over seeds: + +| noise | fit | 95% coverage | 95% width | RMSE | +|---|---|---|---|---| +| poisson | lncfu / zero | 0.76 | 0.157 | 0.101 | +| poisson | lncfu / level | 0.56 | 0.076 | 0.100 | +| poisson | counts / level / single (2 runs) | 0.70 | 0.068 | 0.037 | +| poisson | counts / level / mixture (seeds 1, 2) | 0.66 | 0.072 | 0.047 | +| realistic | lncfu / zero | 0.81 | 0.207 | 0.114 | +| realistic | lncfu / level | 0.68 | 0.140 | 0.110 | +| realistic | counts / level / single | 0.78 | 0.153 | 0.073 | +| realistic | counts / level / mixture | 0.78 | 0.155 | 0.074 | + +- **Accuracy.** Counts cut theta RMSE by a third (realistic) to two thirds + (poisson) against either `lncfu` arm, with coverage close to `lncfu`/ + `zero` and better than `lncfu`/`level`. dk_geno RMSE also falls + (poisson single: 0.0003 against 0.002). Every arm still under-covers + (0.66-0.81 at 95%): the overconfidence is not the likelihood's. +- **Lambda at a true 0** (prior 0.357 +/- 0.05): 0.023 and 0.027 + (poisson), 0.054-0.064 (realistic), against ~0.12 for the `lncfu` + mixture in the congression study. Counts removes most of the spurious + lambda but not all, and the intervals (width ~0.01) exclude 0. The + mixture arms lose nothing against `single` on theta. +- **Dispersion.** poisson: phi 0.03-0.06, inv_r 0.0014 (Poisson, as + simulated). realistic: phi 27-29, inv_r 0.007, i.e. ~29x Poisson, + well above the ~8x the arm was designed for (real data: 5-18x); the + realistic arm is noisier than intended. +- **`sample_offset` level SD ~0.36 in every count run**, poisson included: + the base config's `tube_noise_sigma` (0.002/min over ~230 min, ~0.4 ln + units) shifts each tube's genotypes and its supplied total together, and + the model's predictions carry no tube term; the offset absorbs it, as + intended until step 6. The same explains `lncfu`/`level` under-covering: + in `lncfu`/`zero` the `normal_kt` row noise soaked up this tube noise and + with it the understated `ln_cfu` noise; the structural offset removes that + cover and the intervals halve at the same RMSE. +- **`growth_k` coverage ~0 in every arm** (95% widths ~1e-4 against RMSE + ~1e-3): the pre-fit's k pin, not the likelihood. +- **Failure 1, `run_0007` (poisson, seed 2, counts, single): NaN at step + ~12,400.** Not the likelihood: hill_mut's horseshoe local scales for the + lowest-read doubles (200-800 reads over all tubes, mostly zeros under + selection; typical doubles 3,600-200,000) widened (guide LogNormal scale + up to 11.5 on 41 elements; every other run stays at ~1.5), because beyond + saturation theta, and so the likelihood, no longer changes, while the + half-Cauchy tail is heavy. A draw of ~e^90 overflows float32 and the + epistasis term, theta, growth and the likelihood go NaN. Reproduced by + replaying from the step-12,000 checkpoint. +- **Failure 2, `run_0012` (poisson, seed 3, counts, mixture): converged to + a wrong answer** (theta RMSE 0.51; m shrunk to ~40% and 4CP's m of the + wrong sign; ELBO 5.4e5 against 2.6e5 for the same-sized seed-2 mixture; + its `single` twin on the same data is fine). The step size was cut at + step 20,000 during a noisy but steady descent: window-median losses fell + 1.5e5-1.9e5 per window, but each window's own trend was t = 1.9, 3.0, + 1.0, so three windows counted as a plateau. It also showed some lambda + widening (scales to 4.9), perhaps from the same low-read doubles. +- **Both fixed on this branch (2026-09-27).** Horseshoe: overflow-safe + `regularized_scale` and `HalfCauchy` (`components/_horseshoe.py`); a + replay of run_0007 from its step-12,000 checkpoint, which went NaN at step + 12,370 before, ran 3,000 steps clean. Convergence: before a cut or stop, + the stalled windows are pooled into one trend (`pooled_loss_trend`). + Replaying every v2 run's loss trace up to its first cut, 20 of 23 first + cuts were made mid-descent (pooled t 4.4-14.2; run_0012: 14.2) and would + now continue; the other 3 (pooled t -0.5 to 1.4) are still cut. So the + early cut was the norm, not a one-off, and the v2 fits (and the earlier + congression grids) mostly finished their fast phase at too small a step. + A third run with both fixes is needed; runs will be longer. + **First run (775f8b7): 11 of the 12 `counts` runs failed; not usable for the comparison.** All 12 `lncfu` runs and one `counts` run (`poisson`/seed 2/`mixture`) finished. diff --git a/src/tfscreen/tfmodel/generative/components/_horseshoe.py b/src/tfscreen/tfmodel/generative/components/_horseshoe.py new file mode 100644 index 00000000..c2ca3c7f --- /dev/null +++ b/src/tfscreen/tfmodel/generative/components/_horseshoe.py @@ -0,0 +1,46 @@ +""" +Overflow-safe pieces of the regularized horseshoe prior. + +The horseshoe components (theta ``hill_mut``, the thermo ``PK``/``PnnC``/ +``PddG`` variants and ``thermo/horseshoe.py``, activity ``horseshoe_mut``) +draw local scales ``lambda ~ HalfCauchy`` and use the slab-regularized scale + + lambda_tilde = sqrt(c2 lambda^2 / (c2 + tau^2 lambda^2)). + +Both were written with ``lambda ** 2``. The half-Cauchy tail is heavy and, +where the data stop constraining an effect (a theta already saturated), a +mean-field guide can widen a local scale's LogNormal until a draw reaches +~1e20; its square overflows float32, ``lambda_tilde`` becomes inf / inf = +NaN, the half-Cauchy log density becomes -inf, and the whole fit goes NaN +(count-likelihood grid, run_0007, 2026-09-27). The forms here use +``jnp.hypot``, which does not overflow, and give the same values. +""" + +import jax.numpy as jnp +import numpyro.distributions as dist + + +def regularized_scale(lam, tau, c2): + """ + ``sqrt(c2 lam^2 / (c2 + tau^2 lam^2))`` without squaring ``lam``. + + Written as ``lam / hypot(1, tau lam / sqrt(c2))``: it tends to + ``sqrt(c2) / tau`` as ``lam`` grows, and equals ``lam`` at ``tau = 0`` + (epistasis switched off) with finite gradients. + """ + return lam / jnp.hypot(1.0, tau * lam / jnp.sqrt(c2)) + + +class HalfCauchy(dist.HalfCauchy): + """ + numpyro's HalfCauchy with a log density that does not overflow: + ``log1p(z^2)`` is computed as ``2 log hypot(1, z)``. numpyro's returns + -inf (and NaN gradients) once ``(x / scale)^2`` exceeds float32. + """ + + def log_prob(self, value): + if self._validate_args: + self._validate_sample(value) + z = value / self.scale + return (jnp.log(2.0 / jnp.pi) - jnp.log(self.scale) + - 2.0 * jnp.log(jnp.hypot(1.0, z))) diff --git a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py index c328ad14..4e7d1545 100644 --- a/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py +++ b/src/tfscreen/tfmodel/generative/components/activity/horseshoe_mut.py @@ -27,6 +27,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale, HalfCauchy import pandas as pd from flax.struct import dataclass from typing import Dict, Any @@ -83,18 +84,18 @@ def define_model(name: str, # ------------------------------------------------------------------ tau_d = pyro.sample( f"{name}_d_tau", - dist.HalfCauchy(priors.activity_d_tau_scale)) + HalfCauchy(priors.activity_d_tau_scale)) c2_d = pyro.sample( f"{name}_d_c2", dist.InverseGamma(priors.activity_d_slab_df / 2.0, priors.activity_d_slab_df * priors.activity_d_slab_scale ** 2 / 2.0)) with pyro.plate(f"{name}_mutation_plate", num_mut, dim=-1): - lambda_d = pyro.sample(f"{name}_d_lambda", dist.HalfCauchy(1.0)) + lambda_d = pyro.sample(f"{name}_d_lambda", HalfCauchy(1.0)) d_offset = pyro.sample(f"{name}_d_offset", dist.Normal(0.0, 1.0)) # Regularised local scale, then non-centred delta (symmetric about 0) - lambda_d_tilde = jnp.sqrt(c2_d * lambda_d ** 2 / (c2_d + tau_d ** 2 * lambda_d ** 2)) + lambda_d_tilde = regularized_scale(lambda_d, tau_d, c2_d) d_log_activity = d_offset * tau_d * lambda_d_tilde # [num_mutation] pyro.deterministic(f"{name}_d_log_activity", d_log_activity) @@ -111,18 +112,17 @@ def define_model(name: str, tau_epi = pyro.sample( f"{name}_epi_tau", - dist.HalfCauchy(priors.activity_epi_tau_scale)) + HalfCauchy(priors.activity_epi_tau_scale)) c2_epi = pyro.sample( f"{name}_epi_c2", dist.InverseGamma(priors.activity_epi_slab_df / 2.0, priors.activity_epi_slab_df * priors.activity_epi_slab_scale ** 2 / 2.0)) with pyro.plate(f"{name}_pair_plate", num_pair, dim=-1): - lambda_epi = pyro.sample(f"{name}_epi_lambda", dist.HalfCauchy(1.0)) + lambda_epi = pyro.sample(f"{name}_epi_lambda", HalfCauchy(1.0)) epi_offset = pyro.sample(f"{name}_epi_offset", dist.Normal(0.0, 1.0)) - lambda_epi_tilde = jnp.sqrt( - c2_epi * lambda_epi ** 2 / (c2_epi + tau_epi ** 2 * lambda_epi ** 2)) + lambda_epi_tilde = regularized_scale(lambda_epi, tau_epi, c2_epi) epi_log_activity = epi_offset * tau_epi * lambda_epi_tilde # [num_pair] pyro.deterministic(f"{name}_epi_log_activity", epi_log_activity) log_activity = log_activity + apply_pair_matrix( @@ -180,7 +180,7 @@ def guide(name: str, d_offset = pyro.sample(f"{name}_d_offset", dist.Normal(d_offset_locs, d_offset_scales)) - lambda_d_tilde = jnp.sqrt(c2_d * lambda_d ** 2 / (c2_d + tau_d ** 2 * lambda_d ** 2)) + lambda_d_tilde = regularized_scale(lambda_d, tau_d, c2_d) d_log_activity = d_offset * tau_d * lambda_d_tilde log_activity = apply_mut_matrix( d_log_activity, mut_nnz_mut_idx, mut_nnz_geno_idx, data.num_genotype) @@ -216,8 +216,7 @@ def guide(name: str, epi_offset = pyro.sample(f"{name}_epi_offset", dist.Normal(epi_offset_locs, epi_offset_scales)) - lambda_epi_tilde = jnp.sqrt( - c2_epi * lambda_epi ** 2 / (c2_epi + tau_epi ** 2 * lambda_epi ** 2)) + lambda_epi_tilde = regularized_scale(lambda_epi, tau_epi, c2_epi) epi_log_activity = epi_offset * tau_epi * lambda_epi_tilde log_activity = log_activity + apply_pair_matrix( epi_log_activity, pair_nnz_pair_idx, pair_nnz_geno_idx, data.num_genotype) diff --git a/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py b/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py index 0445c935..877e7f6f 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py +++ b/src/tfscreen/tfmodel/generative/components/theta/hill_mut.py @@ -30,6 +30,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale, HalfCauchy import pandas as pd from flax.struct import dataclass, field from typing import Dict, Any, Optional, Union @@ -314,7 +315,7 @@ def define_model(name: str, # Shared global scale and slab variance across all Hill parameters tau_epi = pyro.sample( f"{name}_epi_tau", - dist.HalfCauchy(priors.theta_epi_tau_scale)) + HalfCauchy(priors.theta_epi_tau_scale)) c2_epi = pyro.sample( f"{name}_epi_c2", dist.InverseGamma(priors.theta_epi_slab_df / 2.0, @@ -324,19 +325,19 @@ def define_model(name: str, with pyro.plate(f"{name}_titrant_pair_outer_plate", T, dim=-2): with pyro.plate(f"{name}_pair_plate", num_pair, dim=-1): epi_low_lam = pyro.sample( - f"{name}_epi_logit_low_lambda", dist.HalfCauchy(1.0)) + f"{name}_epi_logit_low_lambda", HalfCauchy(1.0)) epi_low_off = pyro.sample( f"{name}_epi_logit_low_offset", dist.Normal(0.0, 1.0)) epi_delta_lam = pyro.sample( - f"{name}_epi_logit_delta_lambda", dist.HalfCauchy(1.0)) + f"{name}_epi_logit_delta_lambda", HalfCauchy(1.0)) epi_delta_off = pyro.sample( f"{name}_epi_logit_delta_offset", dist.Normal(0.0, 1.0)) epi_K_lam = pyro.sample( - f"{name}_epi_log_hill_K_lambda", dist.HalfCauchy(1.0)) + f"{name}_epi_log_hill_K_lambda", HalfCauchy(1.0)) epi_K_off = pyro.sample( f"{name}_epi_log_hill_K_offset", dist.Normal(0.0, 1.0)) epi_n_lam = pyro.sample( - f"{name}_epi_log_hill_n_lambda", dist.HalfCauchy(1.0)) + f"{name}_epi_log_hill_n_lambda", HalfCauchy(1.0)) epi_n_off = pyro.sample( f"{name}_epi_log_hill_n_offset", dist.Normal(0.0, 1.0)) else: @@ -358,7 +359,7 @@ def define_model(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) epi_logit_low = epi_low_off * tau_epi * _lam_tilde(epi_low_lam) # [T, P] epi_logit_delta = epi_delta_off * tau_epi * _lam_tilde(epi_delta_lam) @@ -621,7 +622,7 @@ def guide(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) logit_theta_low = logit_theta_low + pair_scatter(epi_low_off * tau_epi * _lam_tilde(epi_low_lam)) logit_theta_delta = logit_theta_delta + pair_scatter(epi_delta_off * tau_epi * _lam_tilde(epi_delta_lam)) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py index 49a1062f..3d5701a6 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PK.py @@ -37,6 +37,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale, HalfCauchy import pandas as pd from flax.struct import dataclass from functools import partial @@ -255,7 +256,7 @@ def define_model(name: str, tau_epi = pyro.sample( f"{name}_epi_tau", - dist.HalfCauchy(priors.theta_epi_tau_scale)) + HalfCauchy(priors.theta_epi_tau_scale)) c2_epi = pyro.sample( f"{name}_epi_c2", dist.InverseGamma(priors.theta_epi_slab_df / 2.0, @@ -263,19 +264,19 @@ def define_model(name: str, # Scalar K_h_l, K_h_o, K_l_o: (num_pair,) each with pyro.plate(f"{name}_pair_scalar_plate", num_pair, dim=-1): - epi_K_h_l_lam = pyro.sample(f"{name}_epi_ln_K_h_l_lambda", dist.HalfCauchy(1.0)) + epi_K_h_l_lam = pyro.sample(f"{name}_epi_ln_K_h_l_lambda", HalfCauchy(1.0)) epi_K_h_l_off = pyro.sample(f"{name}_epi_ln_K_h_l_offset", dist.Normal(0.0, 1.0)) - epi_K_h_o_lam = pyro.sample(f"{name}_epi_ln_K_h_o_lambda", dist.HalfCauchy(1.0)) + epi_K_h_o_lam = pyro.sample(f"{name}_epi_ln_K_h_o_lambda", HalfCauchy(1.0)) epi_K_h_o_off = pyro.sample(f"{name}_epi_ln_K_h_o_offset", dist.Normal(0.0, 1.0)) - epi_K_l_o_lam = pyro.sample(f"{name}_epi_ln_K_l_o_lambda", dist.HalfCauchy(1.0)) + epi_K_l_o_lam = pyro.sample(f"{name}_epi_ln_K_l_o_lambda", HalfCauchy(1.0)) epi_K_l_o_off = pyro.sample(f"{name}_epi_ln_K_l_o_offset", dist.Normal(0.0, 1.0)) # T-dimensional K_h_e, K_l_e: (T, num_pair) each with pyro.plate(f"{name}_titrant_epi_outer_plate", T, dim=-2): with pyro.plate(f"{name}_pair_plate", num_pair, dim=-1): - epi_K_h_e_lam = pyro.sample(f"{name}_epi_ln_K_h_e_lambda", dist.HalfCauchy(1.0)) + epi_K_h_e_lam = pyro.sample(f"{name}_epi_ln_K_h_e_lambda", HalfCauchy(1.0)) epi_K_h_e_off = pyro.sample(f"{name}_epi_ln_K_h_e_offset", dist.Normal(0.0, 1.0)) - epi_K_l_e_lam = pyro.sample(f"{name}_epi_ln_K_l_e_lambda", dist.HalfCauchy(1.0)) + epi_K_l_e_lam = pyro.sample(f"{name}_epi_ln_K_l_e_lambda", HalfCauchy(1.0)) epi_K_l_e_off = pyro.sample(f"{name}_epi_ln_K_l_e_offset", dist.Normal(0.0, 1.0)) else: pair_scatter = None @@ -297,7 +298,7 @@ def define_model(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) epi_ln_K_h_l = epi_K_h_l_off * tau_epi * _lam_tilde(epi_K_h_l_lam) # (P,) epi_ln_K_h_o = epi_K_h_o_off * tau_epi * _lam_tilde(epi_K_h_o_lam) # (P,) @@ -490,7 +491,7 @@ def guide(name: str, c2_epi = pyro.sample(f"{name}_epi_c2", dist.LogNormal(c2_epi_loc, c2_epi_scale)) def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) # Scalar K_h_l epistasis: (num_pair,) epi_K_h_l_lam_locs = pyro.param(f"{name}_epi_ln_K_h_l_lambda_locs", jnp.zeros(num_pair)) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py index 232d24f8..308fa125 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PddG.py @@ -49,6 +49,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass @@ -429,7 +430,7 @@ def guide(name: str, ) def _lam_tilde(l): - return jnp.sqrt(c2_epi * l ** 2 / (c2_epi + tau_epi ** 2 * l ** 2)) + return regularized_scale(l, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) # (S, P) epi_ddG = epi_SP.T # (P, S) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py index dd862d5d..a7ea1ab4 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U0_a/PnnC.py @@ -58,6 +58,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass, field @@ -488,7 +489,7 @@ def guide(name: str, ) def _lam_tilde(l): - return jnp.sqrt(c2_epi * l ** 2 / (c2_epi + tau_epi ** 2 * l ** 2)) + return regularized_scale(l, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) # (S, P) epi_ddG = epi_SP.T # (P, S) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py index 49c79d2e..ee5fa500 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PK.py @@ -27,6 +27,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale, HalfCauchy import pandas as pd from flax.struct import dataclass from functools import partial @@ -257,7 +258,7 @@ def define_model(name: str, tau_epi = pyro.sample( f"{name}_epi_tau", - dist.HalfCauchy(priors.theta_epi_tau_scale)) + HalfCauchy(priors.theta_epi_tau_scale)) c2_epi = pyro.sample( f"{name}_epi_c2", dist.InverseGamma(priors.theta_epi_slab_df / 2.0, @@ -265,19 +266,19 @@ def define_model(name: str, # Scalar K_h_l, K_h_o, K_l_o: (num_pair,) each with pyro.plate(f"{name}_pair_scalar_plate", num_pair, dim=-1): - epi_K_h_l_lam = pyro.sample(f"{name}_epi_ln_K_h_l_lambda", dist.HalfCauchy(1.0)) + epi_K_h_l_lam = pyro.sample(f"{name}_epi_ln_K_h_l_lambda", HalfCauchy(1.0)) epi_K_h_l_off = pyro.sample(f"{name}_epi_ln_K_h_l_offset", dist.Normal(0.0, 1.0)) - epi_K_h_o_lam = pyro.sample(f"{name}_epi_ln_K_h_o_lambda", dist.HalfCauchy(1.0)) + epi_K_h_o_lam = pyro.sample(f"{name}_epi_ln_K_h_o_lambda", HalfCauchy(1.0)) epi_K_h_o_off = pyro.sample(f"{name}_epi_ln_K_h_o_offset", dist.Normal(0.0, 1.0)) - epi_K_l_o_lam = pyro.sample(f"{name}_epi_ln_K_l_o_lambda", dist.HalfCauchy(1.0)) + epi_K_l_o_lam = pyro.sample(f"{name}_epi_ln_K_l_o_lambda", HalfCauchy(1.0)) epi_K_l_o_off = pyro.sample(f"{name}_epi_ln_K_l_o_offset", dist.Normal(0.0, 1.0)) # T-dimensional K_h_e, K_l_e: (T, num_pair) each with pyro.plate(f"{name}_titrant_epi_outer_plate", T, dim=-2): with pyro.plate(f"{name}_pair_plate", num_pair, dim=-1): - epi_K_h_e_lam = pyro.sample(f"{name}_epi_ln_K_h_e_lambda", dist.HalfCauchy(1.0)) + epi_K_h_e_lam = pyro.sample(f"{name}_epi_ln_K_h_e_lambda", HalfCauchy(1.0)) epi_K_h_e_off = pyro.sample(f"{name}_epi_ln_K_h_e_offset", dist.Normal(0.0, 1.0)) - epi_K_l_e_lam = pyro.sample(f"{name}_epi_ln_K_l_e_lambda", dist.HalfCauchy(1.0)) + epi_K_l_e_lam = pyro.sample(f"{name}_epi_ln_K_l_e_lambda", HalfCauchy(1.0)) epi_K_l_e_off = pyro.sample(f"{name}_epi_ln_K_l_e_offset", dist.Normal(0.0, 1.0)) else: pair_scatter = None @@ -301,7 +302,7 @@ def define_model(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) epi_ln_K_h_l = epi_K_h_l_off * tau_epi * _lam_tilde(epi_K_h_l_lam) # (P,) epi_ln_K_h_o = epi_K_h_o_off * tau_epi * _lam_tilde(epi_K_h_o_lam) # (P,) @@ -506,7 +507,7 @@ def guide(name: str, c2_epi = pyro.sample(f"{name}_epi_c2", dist.LogNormal(c2_epi_loc, c2_epi_scale)) def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) # Scalar K_h_l epistasis: (num_pair,) epi_K_h_l_lam_locs = pyro.param(f"{name}_epi_ln_K_h_l_lambda_locs", jnp.zeros(num_pair)) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py index 0f14b88b..77b9abaa 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PddG.py @@ -66,6 +66,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass @@ -464,7 +465,7 @@ def guide(name: str, ) def _lam_tilde(l): - return jnp.sqrt(c2_epi * l ** 2 / (c2_epi + tau_epi ** 2 * l ** 2)) + return regularized_scale(l, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) # (S, P) epi_ddG = epi_SP.T # (P, S) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py index b928f979..c1c87bf8 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C12_K5_U1_a/PnnC.py @@ -63,6 +63,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass, field @@ -501,7 +502,7 @@ def guide(name: str, ) def _lam_tilde(l): - return jnp.sqrt(c2_epi * l ** 2 / (c2_epi + tau_epi ** 2 * l ** 2)) + return regularized_scale(l, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) # (S, P) epi_ddG = epi_SP.T # (P, S) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py index 0fe2b65a..ef6eade9 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PK.py @@ -33,6 +33,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale, HalfCauchy import pandas as pd from flax.struct import dataclass from functools import partial @@ -241,7 +242,7 @@ def define_model(name: str, # Shared global scale and slab variance across all equilibrium constants tau_epi = pyro.sample( f"{name}_epi_tau", - dist.HalfCauchy(priors.theta_epi_tau_scale)) + HalfCauchy(priors.theta_epi_tau_scale)) c2_epi = pyro.sample( f"{name}_epi_c2", dist.InverseGamma(priors.theta_epi_slab_df / 2.0, @@ -250,11 +251,11 @@ def define_model(name: str, # Scalar K_op and K_HL: local scales and offsets shape (num_pair,) with pyro.plate(f"{name}_pair_scalar_plate", num_pair, dim=-1): epi_K_op_lam = pyro.sample( - f"{name}_epi_ln_K_op_lambda", dist.HalfCauchy(1.0)) + f"{name}_epi_ln_K_op_lambda", HalfCauchy(1.0)) epi_K_op_off = pyro.sample( f"{name}_epi_ln_K_op_offset", dist.Normal(0.0, 1.0)) epi_K_HL_lam = pyro.sample( - f"{name}_epi_ln_K_HL_lambda", dist.HalfCauchy(1.0)) + f"{name}_epi_ln_K_HL_lambda", HalfCauchy(1.0)) epi_K_HL_off = pyro.sample( f"{name}_epi_ln_K_HL_offset", dist.Normal(0.0, 1.0)) @@ -262,7 +263,7 @@ def define_model(name: str, with pyro.plate(f"{name}_titrant_epi_outer_plate", T, dim=-2): with pyro.plate(f"{name}_pair_plate", num_pair, dim=-1): epi_K_E_lam = pyro.sample( - f"{name}_epi_ln_K_E_lambda", dist.HalfCauchy(1.0)) + f"{name}_epi_ln_K_E_lambda", HalfCauchy(1.0)) epi_K_E_off = pyro.sample( f"{name}_epi_ln_K_E_offset", dist.Normal(0.0, 1.0)) else: @@ -281,7 +282,7 @@ def define_model(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) epi_ln_K_op = epi_K_op_off * tau_epi * _lam_tilde(epi_K_op_lam) # (P,) epi_ln_K_HL = epi_K_HL_off * tau_epi * _lam_tilde(epi_K_HL_lam) # (P,) @@ -536,7 +537,7 @@ def guide(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) ln_K_op = ln_K_op + pair_scatter(epi_K_op_off * tau_epi * _lam_tilde(epi_K_op_lam)) ln_K_HL = ln_K_HL + pair_scatter(epi_K_HL_off * tau_epi * _lam_tilde(epi_K_HL_lam)) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py index 39700d06..831728a4 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PddG.py @@ -46,6 +46,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass @@ -380,7 +381,7 @@ def guide(name: str, ) def _lam_tilde(l): - return jnp.sqrt(c2_epi * l ** 2 / (c2_epi + tau_epi ** 2 * l ** 2)) + return regularized_scale(l, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) # (S, P) epi_ddG = epi_SP.T # (P, S) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py index eb9e2bbc..8c2b3c3d 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U0_a/PnnC.py @@ -53,6 +53,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass, field @@ -390,7 +391,7 @@ def guide(name: str, num_genotype=data.num_genotype) def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) # (S, P) epi_ddG = epi_SP.T # (P, S) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py index 43c88ba2..6d012d3f 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PK.py @@ -28,6 +28,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale, HalfCauchy import pandas as pd from flax.struct import dataclass from functools import partial @@ -173,21 +174,21 @@ def define_model(name: str, tau_epi = pyro.sample( f"{name}_epi_tau", - dist.HalfCauchy(priors.theta_epi_tau_scale)) + HalfCauchy(priors.theta_epi_tau_scale)) c2_epi = pyro.sample( f"{name}_epi_c2", dist.InverseGamma(priors.theta_epi_slab_df / 2.0, priors.theta_epi_slab_df * priors.theta_epi_slab_scale ** 2 / 2.0)) with pyro.plate(f"{name}_pair_scalar_plate", num_pair, dim=-1): - epi_K_op_lam = pyro.sample(f"{name}_epi_ln_K_op_lambda", dist.HalfCauchy(1.0)) + epi_K_op_lam = pyro.sample(f"{name}_epi_ln_K_op_lambda", HalfCauchy(1.0)) epi_K_op_off = pyro.sample(f"{name}_epi_ln_K_op_offset", dist.Normal(0.0, 1.0)) - epi_K_HL_lam = pyro.sample(f"{name}_epi_ln_K_HL_lambda", dist.HalfCauchy(1.0)) + epi_K_HL_lam = pyro.sample(f"{name}_epi_ln_K_HL_lambda", HalfCauchy(1.0)) epi_K_HL_off = pyro.sample(f"{name}_epi_ln_K_HL_offset", dist.Normal(0.0, 1.0)) with pyro.plate(f"{name}_titrant_epi_outer_plate", T, dim=-2): with pyro.plate(f"{name}_pair_plate", num_pair, dim=-1): - epi_K_E_lam = pyro.sample(f"{name}_epi_ln_K_E_lambda", dist.HalfCauchy(1.0)) + epi_K_E_lam = pyro.sample(f"{name}_epi_ln_K_E_lambda", HalfCauchy(1.0)) epi_K_E_off = pyro.sample(f"{name}_epi_ln_K_E_offset", dist.Normal(0.0, 1.0)) else: pair_scatter = None @@ -205,7 +206,7 @@ def define_model(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) epi_ln_K_op = epi_K_op_off * tau_epi * _lam_tilde(epi_K_op_lam) epi_ln_K_HL = epi_K_HL_off * tau_epi * _lam_tilde(epi_K_HL_lam) @@ -362,7 +363,7 @@ def guide(name: str, if has_epi: def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) ln_K_op = ln_K_op + pair_scatter(epi_K_op_off * tau_epi * _lam_tilde(epi_K_op_lam)) ln_K_HL = ln_K_HL + pair_scatter(epi_K_HL_off * tau_epi * _lam_tilde(epi_K_HL_lam)) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py index c2986a21..ce5b6da3 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PddG.py @@ -25,6 +25,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass @@ -304,7 +305,7 @@ def guide(name: str, ) def _lam_tilde(l): - return jnp.sqrt(c2_epi * l ** 2 / (c2_epi + tau_epi ** 2 * l ** 2)) + return regularized_scale(l, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) # (S, P) epi_ddG = epi_SP.T # (P, S) diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py index bfab38f5..4d45b6d8 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/O2_C4_K3_U1_a/PnnC.py @@ -28,6 +28,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale import numpyro.distributions.constraints as constraints import pandas as pd from flax.struct import dataclass, field @@ -325,7 +326,7 @@ def guide(name: str, num_genotype=data.num_genotype) def _lam_tilde(lam): - return jnp.sqrt(c2_epi * lam ** 2 / (c2_epi + tau_epi ** 2 * lam ** 2)) + return regularized_scale(lam, tau_epi, c2_epi) epi_SP = epi_off * tau_epi * _lam_tilde(lam) epi_ddG = epi_SP.T diff --git a/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py b/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py index 1c3fa1c9..b827b175 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py +++ b/src/tfscreen/tfmodel/generative/components/theta/thermo/horseshoe.py @@ -32,6 +32,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist +from tfscreen.tfmodel.generative.components._horseshoe import regularized_scale, HalfCauchy _DEFAULT_D0 = 8.0 # Å — residues within ~8 Å Cα-Cα are considered contacts @@ -77,7 +78,7 @@ def sample_pair_ddG(name, struct_names, contact_distances, # Global shrinkage scale and slab variance (shared across all structures) tau = pyro.sample(f"{name}_epi_tau", - dist.HalfCauchy(tau_scale)) + HalfCauchy(tau_scale)) c2 = pyro.sample( f"{name}_epi_c2", dist.InverseGamma(slab_df / 2.0, @@ -95,7 +96,7 @@ def sample_pair_ddG(name, struct_names, contact_distances, with pyro.plate(f"{name}_pair_plate", P, dim=-1): lam = pyro.sample( f"{name}_epi_lambda", - dist.HalfCauchy(lam_scale.T), # (S, P) + HalfCauchy(lam_scale.T), # (S, P) ) offset = pyro.sample( f"{name}_epi_offset", @@ -103,7 +104,7 @@ def sample_pair_ddG(name, struct_names, contact_distances, ) # Regularised horseshoe: clamp variance contribution from τ - lam_tilde = jnp.sqrt(c2 * lam ** 2 / (c2 + tau ** 2 * lam ** 2)) # (S, P) + lam_tilde = regularized_scale(lam, tau, c2) # (S, P) epi_SP = offset * tau * lam_tilde # (S, P) pyro.deterministic(f"{name}_epi_ddG", epi_SP.T) diff --git a/src/tfscreen/tfmodel/inference/convergence.py b/src/tfscreen/tfmodel/inference/convergence.py index 7dc21f21..3370daec 100644 --- a/src/tfscreen/tfmodel/inference/convergence.py +++ b/src/tfscreen/tfmodel/inference/convergence.py @@ -64,7 +64,15 @@ - A window in which the loss is not improving is a *stall*. After ``patience`` consecutive stalls the step size is cut (by ``step_size_cut``, - floored at ``final_step_size``), whatever the parameters are doing. This is + floored at ``final_step_size``), whatever the parameters are doing -- + unless the stalls, pooled, are a descent: one line through the block + medians of all ``patience`` windows (``pooled_loss_trend``) has a + significant drop per window (same ``z`` and ``loss_rtol``), and the stall + count starts over. Each window alone can miss a slow, noisy descent + (count-likelihood run 0012: medians falling 1.5-1.9e5 per window at a + per-window t of 1.9, 3.0 and 1.0, then cut into a wrong optimum); pooling + three windows shrinks the slope's SE about fivefold, while a real plateau + stays at t ~ 0. This is the usual reduce-on-plateau rule: the loss alone decides when the current step size has done what it can. Parameters do not block a cut because some directions never settle under a given objective (a MAP of a horseshoe local @@ -195,7 +203,50 @@ def loss_trend(losses, num_blocks=20): "drop": drop, "drop_se": drop_se, "t": float(t), - "skew": loss_skew(used - line, level=medians[-1])} + "skew": loss_skew(used - line, level=medians[-1]), + "medians": medians, + "width": width} + + +def pooled_loss_trend(windows): + """ + One ``loss_trend``-style line through the block medians of consecutive + windows. + + Parameters + ---------- + windows : list of dict + ``loss_trend`` results of consecutive windows (oldest first), each + with ``medians`` and ``width``. + + Returns + ------- + dict + ``level`` (last block median of the last window), ``drop`` (loss + decrease per window, at the last window's width, predicted by the + pooled line), ``drop_se`` and ``t``. + """ + ys, ts = [], [] + offset = 0.0 + for w in windows: + medians = np.asarray(w["medians"], dtype=float) + width = float(w["width"]) + block = width / medians.size + ys.append(medians) + ts.append(offset + (np.arange(medians.size) + 0.5) * block) + offset += width + y = np.concatenate(ys) + t_all = np.concatenate(ts) + slope, se = _line_fit(y, t_all) + width = float(windows[-1]["width"]) + drop = -float(slope) * width + drop_se = float(se) * width + if drop_se > 0: + t = drop / drop_se + else: + t = np.inf if drop != 0 else 0.0 + return {"level": float(ys[-1][-1]), "drop": drop, "drop_se": drop_se, + "t": float(t)} def loss_skew(residuals, level=0.0, rtol=1e-6): @@ -351,6 +402,9 @@ def __init__(self, self.num_cuts = 0 self.converged = False self.last = None + # loss_trend results of the current run of stalled windows, for the + # pooled check before a cut or a stop. + self._stalls = [] @property def at_floor(self): @@ -415,6 +469,24 @@ def end_window(self, step, loss_stats, param_excess=None, param_drift=None): else: plateau = not loss_improving self.plateau_count = self.plateau_count + 1 if plateau else 0 + if plateau and "medians" in loss_stats: + self._stalls = (self._stalls + [ + {"medians": np.asarray(loss_stats["medians"], dtype=float), + "width": float(loss_stats["width"])}])[-self.patience:] + else: + self._stalls = [] + + # Before acting on `patience` stalls, check whether they are, pooled, + # a slow descent rather than a plateau (see the module docstring). + pooled_t = np.nan + if (self.plateau_count >= self.patience + and len(self._stalls) == self.patience and self.patience > 1): + pooled = pooled_loss_trend(self._stalls) + pooled_t = pooled["t"] + if self.loss_improving(pooled): + self.plateau_count = 0 + self._stalls = [] + plateau = False decision = CONTINUE step_size = self.step_size @@ -428,6 +500,7 @@ def end_window(self, step, loss_stats, param_excess=None, param_drift=None): self.final_step_size) self.num_cuts += 1 self.plateau_count = 0 + self._stalls = [] self.last = { "step": int(step), @@ -447,6 +520,7 @@ def end_window(self, step, loss_stats, param_excess=None, param_drift=None): "params_moving": bool(params_moving), "plateau": bool(plateau), "plateau_count": self.plateau_count, + "pooled_loss_t": float(pooled_t), "decision": decision, } return decision @@ -462,6 +536,12 @@ def describe(self): if r.get("loss_skewed"): loss += (f"; loss skewed ({skew:.3g} robust SDs of mean above " f"median: rare large penalties)") + pooled_t = r.get("pooled_loss_t", np.nan) + if np.isfinite(pooled_t): + verdict = ("a slow descent, not a plateau" if r["plateau_count"] == 0 + else "a plateau") + loss += (f"; pooled over {self.patience} stalled windows " + f"t={pooled_t:.3g} ({verdict})") if r["worst_param"] is None: params = "no parameters tracked" else: @@ -479,7 +559,9 @@ def state_dict(self): "plateau_count": self.plateau_count, "num_cuts": self.num_cuts, "converged": self.converged, - "last": self.last} + "last": self.last, + "stalls": [{"medians": w["medians"].tolist(), + "width": w["width"]} for w in self._stalls]} def load_state_dict(self, state): """ @@ -492,3 +574,6 @@ def load_state_dict(self, state): self.num_cuts = int(state.get("num_cuts", 0)) self.converged = bool(state.get("converged", False)) self.last = state.get("last") + self._stalls = [{"medians": np.asarray(w["medians"], dtype=float), + "width": float(w["width"])} + for w in state.get("stalls", [])] diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index af441932..b81972b8 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -1646,7 +1646,7 @@ def _write_losses(self,losses,out_prefix): "loss_mean", "loss_skew", "loss_skewed", "worst_param", "worst_param_excess", "worst_param_drift", "params_moving", "plateau", - "plateau_count", "decision") + "plateau_count", "pooled_loss_t", "decision") def _write_convergence(self, record, out_prefix): """ diff --git a/tests/tfscreen/tfmodel/generative/components/test_horseshoe.py b/tests/tfscreen/tfmodel/generative/components/test_horseshoe.py new file mode 100644 index 00000000..44ca0579 --- /dev/null +++ b/tests/tfscreen/tfmodel/generative/components/test_horseshoe.py @@ -0,0 +1,61 @@ +"""Tests for the overflow-safe horseshoe helpers (components/_horseshoe.py).""" +import jax +import jax.numpy as jnp +import numpy as np +import numpyro.distributions as dist +import pytest + +from tfscreen.tfmodel.generative.components._horseshoe import ( + HalfCauchy, + regularized_scale, +) + + +def _naive(lam, tau, c2): + return np.sqrt(c2 * lam ** 2 / (c2 + tau ** 2 * lam ** 2)) + + +@pytest.mark.parametrize("lam", [1e-6, 0.01, 0.5, 1.0, 7.0, 300.0]) +@pytest.mark.parametrize("tau", [0.0, 0.01, 1.0, 3.0]) +def test_regularized_scale_matches_formula(lam, tau): + got = float(regularized_scale(jnp.float32(lam), jnp.float32(tau), + jnp.float32(4.0))) + assert got == pytest.approx(_naive(lam, tau, 4.0), rel=1e-5) + + +def test_regularized_scale_saturates_without_overflow(): + # lam^2 overflows float32 here; the old form gave inf / inf = NaN. + lam = jnp.float32(1e25) + val = regularized_scale(lam, jnp.float32(2.0), jnp.float32(9.0)) + assert float(val) == pytest.approx(1.5, rel=1e-5) # sqrt(c2) / tau + g = jax.grad(lambda l: regularized_scale(l, 2.0, 9.0))(lam) + assert np.isfinite(float(g)) + + +def test_regularized_scale_gradient_at_tau_zero(): + g = jax.grad(lambda t: regularized_scale(3.0, t, 4.0))(0.0) + assert np.isfinite(float(g)) + + +@pytest.mark.parametrize("x", [1e-4, 0.3, 1.0, 12.0, 1e3]) +@pytest.mark.parametrize("scale", [0.1, 1.0, 5.0]) +def test_half_cauchy_matches_numpyro(x, scale): + got = float(HalfCauchy(scale).log_prob(jnp.float32(x))) + ref = float(dist.HalfCauchy(scale).log_prob(jnp.float32(x))) + assert got == pytest.approx(ref, abs=1e-5) + + +def test_half_cauchy_finite_far_in_the_tail(): + x = jnp.float32(1e25) + assert float(dist.HalfCauchy(1.0).log_prob(x)) == -np.inf # numpyro's + lp = float(HalfCauchy(1.0).log_prob(x)) + assert np.isfinite(lp) + assert lp == pytest.approx(np.log(2 / np.pi) - 2 * np.log(1e25), rel=1e-5) + assert np.isfinite(float(jax.grad(lambda v: HalfCauchy(1.0).log_prob(v))(x))) + + +def test_half_cauchy_is_a_half_cauchy(): + d = HalfCauchy(2.0) + assert isinstance(d, dist.HalfCauchy) + x = d.sample(jax.random.PRNGKey(0), (20_000,)) + assert float(jnp.median(x)) == pytest.approx(2.0, rel=0.05) diff --git a/tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_counts_noisy_descent_run0012.npy b/tests/tfscreen/tfmodel/inference/loss_traces/sim_svi_counts_noisy_descent_run0012.npy new file mode 100644 index 0000000000000000000000000000000000000000..f37becb82f51d3d33e7905ebb62af31de9977733 GIT binary patch literal 88128 zcmbT7`9GE4*TxNngpfH?l6jtzP$A*I)?Eonl7ys^Bxy1wnP(Cbl2k&aQb{FA(m?8? z(yWp+Nm41#{rwjnKOOgrefHUVt?PQPwfD(k-D&Z1UY-b^otpjuTh@eWTB&MU2byW> zscHsp3JVWg9kOaun18_ko;$AIuqA+dz9ndNXaM)SmWhdxk&&LZp6YJZ|L2eJV_LI&&iNf>Lf*>q9wf5WWsA0~_ZLnL<5iXP=RQt0w5*7JM` zUFv;7$_}&1@=YXZ-CoXa8d%2G700rYOGasjbPB2L-_9214^YO6NLKxA6UDEqqX)bK zipVU?ulv)6Rf0YM^|I+gQV{8s1A)FZ%~p)~ zk%9afQa#Vo>&`N|b|jYEPb;!sq5O*!?>Mt!gEdrJ>q7Za{xn+cMP^?6*&j0!srN?$ z>-%mwoeiOFQNsVt?+6AuqYZw4;!r#E>`&T~|cKdH-N3c$3~f zEv9CFcM9j7&ib0KVx7N>vR4Q5>3K;Befgb0MZXWxPP1xO;FvYLdapA*V(ZE3cQ_?I z`;RT=-siIZMmFqC9!0GZVk>`spm{gSDF4w-^0bK}S*D2e#LtsU+-jPwww-*nFH*4L zX{wRrWjiiip?9mp$YRAIlAE%ZhCL3^_rO|$y&k*sb1&QbG?-T1t)`6u3heL6!tATq zGCKbF1j#OGU|pVPlFsWLlz*t2c$U|*x#a~kbgzL%5_2e0A%*@^`M{1)EcFg1lD|m- zsa6-$gygBL@~cBs_;nEpe=MSUt#HZ{JVFaYE>e)+MH2sE!Uo!u(#7*P$>?w?>GJtf z{MkmbTOLD`{tF_#h*UayqJ&;vE+(}S8}|I!4C=mBOtbc;uzVHCR6n_m#@4@q(e^wV z{ToDTfAdJOeLrnjA;OmI(WX1gv*_P{g%qk6&Cb2Hk0Li7AnONXR4RLngoYz%bReCo zjx49SM|jv5r()S1&R*2Ct&~<)#j|W}1Iu%3KP`KnN+B}g6nf_t#rNgYNKX!_31-l) zty{_L*Fo}>aG~^!eWW`rle~mhQ+vQ3IvSo&0)r(azCWG**|{p)FT4i6=IJgs)_<3aipd?wkOtXMUJ8 z3Vq0RW-4_}4rWv9?5R6CgXG=D*rRUwRBoM0r|+duW$FNJ5J;xcH^F3acOzXr<3-jV z1F60J7HyOCVza*2QoFnmTP|2ZV^5Q4@K*%A=uRPF?)CP-Bx?N`MyIzgrhkzsWYO!* z-hH@$Zax-gKW{UlIp;}&(aaWKw36-pV%2W)EXZ~T8U+p z-IPtKhK}^=>RQ@A#L(3uTXyCHPxiU%4oZ*6CWA%plw7`*_D_nZiN74lc>5S^BXek) zw+Q=0IfZm~-6d7=5GsEXOPlU;|1T}fZuLl}*2AgPeb1Q!zr7{7dBSY=&U~7Z89?^e zvPqyZlX^3=Nhd#-#u~CoA|sYg45!nkUpDOetI1T`lt!}*Q>bKV1$li>rMO{h65Yw= zy4yZ#icTQ4z#z(A@f6-$JSe|Ckt+N%XhU=w%lkKhBFLQ_ckH3N-utK_ERjA%BvJkw zE>?OoDPU6qDI3KT-^v^sbx)>T<(0Iq<{&-G&7-s)ZeF`}*ukyolqVfWCw?Z-^C{ce znTvQye$0rSz9pXgYf?z#5Eomov#BjBiM9$Ire_oP(8vWY?o6h#Q_~Y^^?NP)Virf~ zdoQ9sTaxve;Z9F{_mYX}UaGMRrJw~?WP9;21@GKL7DHx~o;98L>hkDV(?j%FZ>9qG zRI1yC!QcTLFrz$b@Jkp&Ns7#~d&bc%$ zu%3*>XOj921=ecmR(i0ljsBe%rr80pbiaEGDb#w>Kw}ckFEFAYvAvX#Rzy1sd&yIl zp|K0mq^XxcN^25Hv@M;6*2L3R{sEfx;4SUVo69C^8 zci2ofYOj#pqeRl-4<#eV44Qbyh0Mlc*rM<`Wa0mU-dn1Xdc+*^Tbn^+`vpmS@pe)+ z4JVa<<`n%ej!qkIp^DCfbmnV3Jy~Z(R+nbc#_qioSMvwOW-+wMf{z+Ub4l#S2GZYO zMbSKK$zknY5{^!$y0_~oYjPaf@@Y}z?=S;6;7EsQgDEgh?Om;6L$!XYzHJVgSeRXr_z{#h?nkP_#oh~`#tCQVb zH=4+r(r5QPR&ItTB^=sCZ}XB^feTA1JI$6V;_@hLp#?R)@SvsclH~c&kJNRK&6Nrv2ezx|D>&3;swzL0Lc5oFs&wv+nYD4MDG9Tor0rr*tBqpQ1iQqb)M>yHC~);g(p|Nd>N@t*phXbPGq#}A7i%f&r4E&5M^dnG2yGt=qDkW% zhsCd=`a6}BrJX_ALk<*lFp}DO6sRWU62-nWphuY))D{wHa7Z z&=(6zn74pTqGqtU;W~8jhCB5Mv-Gl9jl^_k(I4Hztkjw&x<7Y0dA?dtvhGjmtKJmW zI#-;OZ-h|u6)Sd!nljzzSxpBAEXa4B6!FjANVfHUWO^lp;<&Z9cl08MM`C1fA%r%( zx1qsvt0-S(E1ll6ns%&GqM{`RY+A|&`WPC9E z$CTm{zjL|eOQNe?sN>`Y`g+-t?b+5yYaN8?^|Y1r&QXdw++r!~=2X%%Q>Cm)a&*OY zKD8D5(7SjqYSd1ncL#hZcTohbGh0ghr$GLKA@r`xiu!$xsO@PS&1eOQ?OQ;J3I?qF z1U=I0x1!{UrX;j)6&;)sNPXHbNXGPF*APT0NQs#eJy8*Oek>xl!07PpUQa zpw~h!G#I*u!s=JhKLdY?NwOe~S!;;5DU{k*X^^*y4fVICk>zz?a?U#(0$#p5^MlGa{8JwrJ5>+}+W^G;O5j(n;T2BPfXxbVQu3bg~ zzs%^x6(72J&z0`meItRfOQaHBLwAHcN!4DM4Ad6TyCoW={kRt*Q#DCsy%ROxF`%kH zNmM*z0{dk3YEHk>sh{7E{?nUFGUZNWawM31`Ik_Sy&Fy711XlyBwpo48Y@*H7k&p) zIKPH0&7_D4nMtv8ct}J-htwm9rgYm-0>@>xmqqA!*&?d9oKNZHRa6*0ouu5R)2#3y z651p~FKHPmeK|^6H$3RH z-zG#uyJnG9jUy=-ET9Q4ymY(Yl&Tf{=tHX&sR#3tgO@jHDlMi88y7OVejk!YC1~qV zDjDvTrE|-^kmtM^9LbP&;a|!7#K(vQCU|9O)GXL1$GwQ&sC%F zpNr}F3SsIBeT0{$O621zNvevO^jE)%!nerN?}ZQ1RA)o))khI5CccUZ07G$-k z991=z zV|LU~#IcBs3|R*XQ1`@{lxCtwOa4t;{;-^WsO37->k+xjsqn6}3Z0Pe`3h%KeJMH;eswC&q?M>qJIa`7@4vVmoMKa{wx1Qp9g=l5+L<-XvC!r0q zN%ZA>N^`U#eaRWL@WE7CVoBsN(TUi=g%n?{LAywk{>@gR`_Ln&Q=QbX*N}Y2$1(fs z6mqk;M*dy;)RkdHb_VlkbmK>e%Jrfp+mfp><*4E?r@h)%pD>BC3Di4CP^_eiX?j5nl3J!Pxsp`X;t+s z(t2-9M;$FGOwonTpVgrXg%9{_Fq?)%Ey=3MfHdp1DYaXYG!Kq}r|cX4<}9I*kEN7& zNS{_sGNAF*retnrOoOJgXz80dgvck*6qruJ@6{->Nsx~GQ6QgL$`p0rC!B7!;#N8j z`7hO`uQQb>+3*N;eidYA2=~D;^BWxhUc$>@Upgdy7Im%M-uL_g-!dc0UoT24efVhk zCSDppk%I&aS1Q=AK|YRO@jWVL@^DpWb+A3XhdNPruwbAv8rP8B7qhb&ociu8=%!XwO(Do#XELHttsEN@K0G6EE&@dJ0i#lv&^d@8q(i;sJ7;YdX{6poeFXZvVj7&e>Mosh^ysvqOmxo(O z(Abdc-Dr{33t5VBx1a)39eO{tAJ6zF(T}MsC|3V91v%(a{N7>An{xtJzkSD}j_>%} zsz+(TVl*h3ZN)GPhEvq3H^=KFuo9RH*Ghj=$F9xrjamTlPXwT7&9%p1~kq zn$m|Q=<+i?Hf6&{{JW=0Z9BOfc)pbsJ0GH|GX;BeW>A6cJDke@fJ3kNiRXt7U7Dav zDsJmhw&f>=*go>gQ6^tKZ5ox&#r7>C^e~r)CI(BAmdY~-Wq(4!R~hn^)1pbHm#}cz zS9F(8rUgDCbUIImp6tw_9~r##M)oH7mV89c^lxz4X-Fpb9)i6lL(E1wGTS3a&!35t zf=d%t?D&NlQEKF&^&JUWEiiSz2fGYqstnbkukVNO_4Y!N$@qa?13eg(Qs#P+U(j3j z2ojF{=Iio_UaS}A9`w5Hoi<866 zpU4-RNk6~60umeXcToZ=M-yr2{BK;l(~fiI!lV)*OC=4r;MFBci?y3LT{0uSAR&1Xt`{Rgs(D;5Vi`Z3nWI6fwW73jiyXz&PbYSO)3m`OWPgc= z91E|*rTH#KqTeIC{t-?^iIb|B0L`~%A-=g8FI%#=wzPg%^dRL2*y2W*{t{x6CQx?ec3M{Y7+0O-iD%z5>Zp%#09s%MDc?g4VM-cvL3U%!`Pji}2;zei!svmbj#=alznmjb=buaD}iP5>E>6ld! zN7DuVq3OnZNd4ob)rKFiI8BJAY??yphdYrM&;;?k6l9B*LFRfEytX!DxONg9Z+M1Q z+Xy(k6yfyx0SuLt>Eoo2++1}@IP*Ljw+qp6G$X3L6Dvf;>EoO)`1VkP5?tiTutJ(n zY`Tra`Q@madLI^fzwwQ~3~M(&$JoXnh(0MyO49KV4i})&tG^*r`w}g`^w_#gQS#|J zj!Nw|blW|~8NO(oEF8hmNCh$uOkofAx1(kGTlC{K<`x{MdpjF2=#hxa`_gf2_j~B| zzrzu3ZC-T>k#GG+=&0}zfAn*>-4P5v9l6o^SR453hgxge7wgJ+ZH$EA$C^tTg@76{JdUS*lO0#MBoO z0L@?v118??tGFxq@>aM99C0pUgR(5y~IIr8gt6GrxzB!jA~quR?Ye z=ds{?Ei!{S{XBgJN4N7*iA_J=JWa>U;?9bGq&EGk2lwNojgMxHthc&UEtaSSZjiCt1< z(6}6rqZfOz`P~WVo#LZu-bJi*Zj=D` zh9-D<*JH8fOd8gI1lIp8esTSRREJN{IP(#zu{>1YbrK>c_{m9y^K##(uo&saf;s6F zHe&*H*`z^d^Ixs$sR zj=zVN-)=5ngy`}1Jp5;vjMR;pDEHV5gUF9Sdmlzx+Hpwc2r1ktg05sY0x$8=!kCAM zcUPgHQxoaJ)+=}S4ZMrEi+#IKA}Hno_{Oi`n1&2(2v#ATB_p`477LF*!&r00oF<+g zN8QO%I3#|An#EUyKK=}=X`)qrTGvk zs|4bj;2QlGa(!xa$Dkfh+%Kc*;VFo;=92K{i6p-8IEroC;kl(4i<}F{`|LPGN_gp< zKsx+Pc%O$sLS#i`W_#G-*6*pR6o$W>;JIn?ssB_>u_*$EuQd>;nLkY z$njO9_iH<*?9ZjP4;N7}(uCKV-?2P+7~KIsF#Ln-7Ynb#L%DDGy5|fFy>PVcH2cve3}n^j$6C*&mx$KN5l4)h?#Z+c^$bZ zo&6pvLEM~62DNzdS_a|8E&oP+YOTIeim zhNS;{3@q-!sR2#;oRkBLi5HM#Jci#N|KQ%=w=h4UPIU=SU|jY9HAf8T`1~FWXLKN# zzM`t=FZ>trk@$o6*wcLm|4yF7U8_zsYc*qN;RA&Du7mgBIP$wnFm>GpggoB}_F+9d zL$c8Ps~y=D%?ND$iMu}@U~|iDxPEJZ&9dvzF=@cdDPwr!Q-i0WpO8>djYzJUwS9j& zw7NWT1r!jri;wd=(GOEnNmD}?(D6AJUb zjs&M`@X=_%$A#rE3a`eP*b~gV-2en8Kt@4;Fu5CT-^+1D;x43^y=edb9sI`+qHy^& z^zMFu#ph~q+M*Gm?NxBPd=k!TbwFz|;zZjaSi1*~&6gn|v<{wCO>n3>3t_`_TEgj4 zU~~)|hMJM3Qbaz9=aIbG3%grGP;Yw-U(OZan&AcP$UTnlb)9%JL5kL`%7;PkX;|rY zV#nh%I8~E}i{0PwZ~s`tRy;t<+PV{vGC2TFBrqWji4gw8&R!rs+bvhe~6w_m{T z@3ko9e~HD)iC8U}0HLW|PcJYNS-9L z7`App?ZhdV?mUO!ONTJh@f4ZEwlrtp0MzQs&}4TH10E+)VVDAm+4+cXItsg-c9gah zL7-s*T`Js|L4Fgt{gPOhm%w@d`0^{Q~hwHV&)DQ-P);g&tu^FNh~t<4j!+n?J<73Wx(eY}H`d(C($a{zi-*AVQz4nru0W$-<)%DI@Gl?2=DD|lww ziVMF^z(8dVWo75W#iIeT-;TmR{}`MHREgB~LG5xR+8R>Par6{kMP7o<<4SagHjzT~ zM|_o734?vt&^+rgmiCq6vtA)wC$ES4q9bV5EW;6#61)nhK6~VN) z*&hl+e^KmS1C2y!w)1KsHV+@g{gWL3uW6)_(dEd!xDS1tM?dkb;e4(QKE3(qba)*K|0SaOT^v-` zEJebVN@%}7519uexY3e`?lF$#*H)p1XByorK8W9~i*WE{JbwQ4#P+TnxbWw}QY{rP zRga-7?lDqpcOpKj0E*n$22KTN)Y(im(o69(J`=t3?GawE4@!&xwUuXL*NsMm_3c7Q zpF9cWY(?Xe+gS18Ej(ZQfj9Fg+W6e@F!(;~GM}OMehwOTwxVbF5>CJ0MVE5-<5b5k zY`q!>gW_yNG{cI9OJ^hfdJs&lfxITPmA>!*RVH=u(;U!z4>d*N@lsn=)58#|m8mcu5P%t?c zyc3cTe>xEb`rFWUyBPkJ*;M!~9OZtCku>uc!k?9*(>fDwSb}fqet3ILoZOm;fh$97I6cSq#0& z#MinBB>u-2^KuKZGQR-QC7JlGQVz2RX;8>G0D;mb)J=I0xzbf=X7;0nolW2KZlbMu z1EPE~P=2`)ZuzNTE$$%uR27n5Uqbi#GALeLhaCQV@F}=qaA5|l@1^7SGOll>8HmiZ z)i~~A1B=NgG48Y*pG(eTp5l4vE!dBAgA`bt%ja_AFb*u+}kG|A2m`$vQx9WLpd=>*&!8LewEDm8lS!l^mhSSbAbUv&?NWuZGmY#=* zKiRNLjz^e6IWB0&qh8huVe<|nJSiVqH(W`s{4A7S%^}5msaVv^X;6C^`jV2cId26* zJ||(q@lv$^%7J5J3gTRa=%vsVOuL$dVe|ElJnSGn98_M9c zFc}+mrC@DkF`RqjAp0Z(8`8O2VPzqHcn88tJ`XaN_aY@a8x2cO;o>C*rK^k3u|5-h z|NPPMDiH_7wxDW%0AhLDkUcp8Z83n`Qct+{hd_N>0j$ac(KhWG+D~3WN|+YD@J6JS%_q%a@6RTqpdI>sdC9U)^i@;{v5|K zE>B_>mcb-`3GB`Gpcj3x^g2> z_T2}?io@8nLXy0fxnuFWMbMh@g_WEkWz-Ow{c3hw6`= z2+j#WVJHj#?JO1ultEO1b5X=@G}v-ht44WVG^uPKg80N$01|PpwMdrbpBg~^oH%TDAeUzKq@~Pwf$4?@?n zm9ThJfR)Q*5HJvk;QyAv$own@zNFya?%C))vjrpP7NI+_1adAvP!^ht!DaiPGj<9Z zZ_dKf;~<{3uR_bsz1VCT2lf5tP*cvr@5x(%4H-C6y%0N{v(ajk3?mCCWZvJ6znrhl z6|F|@xnwMxwG4yhN8o-j7hUR3n7H2$qiYYrMVp1e^aN~a*o(H3tvF%F<>8te_~+<{ z#JS7icq$LOwCxe0wF6(cdifmJtNELrj%U60NVYkOH3Qq>Baw=5&ih+5y>RCP$B@=# z@H##V>Utc*brj(7$~`RVc144=+6|@cbCFn_fnRwR*t9DdVMV)f z_cZ}`+VEsjAvQb-#bz5HNIjbk+v(eIf3gvz);OS{I1AT0HsGmoBE%hc;HtPjtaq+J zMbBznQq)E3=_RlhUJcL18R)-$1TO#9Vfm&sOiy%1>ZCB3R_s9Ba$kfuiqPHT+hNhA zjH;k^DC{uAmjZjT_z;Ef^}e`jT8+H-CE!!?LC>p9K%ovptqyQF;SMnYU9M(MM5rGN zjn*`bC0fF5bt2TbI-=2aD@yp%pnAv>dRE84=a>Y4x%ucjoIiAK~^YZOT5z}Y7Nb5%0XE2M*O zvBoIsHljFg418XQ+&Kxb@YcuLq|;y|w<6=MA70+EL}TebyxwyZ3d`1@{{1#Qv2{oN zUJu-83x?Y0G6*fU#=F`C%*+f%!cjNeyXA}eD=vsRX27vPEQZ^%IKG^N33qHDZ!#b6 zf}>FMb3WF0m?HaMHahC(z}bU~hh>{l6l{*rz%}?YvGmn4p52Q0C%yw6!_LS|Oh+7RjwUG+toUbx+@BU0 zY1#>8mtYJG%)}oVTYNmW3XQ_naIEu#{?Ziq^_IdT^)zzbt)T2|fDQ4x;c?IbGouu- z_`U&7muACa&3e?kE`YIACIaWZ;C$8|HSU^7SThsvPWq$z-U3+lX+iZr3nV7HqupmC zRJ(Sg|3)C5bGjxIp@;$A~0XV)e30}XpV8?V*^u9d_c4{V$=LKL(`aCq9je(=w9$3oG#;C_4oa4s5 zK469RgCXGmo{p6_5)h}p4W_G;kSnnsN`678$Vh?XMIhH`33P_1A^ou;POgvT?#R`l zOHvOdh3k+tvKTgpt&np-4-uO$Lt~Ez+Rv&ZyekN^l8<1^MsA;bjA7emj=u2-B=@Mo z^V%pEgUb+oxCO5hoN@A(HlA3eV_ShQ__|H7#-;?>gQgH$?uMqmr8r)Y1cguGh&d1q ziA}ZWjMqTiiLD5biNvpCsnGbb1LY$Ocmy@^{6-OSS2|;i^Up3>Lo6J>0E^FVkh!Lb zIYN&3`P34pLo@KSPz641t+19$f$P(yh{@4FL-=$!`pm_Gx=PfzhQmq14LkVck(;~* z?k0|~_*0CPMTs!b`iP8A>%sTJ4>=1K!9#KnLe1Ra;oUZx_Ch7^Z0>xo z58-Xo(Yuv}C0_tkjxgwrG6zq)EF3G`&=SXa#mchD%&A@?|${WgL+=+YaK^>!G&C6E}O}u&4m|x^EHsYT~*5_k!nJMa=uCi*uY` z`ripd+wZ0D|D1=#8*HGHun#Aty$G-6j=5t zL%KyDeTwe5HSY$RzN~~LSE~q2Uxst*=7W4yVO#Bwv|M%QI0Qk&XgWykG;A*&#TFB3 z%-br3ZClmgwAmNZt1WP*IuLz_)*$`F;QW=Py% zhT^MVA^UPF$AE$G2$+jCC7yV~d0leULR9}Z4YLpUL9=HC4%P00!0ZjU_(lcGo}b1@ z&wNBzJ0p;by^5fPkm+?o<)%{P&U8aZfi${W)X>r(0)Zc^VCK?}2|Xfs5fF_!)fKoe ztOMcoLFiaw3lk?nTy3_;)l_p>rv^cIrzYy8lo6s4fb`0#;CUm1Y%Li$^(b)cX@?o5 zeE4^BBdq>KrgIwNk9y(g zSqo(AOvZhmKx98uLVuMMnirU1+I$K4tX_@eO~yzR4}+QUa+ql!!`DnFsIJsOJsc5E z%kk)-E;>9^pf%GIBgz}Ov#3>A0dpvn*kV_c2R^zvfJZS0)yYEeU2lOYk?Is|I2#KC zXTYOe07J89z*^!5)9&tv1G%~=*Hc62#+eBEv=9b1N1$jO3|s337{7K7J1@&)=&b_U zY^LG5-Cw3>jvT(b7{QhOfB#D89dpB2vMz+Rt*~`6cV_lX5JS=y zc%G^Vx8t*6Ql^7NeZpw}PZFIgSUAN`g69iSDg#%VW2*J79wmz zp({{>Z*~k;)TrUrUv2CVHQ>&2^x?rhE3THt=?{7+=;6b|tdlq;Duw4UT;h(ILMFoy zcFhwJcbyMTAyQE0*TlT2nYg;10W_=;Htvh64>O?>HV@a|8lY>b5QHCkASY)QcAPPU z!b>BxM2I0Q$r}TXT1c4W0lnH7m~7n0^=i#gvT`+i$2!1sC={vUoM!H@#z00oGW+Kt z{TvhCB zHH7l%$rzMe&-LDZG9GFiXGG3IqL(RVxh%%}5qD^5YQZ{WI&w4oQ1{&gOZSCxXEmmH z{b~kOizYywXATlZ>~U{wfHCFQ!ZtM}dZ%fFi&C=a3g&}e#7syE2x5ZOdi3Nf;EA>? zPVW{*tE?1G&oxJsu@47c%J?d|0)eOaaHwDgO01T^z0M3VM-1`$&35kolsc4?<=_`P zz&uxAu#q)J;gAOQrmaQ)MMdshF$Gtrxg+GM1P1kfFnZgiFh5HNF^P^C`|JR}cSfjt ztdD)e5@?^o>8`gi;=E-ct)zsCNHL6e?**TiA~Y)v@L9(k;a{rYvc(yEMVc^EwZT}e zAu@#~3x zayerM;pqmD7*|7Y`z(x}6UUv!b0Ii99qkLIVMt&S><<~^jHv=wJ94?Is{|t}LqJO% zFAI(FErJhXD&mOZbkFv?3cfUJf-P9a#pDe5pZ&<}AbB|4u)=-!saP7Rj9zhB>??c2 z++C}OKYEiP`fw_yUkHLg+%jw!H-~qt3d%)iqRFd|Nx!Oqcy2%XcQ~Q@(KLk5or{)) zNl1L5fX3x=xW>gt)8z)LIim&9Kcmbh0Y?a_>Y?F`4kDr^z?N?!gbMVKk;jXJ-+wa~ z+NAMpf)1oE@^HF05kKBe!P63b7+h9|QG_5yc1z;-`lA?D<1|>%2M+b(uxnL^rz8(7 zW{Y6k&l#{w;YAB@6g;%GfRE~2d`?zJnx!5JF`qjlNkCAiJoyyqphrLj$2}&) zd9@_Y=nOM+=|-~n`i&2ttA8aK(kJ6ey#^{F4cLof*Uu2FTyKJV z8ocN_Ive$JFPQBiV~pdt0wy?)Gs5G#U~<#&GsFh@ho(WGLJ%41gG__wU*=WK59X!* z0R;UgjWxwTC_OEW zcCYWujCqqWw(Bc%f6)_W<39-%YFlo)`-8Z}5q4lzW;I#&5+$yjj!Fv`gr6_akKRTYm{`_C982eVPRCjsG#Xi|vqpLJ6sR=D_eF zA6l--!+)(AQuk@##^F2!Pcg;6b8hf?Y>2Rj6LC|IV^!6EjGE62#-ia9^Qxr`>XFh| zQ6z-+4?J9*ILJJVRKx~}H;h^F8)i1gDLn_3@J3!5qf2FB5H$l=1wSw?|INT(jw=-S zBym7U24NH4F`uTsWO_WsFm`Dbj=$wWVbDByKhws)!pF?JxX;Y<<{!-PlnF2ynuw*> z-ZC23tit=OyVthlox$sE;b6nY0d;>-WJC27C{tOD&St0 zI6?xxF-BI(SkaIK_3#`#dGdm(=Ekf1bcZo2`_63N`-++8-oaR_J!N)k2%z+d5suqh zLVVI^X4GT>(l437{?`Z-VW5s$0|7{DbNM}64N4P*ktuSMQU5+2YmzuEdwv89?4|Ix z(i|<{CP7ko5{9egQ1ND*>1}(<4EoK4+t?(i3dFMme9AJ zj)gM3IK6WQ6gj=BSY?cGmLG8(?~dr{;?TTrO#fnG?(QfbPLFpo<9qlavGNu(HGoC_ zVP$;#{+eNBl(2YQjJvlq9bJiojK>K>h&B9Rh92v{jb9WIwJKQoSQbq4Bv@HIl$}6GMJQLr8X5wSwH^v}E7FuyrxO1x+DBbvtY1ycRKl4=~ zd}Jc-4^4q|lOXOgI$(EAg6pAgjELfUW>5YU?7sbmQ8+DxGmgKRmz8gsG2)q%ocZXJeo8OiFdVOI!_GEB#B2^3K;2D=ki?}-k;Tw z;lc6Vx=DD%)q-oMs^G+$QRbCLCsX}L5!D5TSX;r5nAV$&WTXHhM#OOX*JPB-NMl2S zB!ri8uYXNJ;T~Nyp7_N);rx?TnF<{-jv>}RW)j_>GGFzyVAaVBoh|dx+{}-b!z0Y? zM*>(V#qlb`G4aE<%)hlC8NppjxOIUS#VHaC=_nEK-a%kv! z#l)tn;l}!#jCIRhrbhZPv*7#$91r8-Xyps$rt=3zcGDkbzElTe>A;IW9LtXj$iXaH z7^R-Wj2Dj($}gQq>!Od$8!ajLuldPbDF4Q|t>|Oq%G;Rs-5lpT{$iYRc~N55$oQ7< zz)4CUKC#1$%~AzOY20Fj7B0kMk;_ce{c+~5lo&*AZ9?j%|J7rX2q}HSq(At}Sjdhs ziL3_HYd$bi1w%}|^E4!#oq_JwQAU6MZ>Dr;Duk>BF)@4!cb+efFvBT$)$xXz@6^t` z-Z{#w;$qfiKn24m1n?;SD>LoL6{ftgok?=zNByw}Oo;q-=HTb62F?kq-5zXwa=yD`?C2ZIlsOllPy_x*p+l*YrT3g#j~B^#UG%w;Ow+n7?RA1Ixw zh2_?-I6r3$$q^GMe)j>xKE24U=3-*FOVJ;M5q3=Db1T8XR(}fdu-%){Floo%0WRiostD7PG@X&2 z_Xl=v?+|se5**j+V4h!vOT5#W!0Bt4dF~3#9ZwM^H9Q|(t3Kil>w6q}auE~r6Oz-$ zaiX^c-E%9TSv`%>>K_Gv&u^4oZAWk40G3DRBB}islzc`pq&*JJg=G+8z51S(a+t8% zVb4k~Ci%k%ww*l0jGg3QRGOzTx$8O*WGTVSFdach(I>UIW+{8^)GS5k&~Ht$<6Rfi!jSdKcl{20O1e#m=z!U;jGvN-&k(uefcED3YsC> z*Npb?TnJVEgr(Pa7>Mb!UZxpV#r+68=*v8~uf_=RH=)S07x^;3FjeslhVTA?rzsf= z3q!Rw;6DtVN9@b^`4r-;wzcZUfhi1mnN`op9mwk zgPW1z7)Sck1o-a%fPvsw@E-03M`SWa*M5djK@$?Wo1y%37TXKTfRI8a#&t4rUOX9f zOgAom?LY_knG81$rt5np8rT`wn!XH_Q#s^5eSoCJICxa6pd%2EMT>i3*V2M#8~B*i z_B32wSB!1b{=mL?1pbi~u-{*at}ma^U>|{zSqjYA;2LyVRAb8GGs+z*(Y{E8IrMru zBXc1W!y|0X97;q(Y7rK=OlR^}^s==PgKaw1(74hL^}(4;zA_&(*z^alR&g@{=UOq# zVhFQ8S}^7D1909OgOL?H%z#q@IwzJfCRTlLDEx?0#V=4U{($1F5Aa}~LL`daEq?a} z69Qjw#;g?wWVo4h#W#>LYDdz}PB>Y&!^4`bjhD3$PXC7sPbSgkIe_50ESy#;fu_)ow?Ny4fZsB zN0oOjGDkd_Y5i~EkTwVzs}AJwm7vIZ44cimQPi7NQFw$v1nzkU*_<>;FN;9pm)8*b@B!&Tuh4a{ z6;4KxIMOo#w;P;{eL1V&Hcw-|4u6Bep)$l@PeXxjEsToFP&nQRBPvBvSrQsQ3?lID zM>Lzgz;=avEYy1j`-o;NRs4%k^9lU7H4`e)kD*rgfC<>%gf6y5LmuR!&ov5uEj=i% z;${wye#dp88k}!>jlQWtmU}uN*I5sa!Ehw6Z$oELEBK4bk(4nE@tj&X?wLSIt|g-@ z)(uPl8O&r^Gm1=$VZ`b{&+ayqF6oBojt-=*OTqO|y--@049CZc%r)0fm`hbqu9?kf zkJRD#8FA*9Xcnd(eTM3iWGLJS#*kMrRu9x-p6LhVsozJ|ivm`YhCq5@CG?y`7*E#! zHJ*M2tGi&NyKCVW^$X!G`2^*&xKat6?acfk~}qoWIcy)4_ab(==vK zryp^uU65A#4W;vO(DZ(f{)u3ub9dm>d3Khwy%~1<-=MI579)S-Ij#(IG21s+;KSig zScxa1K&>468{fmLtPDM&p-4ZS4UeUP7>|95VXx0D_JzQ{unI%$@5{`q#-@PR2wNTt zvqWyDrM?kIA3sI+{g+TZugdI8nE($*3@$21Lh@ibBpys-_6{VX^I0_3Kh8zSNIjhE z0}=k>DH=8wAWc3ETPO`aO&_pcz8ZP!(qX3i*DFNlWfnE{-< z)(LKP9!Bf-5KLA_K+mWWZc@5TWAS%b?t6lw>HRnx^BL(YbHV-U8Ey>cqvC!hOlJOq z`WtSh@o_z@UWQ^v%rktw76p~N37Dn(1o4e6Q1cwazZJ>Ya(o8!#iIsO4lj}F@e-PP z@4)e@1to%iv1D~M_H8Ley=w{5%DW-UYJkbokFZ*j1iSVsT;2Z>nZ>CXEDOi@%3>V7 zmVkW`EKc6zVf6PrfUZOZB#*v=t4<&`4fdjwk7LW>uw1sjOK>+O5+#@XQO+dby!->~ zEvQFWMm8Rw$${^I*Z7i_hPA7EvF~Xmu0C!+%(oY)d-(}QGD+~ZYKC6_U&NmcgJ69o z7_oNvtPciOa>&npCScDQIIkujA0Fx6zII8*>2`yjI`Kb(%F+I>!e1u|Fi+J0s zGS*?$7@1!JgDsUX*UiM%&UCzDIY-0D4|@CmL2x7jzx*SZ9jDqbcIh=PO(ui?dNoXk znjw3Py{CZp2t4cup4|@-RFI7J70rkn_>0z~?-9GQkLA1~OcXpu6svE1|3x9^ZZ@oz zrr=p$D#A1G!kb>fkgYeKf&g6iPQvRW?FbmkhG2Ovx@5v}+Sm_|R)k`d?}}xF848OR8|6<281<)!<)3De746=Pcu9o`{7)jX#6!fxLsS(o5tx zHNz>a3IENjM8Cc#l=@Qe;pI~#IQPR0B^V10!B9#D&evC=wlfnW-N~>uPr&cfG00PW zgkYyEB+Yh1p|(GilV6}`brJ?6o`LW1bCeuQ1RZ8Ih-5Psx_iRqX+Ao};vm!W5I5QW ztGQnh`n^Bn#G){K881cjg>0<2o{R9-2=t4~GlLUs9#^E}@bd>)C{lpXoG65QKf^oQ zL4}=A|HtOQy;)<5s9t3_u!2TB<^8zu^<}F`F*Hb8V(i37pQvZh5o2$ zoGiNuwF6O*DUOHZzS~fb&qt_SG)}#Gj@I-Lgx$D>+DD$a?*1HRioQ^|RE1`lL$@BmryWit@hZ9zCX2Gbj9s?KMpq!Y9v%K**$q@wgtHt2r4M4nqF1k$; zAtCDp6EjcPHOC3Keb_qqBA2bn2}Ab!*SuiV?h8wgFgR+wM3LB_S|KOTg95Pw_`SgpFY&BwTMHA^HLM zzB*#AhYR#xWn@$TSzCQvDHv^D7%MHHH2^e1;3E8GdsJT|7Bt8;T z@5@jikc1;TdAL0@36AeQp_T3r{aa6Ar0s?w(Lgk?_^bMn%^$G}lI`uP)-T0TJHB}sU_F>4 zhHFEhr}i8@(Ot;;6NL6J{@{L+f}Pc4s4WeF_4-&OiRWT}RW$m=vhnNneK=ltg{bB4 zaNT$S9y3eeEpQE)`+adGC=#IwH!$jT6P>?<;oRVYjI$3|PnL;@dmgZ6wS)7gXqdix zfI011kk0f%`j;nYybug0yAWg!B;#+o9+UCnKCW)KkC2%axWq(apg9^zx{vWU_90wX zJVAN&85mUGfYhG5FgGoM1M>tUey`BNl?7eqHQIfeaPr^{B+8s;`yKbtarY5|78IlN z%{|D7JVwRQXIR_lhSp<2(6kLia>Ffbs+_^NZaobv4tE4J#lcwe5qgB8Q2#I%=3Teo z=x>cDhNU>Km4+*SZbE%^2!vO9A$}|X_ngx(OW`Os$>qcFs1MQuoiVJ`1itad$SW^} zfp02=wt7HlWf@eQ{J{HP0&KEUp>A;jT=(74@8^gpKYN(4b#SfI71ojGp=%Y0y*y7a zBjY}FdhVh!=?s!*xU#tEg)Z?&;G+m!UZB9dJ?e@^FAtnhy^LYcK+F-ihwp1Lu~ft! z!O}r^A8mmy<=YVQdVup$ci>|Zi~afcubKkhyPxDvv~LcoB?%Z*lB%RpJKs5bE}N!^Xl3qjOVHdNCKTJA82J zX)x^FZb7^52^3!3Ms`XLPE6cJs9z9^<3TtfsLzD|O~(5T!I;{95zm=RP#Ce;GPyMx zuESBdJ?|vu1i8R*SvmskBEUJ{AFbw*sQ%%Lwyg!Y(&>VQtd1OtdjM|UBz#?M1GjW< zL~ahkU-9eMv;Q83blAGlxr1*z??ZK7E`;a4!cap1I@#DsUM_%WbsR>oJcK0s<+05h z?q6R*uQVBQ68UH}{EM6jADBozf?`A<6g7h&EyCVU#a*bdoc!RZJ4~Y7QBd?3QkH(G zICL2L1|hHre+KDV_W2K_!*kvVxOAQcr-KU)$zR8e%m?tyN@nXj870>qA~-W2XLTK+ zG4hDzjs(^hI-A92WXu|vAVQOuBc zVb979c0A#z{^*9@bRT3TU58hq7sN*oLFY{qazx@`@Qm#{cl#srh$k4Y0|*y64jvB&zupK>Y?1EJ;TgpgD}NSfYeHQ04HmKNjjsz6kH4~De8FIGOi4es{G$hUUKQyq8o zFD|N;oqH$*S3vh7Rf~FqB+947z-0xv8?OG4rE;{mp{-@q{)54MMFj^?VP=qWQrl9U_vb_c*g*#(my*wXL8a#)*4SKX4oGJls*lc?Cze-NyHQM{r=;DLg#o1EDq17`t}_yZ(EO z>$-O!(dr2uC3oBrJ&&^b-53`0!{&3|7;>?PZYHbm?Cl|S-wlSMjtFQx4%JTxo0(U-BPWDjEA?SooeD1tPO;ojaWxHBG$ zUEz1$yER&NCYzbI<}#)ti{!o_n~mI2PxpPQq#SWypy+ zL%*1T+VNa8>FmRczT?<@#sYOWZ=hw1Cko!XqKNl8W(O~2inL516%&k=e10fUzYfkF z4>4G44TJaqID3X-yz?}qihdW6y6 z#`somjl^G0>?~yuq~y)v@$~?L(~m&%pDDPe8^h+4AF_v>kiz1P?zdy0J?qeNAQY)7 zC(&nL37=bQp|;!%x?#IuFSHvMERW#ZbQdJ74?y6dW2g`~$Ksw95?;sPgTX=U;JD28 zzicqxU7xCxi`s?5a7K{p4V>sVf_Khx zY&v9vIX4fZUG+G&8t=h{xRr1`;|h%r>tHfygWX?tVZDYfGT*qvAn`EzQ}>}kK^qsB zY({DSCI~DMV>}93uNSC~5KeoP*2yzcGtF@+WF5p-cp*8?2#Zg}FYK6)wFObyEJpk^5=kbC4IJp?L+i*H@0SxOO zOaIzovxYlV?>VC4+(Yzzxdr}=6^xx^2(rT1nVNYxH1_O8d6F(TYqj8}?TwRzmT=u| zjh)3dNLpnK`>Ur>-g_L$ofna3=#9TQ*AZ#B1*XZHK^HEATgDV^wf+d%bq4$ePG}dn zfK7}Y-ew-g-VfI3ayWopeTU%rZV$X9*}lZf`%uqzK+U_0xPMnk3g+fcC<<5)ne}I|P;5WK10!L#t{nOgJ)s-pia%Z_;C1d0 zxYygFV6iDq3mivlz#$A9g@FIB1}Mk^`SW+d*KREmE!;7hdKx1iykw37^TPcg+%tS}zUl^ew%_*}x`m zCG`b)M!=H7N#ZP|+&0Ta~qEl1uc%lBLE!2g;xRNS^BPS+bTr*=W^yAi_t zGhyg%grD(yuqiPJs(n^S>-I#|+s$ZZu~2=525uiY1nH_HkkPq{^d;Azc>N>>s<&dF z#%b6t)rWb*6&UTk$ZG112>);nw;~Rr@Txi5+Rj4sq&WgMZiMorBOcw?K;=_Y$VIc7 z=eG(DXdi*7=Rs&Jal=|KJ(yJ6qy3;Y_`}pO{nRE*-O_<7=Q$iGIg026E9`1kMDuDR z2t*noht*G8?AM`U-fB!dzk-oHmIxHskBNmVpuATN$%1QP8LNrsvd7?{wgL_(t|NG# z26Ff7pfk}91r|!+nK+73k3+1V)54C8o58n337rp@<7&n+sC68M^?^0;7ubaf6D7zb zp2n~GC3w4iKdLXBfpoAf6x?>Y72`4ox<*C6w=BfO*5!+!67@Qyi-h3_;F zv0V-u9<9d0R04ND;kCm$Z2Pek9TU6p!&?zN?Hj=vVT=H|jcEUQ1iHx^;qzu5`Z|`u z-&hM#TTa8qRT&%~&5%{1h9{~TXgL~$gy$R4tGpH?@60foa|r?!S7Elx29na7Vb(<0 zroIiY(iT9xc?~ActOsX?C6>-n$C%~`jLx};2YIGYd2$$^9Go%GJ{N|=iy)TjhOSBr z*mRoVt+@q^Do!Kc_!D#$fyK_#w%kcm1Bbp6nyh!h(b^EY=^J4k#>K2Wa0Dc}0~-B6 z@iRkAo>OEFJY0{$>&oC=ycZM09x&Ue2cZS*qNv4TD2y^NueJgwn-e*+m!tL54oq#i z0h2qLIM(G1lb;7sKF1hycur$*lQC?~OkgtS7^-5A!+L`Wl-@3fEPH=Z?oNm(a)or8 z9iIGJ2f1-;tXi`b1v_ryxrzlI-`a^UN%qJ*x)&c8?toCCG0H;sBGu6rE@l_d{%^Lrb-wgG$Q5fH^1ueU4kap39xX3odv`M4)sTG)FU5NTyLTbiV_%GcB?SkF# zSZ@T|YG*+=4{(BT#XPRKuC2J(@-@(qP7D08vGVJ-e1~OllV)7}2_6H2^##w-)Tn9N**6Ef@3KWvQl^QNftB1m4{j1%)$piANa1b=Ub@9u5zRyGCiIaL%}S%P;! zAL%M95Orud7AEdMriltnA`CHRG9ThiM^N*91N;TG5qEbzR%(Sq9-GlsZiIE*C*Uc_ z&n$R-0=W{ZkiNPJdP1vUt+Ek|=dT05-+Vk&yM=Wzsu;a$jV-N?2+q<(gQo^wJ~YD9 zq%}x;s*B<2H<5MAlAS3m1Kr$#B3cV|4-14nWb40k9khxULHaKHopUuBa{oh~^?Oq*}vmRlu zx;eTm)?Zz0h4R1dGhuppu&^>wt)18N)9;5({cM9-S&u|(I?HP~8p5GonQ zI28@(I<7$Cf~DBA=pc$`?7>mNRq*|!3*HU;;F&HBslz(p<y3Bdpr z^uCiuc>v2XU)Q4R#Tg9CN+EG#BQ6YhK|6692K_YPxmgy6HI*>%VIEG;;6?nOMd<67 zMaVS+_$*X~R)ZX5r1l^omE{UANsJ6BBSLyR#<#d&+LJBtyv=fr*fMCkufR~d8r+u3 z;-Qr(5>51wXr%(BU+YmYB?rsH%h?&CHZLPaMYY(2)DzN#q1c!`7ktsVLR!vG!PhSf0 ziyLA8NEJgb1W~t55t%C%pz*U5s!bMR$HY<;25ttotQ@44F9pX=0wQy~KJ2S=K{nVx?07uGJecv!3X~ZqY)xt>8niln&UjF(gWJ;P0t`LlK%# zP2ol2oF%B!S%>h&OW+~D2<01e;d@A&)g>FzGYZJ2?|_S>BKE6p20!bSc-O2%p0NhD zcZ#F_-E1thTm}7K3drMS`QX15@Gp{pP4ql=J}r-lEeb488R7hNF=)kc!FUN5^xM`z zQ+_D|t(8%`bpdu?;DMwFgVF^%u}N(vJ0sD;`bs^V9h?K@d4S=p@I3)LR^ND5ZGp0p3gR!z;_E6oBxbC^;Bp0a9;b}F$iL*8I*;|68Zg#TK@`ti z=(00}E*2LIbA+)eUjkcyFJf^~8!vL@(ECCa&1(!G->V7hVF_G#ERD#hMd-Y{9NyoI zp;t5qqS-rPIxPl`QL-=%(#NU!%ON~-KC-K{;glxC&Y0AYS7!k8?F*q=y&P*fWpLPY z8R9RpHOTrfnOIh5{g8pf4Rw?`sX;bR6%mWoP;^@lyNtykmavwcjf%jDt-Ic0PV5y{ zgYI=vSXD~0GbTmkRLQ|a6DVsI$I28Ila?<)(&H&g-Mkn^pGA=VX*0I0+<-taEu0=&aQ2>$QxOKRzb%KtcQP=Xn1kg~ zvS_YQLQIPSzF98-&x_^YTB?p+Ei7ISseyK~KQmv9g8aph>Ena*{8{*YLlUwtG$8m! z2%Xidz+WtaZdQ{|j~0Z@TW*x4D5J(`fQt62ph9zuqBJpXDA$YU09;3Ka*e3TU-9ySZJUWg+(VJ7@nErX)d zOejgM#p^f1h}}8|yC!F%R&72mKVQJ^k_p3ejsQE8mPA{JDEyylBD|B0ZK(q64Rm0~ z>L{awD(qg}0$i@2jtV7dgmKS>V5b;dpU!~keOm~}&qQ;ABw7>IQMXnYHkvXhZCwDp zHUEhF;zAVM7DexBX(-mn!!~aQX4cMvQpQZ^IS8O2W-$^LENZUqVuuoPo=yky|Cc0D?USo~Wr4x2?{ z$gxs}v*b#2Ojp6P^wl_fZ9cS~tHGSrXxd)|(DWZK&OVaEN1+vXa$O0=UlcKV;xGAE z&xL!4IGhU?VBT&HoU4$AmLNB5eOTP*Uj^>YS!n+|7gwuRfV+4xq9=qvb_)1uB7v?s zVvyar7#$LG(bL5Rr;DAGWhxBGj78XfUl3zbQ?xJZ99&nehuLKvZ2BaHynX8U#m$9y zEg9(TTZNaKmg1zRGS=n%qzf#k3vU$%|L>KEdbAulLepSuE)0V&@_0c@Q6M%SEsMm_ zt1b;&IhG3y6;L{Bf>h5)qEwOtsxzkJs_F>!ZxDlL88Ze_9P*FCrdVD*DuW_RDV!UgBL1Uu5g4O{B*`w?>>`OZ zO>!tbH3z>0MWNxq2lv%HXy6hB=W-bYU;jd*0n#{>v=I3mT(I%4qscy5)V-4iml_A6 zfAYd^bb@|v|4s)&W@71UUZ|9FqvIMM#KQ%l$L49^r*h)g5`^f`KJe)Lqkuo+$Sh>@ zw^9gk`{u!ecLw|wYbow*Gv&UN!q6UZ+*ee zfSUL=+W1Enn)ll%pJ$Y2mr9`GfDkzDOp*2!2b9xhVbWz2uAc3u(?i^N(5DJR0bYci zoetk$qR{8$K}f48+^+LtO3(<-ZsKg;Vv1(X=f|!daYWgFr1Hups#`um?QcdXVs#DK zt@%drbM??F-auL!bI>j!33JW4;JK*+R0<$`-7ry~AXyjW2O)db3^HGbv_XU zotDGgm=>BZ+e#6~_`tlF&w6J8i2YTD;Bg_$o|1=0J1+(+$BAQ|I50L11ExZV**6O- zNBN<4gw3h#d^rDk4#Io5k=4~tHPimm{&*o2NejcZ=Qj;c%At&XCe`3s$jlbT-=i#d z^@w1iR1U84lIY12#3B!FHmq|oWFvxsePfiBITwe-MZs%64Q5tcaArB>s(>KkmkXlP zmm8}!S-o~@g3OCrX%)r0>m%4_Cx7!%d9! ztUt&xaz1wa5ytpJ4&09%q=aN?s7tZBY4ukUkq|&8pD4OJ$0^w~6f&$&X$^3}FLMb5 z9F&07EA}i|PQRAYNqN&cNrqn#RUz~64KmOU86}U#T9O}{4*QjJ;NdbIqbxtZJ<5-9 z$E7gmt06;10BR0Hw~#S*!GX)LT6#=11>B`6NKw80Vu!yN_C4xQQ*Oc ztc*ztOyB|2DTM}aAsp`%#!A*F>2YwPY(FPFSF!aqI6_A9B3NM}45gWWD5q?gj%Nwr z>Kz%Z^r@zCkrtBn>7jkY!mv9rLD$c=(`39nCX*&8Y#V$1Thn3eH$lfWx!`|)7S4R( zhWUpdl(4Is^cQ_2{<&N@B*4aa^gB6@{~+_AZZejbfulTv>@MgC#g$2*Sa}x2{G1r! zCI#qO%|^saZshH(ro@AtMAE+~iNzZMR~`iX7^ax+Au{j%PVe)lqi3Rz23Q>QiQ-54 zy%`ua7lg{5d`egArSxsQ$P1bUsc;e4>>Z-q7=Gjx{-F~-(;%HC1Z(9~Oay^W1o;?qBb{FWmr6@Wt?4Z}aV$h_*>~D%IUO># z-^ibz4+<9sDc4pAGLpjhGAV(Ts{HU#N@5aOJUi^dfk8tKG|l=&lRiJm$(ajExl56A zWfN-MXQ3==8txeJVszOwh@BgzH$N&!_oEoQvnGZjcPY$u=RuwD7veehjShYk#t9aC zx7{5gXS(Virz1H`A_b0+{!Ff_51- zlFiYN)EfSm&V1!UkNhpFFLOh= zgbTaM{?O&0TnKqT9TC|q4=8*hj&M#)>|yha#W*XQ>EOuipp`6#G|U;N!##DBe6^Z< z%s8OaKSfrnxlxqI2^+3qDs^D&G9nRgeQ1R#|>E0S7v!-q;5pJT?f4$_m zrH*#-b0DUIkKG0RLo1DoNlonwd4x{V(2yWBLb<^a-$P>42G~!znWTl6zmVT}4aKsW z^3%OJP>K0MUn7?QDJ_)eGeH_MA4$`rpALO*p%bQW$TG2gVRp9_7?&3kL z%~#5HIm2qeLE84FiE1Bl<4fCj8ay{hMRk1O59*}~aN-n4AN@J}h2r+`LP+2(rIx%W zg&!F-zKsWEmEB~<#lz|#E(9mllTUgVDZ759nHn{uYLH2TuX||i2M*{?y`iD(Ix1Z( z0?yY>BxNjt8rea5tz1Rd*LTwEI~ou{_qI2acH}1#yfHzieDbM(UMty36_K>gdpdh*h$LB$Ch%m8 z(nq+E(3VB1(p}`Q|B8CDxG;Ck0DTi)ia9nMPzb4`l5ad1)8IwZw@;+`{1dgm_)Q6O z1yJX<0|(0MX!Kwg1+&<3N2h}RVw}o&5FKs@NS-B9rHcnBI#uzQU_?&up zK2s529l3VZQ$t%fnMS@M*}d(=zktn^PaPC;yMg$mqDa#71D)ZFq0TL7^tG^=hIX}( z^F|J&?5?CH;g7V*g`H(bj8TU5XIk7FP8BnU$;|mP6?}h7lK#CUm(fACnJkV!Nu>8{ zx=H)j8&aP?L7Yq4$bVinoqygz*&pI5oZgdJ)h`;^P(Y5t-9(2*NX99doFj)xIHQ;z zof@PKGkeJPR64zRGD;kaQdr&kj>>a7$?((|F&F!&sr4)Q-kpy_r{0i*dkUSoQ$Z`T zf0K$y3H5Z8QP$1pWbfWb3cRdF$x5XtuX4&ZH{TUrE=RjqjE>q@-I)+BLhGpRG?wu0Mlp#Oi5mB^!gQ736TQ zmbws2e3p6S&{IwAKl17D&oc6UJ3^w)9Ej)Xq2V)MsYUV&72BlJp))TjF(r*A?Y`3~ zR;$YFuBS<@LOOVT6)HErqyswH)c)l&UDwE>0l%Hd9cZNHKW}K#^DPamte~EW777V# zrQfw*sZ;qIW$C=5l~vWW$TowV`^)LR(IgEhwUJp*Ev4)(Cy&z;bYV{iRc-5{*?)T} zT!a$}gVi)$znALwy`bxVQfMc8_GX-uB%b_+J@0UE{@ZzB1bXUn+52WOb`U zEd@lkP|?;tYW?wroRk|VDgPH`wRO?C`>aox`-?)j2PouUC+(Olp*EWi%B?P=PN!~i zO+K|AucJiaX5xx3 zqYue1h?lQ}8b73xe{U~k^Qpm3q@P^b7$2%Cp`*>eNk8`o9TqO8OKdD#``=LYdP7~ZZz$z( z44JIzBcpq{Pw*`SWD{`ZkWu3Un2&vPmi{76~b3+cw&FdF_BL{_UxsnlhF z&bob~166h8!E{jk`Wmvil1Y76>PhNoC247e(A~CZa^`+VNA468#}AfoVv~vgZwxug z)lslPDn0n|nVc3C(0a}e8tu*^Yu1-KSd3CI#~aG@%cJr37&`krhvW`zhUnwBw6H&j ztU12Y@Yxjd%uOJVWi_--yn~t!^ikK=23lJDff@^IXyDL$iuP+DRlPS9ZjneoWctYJ zQW+&S=TWhLC1qQd(WX5mHVCXCQL2k9@U@slC6O`k%K_Y~FMFc<>Dw zP#$%bwvbtV4qa!lxkl$LtEC#~fPM>A3%AgBHV=2rFJR-5N=2eY)L>ppE|*%#dO;yQ z=Y31<_p)fl)pryLHYQPnq?z-Y8uZGkv80{~W+lJ;p>AYVZ zT~Lgr_v!&8F4jdWmS)kB`LAiQUn-4;=Fp}G()hDJi&nAmbjqxt=o^XT_N<=9-{(^P zz9%HPB!LcYXZv2&1r)^*PZ7t{$j+dRlvbn@b0&_=OFHPBaxv}OR7A0--jc@4Ix0-< zAUU29;xl+m3R5{$=i5LA^BYOy;7ih!W3f*zjn2GDrs2#sDsOm7AFrfPMNujl_r9Pw z-EVZ=`584FtEACAUDWcckYYq$(#Xk;$cfG-?I%fO^D2vqS*%jX$t30OUWz#uLsqtt zWU?iajFiJ@Y7hIG_R)0e-)pj!_(W5$E6GwKh0H=yNe4+J68Ve-4I)Y3^99Kvh*sau zrF};O>7V6$vRP6}HBlL~up*Y)SiEVp%piH2Y%0E3N?&}Q&`&*I`gT5(O6=L*->Wy& zbf=A44PR37w=Cja z5Klg(4@mxPE~$t;X6wIzq~0Y`@b_fex!8w%zBEvrM>g3g7E*|O|}k~V!o#YZ2Kon9nO{SKv(sVG+8 zdz1Zm4t*=lAjh*|H1sl>+(u*R!bk>re>#YB121S{@@_QR6q8TxA~bA{qD_zT$h2mJR0*elW+}AHI)koe zy`p2@>GZYxB`w#EARhe?iWdr_hJ(+^!!Db)-FQh-Nl`R%tDeHr3TS-aLu!nBOC!<2 z6tuyE27EKf)+LB+d$Ne1o=||UHz~}1N|qLd^mw>{=H7~@O$N?nc{Yd+vOSKHx&~VD zBa(J`7E#j9hg7(d&CzwyL^Go(y)uq`*VItWP!PGTD57%Hcqb+9 z$rU=LdjmFR@91D>4yjti(>=2|67Yx^dGQq)RX!xyhD^FTTY-JQQ7DUhnKboq95}f(q6XTnX)yX?)@t#v$R}V(-KPiuDmAE z-~tl*7tDIhdo*sFPUlaAP$2v6yP_irw3$hx%*ZHu85d6*x$cocbpj=?O(wPY6jG5+ zVl`eNRVf#c!@S27{3eU)5`1Z^dp_Czbt0{evDC95o039fNI~@uiN@b0x3+xx;SoS| zEQ9WwgwfaHS{pf5(g`$*5=al#NBm>}Ya$n?ri*y-4oeU3&5-j^qMDXe8B>%8tz-Q32mZiPI^XH&7M(|#2q35KU$X@O*j5W(Uk@Q)iq&zvhRB+OZFsWOOj+Bk|e2Q zDM=;Kt|ZBpB!ncXq>{HJNs>w>NkWn&Nl22U5<>dU_Z!!}=gd6I%$$3*qH*#}EcC9Q z#+;`)@T)$Bs)rFcAD@T&1{ru2a~35gPvK;ekBxzWm_GM34hdX=_rr(aVevg2UkDrd zGvJ6}&-?Q^c5oMAxbryUrBiq?nhE6%*I;FkfCa(nm^4nt+gJg|Fn>8mgT6m-t-gVL zu4Hs5X5+rZHE5`_`{g)^Lqn&KQqFL}q6m1O0}uXFP(FGLX1;~k*;Nkqat&ySmZ7uh zBzC_K!)ReKUeaNVvc1oeEykI%w;^>T8JxwJP?%JKpue$DEk29#+Q~1hRdXHRL(aihCIhSYAAx=14H$M-;K!^ajM-$uLHs)GIS->#@;?+NvfATq zUqo!YfKKlW*nE5n5nZv3e5Uk5aj@QN!DH&17yEHe=%jTg}qd>IYH zkw~(L#^%Ry=nqUoBEx6Znph~=hr{sHetf;1ilEjMn0qB+ons*ETdyFs;2Z+$+vsG52vo zGYj&!j$-?QB=pdESS828`cEp($+MiAdkk5U>Ckz+9ZifU&oFF^zstB%Cmu4-l31-G z3t~skqC@-wtndGa-In>#(tV7w;cSEi<{{^26?%3s@8Ww1wtFtY)H57e5xEFHnTk_< zW!Niz0|{4BVf-Q!i&Zk<;gt;6J?RjyxCp;5_t8;$3e_Q3V7xjVW`7H@((N#AK8(fb zwUPL&nt0~aJtV#BQ@@a@Tj%ffgV_PB#f_$*TOv!E{-4X^2G2rLf6*XO74Df|?C zOtO%y%yf<5b=dk9;oNWvR);1c;lMF$w>^$2j|*|eH4P7>Z=liTI?hY-vbp24C{~UE zcg`N1jyj7-l|)S5zlwj!PsH9gXVG{o6SviqkQ2KP zVLzi$`6Ln3=4Iksa2lF>ys$9rF!tFuqj+&VgwCd;^h^Yvx15H^`UFgvU&a)}m5!upJBQp4V`!6ai%C1OC56&clk7AThp=aL>vO5&!ghi zS(GwuF`w%+E=R40al~l^lw3ucO9)0~&mcP}8h#-WaC}vd&eSM4{mMkv4KE~2`{9_` z#q?Ed0ammnLSFj-lyn$(UpouI%Hyz(zkrO9vuKiMJiRRs3yv0|>Qo*y-+w~&Kngl? z(~+TY7rwiX;3kXx1x48ia7l)`{2?@Z#IZivDe%NbgD>R@LJA77*YqUL@tnt{DREdt zNk~5#i)*O~P^&)$Q<)$%ZD6rda~VlrP9ybuHWG@Wk*)e4x?2Nb+rEEqAausg@}-!g`SThejx%5lVS z9D;GkX;j_Jfb)rTq<)LW-|PDjUhIdVm!ghg|MjETHy4-h1tB#q2VN#2DBTzgv$sdF z_1k+~b~}pKhw{<-J_&LjC(v1!4d-=nxX613@jFs6ZNpLIzm34shGQuA4Mgs z0!I{2!FFXTUKO3imVQrc3C)A^y<8-GVA$c6%6#{Ej7I+l74-zZgI=P0f}z-W=?uBe-%f8~cJnP}g?^P7(j3_Hk_s(_vq^7CP&STXLHa}uM?srdDA9}cXFz@vxR zu=$aO9LqE`td53=*(NmQB%rJ^8EHF@Vs}M6yhM(}Q{V`c>f=$oHyHdTerO+0g;~db zI8APV(~)T8@?}Hs(_W0daK$o}!-!rTiu8&&8xzewc{f z1($A4MK-w-k2K+o4mya_i-5*zVkgxbGPd-?$ZVzdaGWdKIif<8fE)G^R$bM}gN)+&h3SIVKE=TL!!~FiiGbFUwJ;sqgH0EMQB;!(A;xjVpA%5^X*C|%B;c3deguxY zBX_kQ{_w`brFlM@f3Ah7!3yNZdZNA27xgptVcDKUoZ_&7(er31KV65;3v*$nz8!~i z3=kE$9oc__!F6FCf(z}@5!wfOwE{d}ej+N{AI~pF!O(jFRxe0JrA#oqz9wNX?j$O7 z!jRV%1yhw6mLu~JS?GrbV?Qj~bRRxoQ6~@&w|60sK9m6Ci;=jxhvBx- zN$}eG;NR^ClrHi?V5c|sI3L6n%>(GOcST0qVPuIegh|3Y$euocf`C zZ9(daM097cy{+@dEZ<`=sQ1Cl$OEirbpVS!y}?rzjg4g+;Lw(V8SA64TRj=eCwHSm zCl2>o_hS2aEH>61!Q%5dEQYqDm^T9P6EWB|l7OT0jc`-%1TLp+Ln+hDfqUcdd*u;y zojm}*(lA5}CP9yj;q|?vF#o*~&O2h*^^W0HXEHMPn_%0sI1J_ONAKr!^bO8LSY|lH zMvma*k-bnCpO4M^tT3}a0%B}EK6oF3Lgfh@+vbIwoe4-FZ;0@mM9tHq_&d25PGdVT z_%#ZZ+;O;lA{txrBT&>A4w+@~;5oYqpYLwNoy*ynRT7V+#V4?1mJ7ywOwl}lCnh21U`y@%fETE8HVP;qz!QR5l+$uSqD3nJ#QJ4?)7O zx!NXZyalO3&#lyED4IlWU2$yb@o9f-w+}V-r&$b2zHtdn|-HYf%kmJ;mIwK8gYf*OiyIq zSd7j3CvftU6T(`fkiUlEVNDzgB?+?@M4ENf z`w*bU_AM#|g|-Q}xMnXrzJ%kh>~^>dZH3@NA8b!2+(})A&7lqm^Yg>6CPzqp*^jlS z_v2L55}4_DLpy36xK}%&A=M8-s~u1m8j4!pop5OPVtqze^eqg7mxMhe>YP#U$?JH2 z$P=|Cae&eagcJoLBMWdCQb$zM3e-7=LVXE~)3dA5;qC~-sp^PPia^hOb{*!a65RZ; zzK`M1V{h2_?L=R4AT|r{MA6U+RF+s`#`m2t+e!HQ!w2QAtk$Km5v8N9XppwU*6*?q z&|3kA@_3B!Z^g{>9;iID0P_BJ(DvVeh^<=?SYQAP=Y_}*34`C!K0R@fsUW)mcao#6FN4|0Y}n5J6`=Yxirbz?u=*7~A_ald21HP#1r zNB4_^aJjV>$vQ0O4y;Ae(~ZdfGYcng9)`}W1t>f14YRU2*lTQr-|vGU7v=)(iA6}= z7>L~$ov~>)5ZmMf<=N|S)xZL2+y|h%)ddZIz0lDH=p+Q=(%w0!>-9u+?iyT555r+$ zZxmRXJ33)GG?iDQdhQnZsIS39NR;zEO={n-Vc8jg?~cf(aqS8#4pN54@ZEW8OzGpsS;_y`Tl zow2vf5+{o`!fL8L_N^f(crd@my%-ZW{=cS+&>Z54gT(=mGv0=d*Gjlxtb>+JNkrN2 z!iP*{XuWY~eS~co%v_9AGf(g&AI7UM5s>`qiU2b=h+ka=%~n9@w-ctmjYJLwLMti= zGn(yiad99nPcFhQ#{h7M`$D!zLI?f55urPZ2!80^$T{P!`2KO9}l8+Y6y~6>O#nRCnR!qL5z1k+%#Mf)4dyg z!i0`&=6xo%p*JH8v;7HrB8<}?xS{sYI+O*oxcuURUS&_@<{AR$_uxs1G+G7@;Ah4L z@b=jtZhR>oC2qv!`B6xHvj$~Lq_9*}1KCP0D4r39z&W?EZs%O4l?8FBmawtYAL{0t zku16zj$KwLy0aMV=eGwl4m1}opKLe-VcSg*Vtm0j)#64{P-8fK{3KM&_Q7eMMm z0C>&?Bg=X{(l+~}DQ^?Xtye%_%>fUdhhpEn0Pvk(jaf&6vGDdB*gJW`KT!x`lB?l4 zB87C}0Nm->hapo-NXu>j|IuLhe_a5tQ>Nf3SPs)r7IW>MuzSqnGeZL|AuiDTy%|=I z93bTM5cb_Z@cikEi8vojF0%%YqbjuR529w4E1HD1;ChxnC}|_I?#;%aSp)*AETLSw z8%2AkL+Pm*P9EF{mo8HTdI!QlA_Vm>_Mjmp7)l3$>PjPMvio==vKQet-iS-Gf|`pb z9&X!!i7szU^1DN?RSzwjc7aR56P+8KAYr^5r<;ACmEwTBd#ZS-v<{=+XF$htEo45b zqjct4>=^Pu&n!0>wQYcHqcV0F>p^_X85I)Suzx!Hy+kwoRguMn+ID=FIP5rlV-e$9 zQzZGX!FHxek9e;|gm23!t=G4q1M-xO#341pQ30_CEt$iuFSOE@S+fK{({Y^s>n^*xp%- zvt!a2-e3eH#$m=v4BHI#5dX>!<(gKAz2?j6UlPzd;E6MOiy)=G1R|#9@GP8%qobOL zc;txeg6*jAGDO3m6RbbZ$M*e8;lSyRvPlQDi7s&*k9LD8mp_V?^kDLyP0KNlSM;*OMDeXJ|A!&sLeH100Pxh$6d9xiB=7e-0ABN7*`!HQpmqw=~) zY+8(z#5L^s_QB@fBCOF~!?@N4oR`fp@yH0Ky)$rRRtV-Ou7v8i6)Jv9Bc^69zQ}kZ zN^c>{Eo->!Wwop_LgeE8P@cbl=^!802b_cRzROX_tp_JB#%1v{aLHO1T%sHB-M|GR zXB^;VY>Y3NRbg+OY;f#!kqezZT8=79ui!i29$% z;oaGB3N%{@t>YG$klO@PX9pziS&p)JTS$xpMXLi~@PNI;)Jg{%*qYzz=EbU!Rj@d$ zi=5~MFw5~q$$fL|JhBy<sxHhy^Sng}wvd2K;U>6>>Z6fi=yRUc z=zF;yt?A1!w!sHRSG+Of$r`MyaY0t<0<=}mf$Sbr1eY_Nvf3F^hs~koGacc4CfFcr z4($W0am_~${B0KK5Ojv1<6MaGt07Z)2R_Cc}9} z4eBq^qbF_{SToOZIG3JAs$Fj%|UkJWNHT1pV z$G`zK)P5ys4Jp9HlI<_|d`PTYiW!=gX!BYG*S&%eWBRT9^9pbX%|}TGAA+td!>Tv) zp*VLoa?5Pss<{aLrV6ZXXa(!5EdJh_qhhfsPU%S?w{b2qtMrlT=L|pB>9BKlLEj@i zSZFQ8yOu*3cU^$qeoeG$&q9H#E;@gUqSe8a&9z!W?Ajt$gX2g3%Z2E;ZieXMB?!%s z!~Iw-?1<37$~Zf0pQ4D0xaBy1SPj`+rciU#gTPC9*dKI7*%uS2F&~>><%GIT^RP5! z5z=>A;gZ2}ykHulj)Ndx{*#+U!DxhPfCL~U+MAMbo==-RP{_vUbGgD%{ zyoJcr|3gvVrNFyK982!x!N*Ps70XN^_aXoZ3>yo^Rq$-ubR@CsPvaE?mxwq5ie{qy zgAxRm&V|vnCFuQ61IH81q4(GXHubY$c6uI41MM*)tcd5$LJ0UMg?&7h_+3P-Mxp^d zz6sK@mWP- zs0Yz#eHf`5p+RK{YHl(7541q(&xHugT!9@;4vS^V67W5wgBop?51ayUJ2Vrs5;+|GYRr-N+ZaYR5>Q_$h#q?`=rNuv-=>d|abxBS z#8{0`1=DjZkR7@RCAOx}a2p|kd+g}FmMQkEUyM9W2iCKihuf~w=vg-#rJW8)bzTJf zzosbGvO(iURfq%w#Zv09Y14=A=da5XY!CBecXaS=`*b|I zAd64RTCm{`ahkzA$eRl?kkinDrmZ_xh1g(zX2i&mF(F&?V8&Lhw166Xuj6N z&>~>e%@Dz~43QW8VB0ny6}t0KVk-*Imq8;gMu_&e5_M|ZI>Q&x6cKShAs*k7owU|7TG-W(fLOWX<-(q)UZKQ zs2!Wlv_|g>9%Nk9hRn=4Xvk2&o8d+1v64oaq!rS`r!(v_f>pW=zP8ICCPEoK67!Jv z!3IA?=fQotIV`JY;pHb46bahE`k5ID8D5sTvpoxaPlXz$$eT3AnYw?p&Snmp7SBe> z;b}#sbRLBI1KEJa5-EC z{40#Xw@3#`Z7PWClw!QC0NxKOpay09_gxM-M*48_=Eu%XS=1)Z!yQu-JUyZa<$6Q- zd;KLVrdhN|5wdsnQMO7CLaS!M*Gd?2vW6%umw>;t8k`I?VYGiPgo-p!<2ef^1;Qw9 zU>G|w6JmX{H&X^!cBLD<07)7n59k~N&Ly(k8adRg@A>)_pdDO`N6kAgST z(ZKdG{ihy+&wZwUa`n`DVT7iY$g%mvAodC)BP3>P!|j4%v$~8r;+W=k+0afMM>J94FONm$(#VWegJ%3N^$aMZq}l>{Ps}j%PYY2Na=1`s z1aG~m*yg~A>gQ_kJ|YM8<;DT(%!39RJp~~0ObHp1Eo54( zjjwiEsFR!pW41QL_bj z#XA=%k|t=>Vf6}i8&s(-!fjgKnv3FmF|!1c)t zzqc^W%433(aU)Dz(n94Q6Aa2Lu=q8{&s8cI&(nbB)|uFF+XS@Q99)a^&?#(=ww)Hx z$zglc$NZL#3jRIN#)LbIKT8$7|1Jc7LFUgCwP1K;4odR$kbQq94ji+B_P}f;Sz1DB zoiK(Usza?x94fZ6;Ss5Xiw7(bVI+@%hq|yH)J5%KLukiKLgmT~xL;>_@P-~*L%Qgu zwl;PODj?Es4`j#0v8Y%K?HWROvQ8PxKJh?->A&z)V^l&5Q`bo&b&W7?%}|B?EPgm| zGJxSdWAr~W#6B2c%0)w%$gxc^T63UPl(SiFkd0ZkDtT`x*K0akgiGHG**Wwrun2DrlJ><<%#fHyJtL&4) z%yFjA6IGF}G!tqOT6nfY1-u^xQ0}GynN?HpR-FU;r6*`pgC-O&^I$?m4FVP1xEiSd z<9BMPvzvlO2N6UCb0gQ43kIi!;S`_(nb~|uiLaxxo2KB_M`6^dNrR_Y6mGxfVzQ{4 z#{1MTv_S)}#Ad;!K#|R-k5l%jn$UMe{eQDF6S2Gh=A4szK2ytk9;zdKG z8lwIQ!E+glg}FLV;L^c`0b%ByRG?oXhCL4?aJfkVb51DYi&qu>OPi#?D)#%cwPBV$ z4aZt|SbaeQ_RbaLPx8!bb7N=FR5q_{f}#h*6v-t39TP2hKT||l^hb)Tn1*6cSuAh= zNS=ozkQP2hrP88UH)D*>ofKkoK%Z&*Q(i>5{G}gnIACfdhY0zZAWs?Gb>oH__e;_m z|3!T}1Tiu)4FwsBczZ(@C(reh=_@5%WzQvZpAQ#prs3g#k~rX;?ihJm5QW;37>t%j z_Oaw-~)8Tbk66#!fNUW8|n+y^3xT@giJ58k4D#GTmHb!*i@N5Mi zgz98qt*8e5r|K9wt%}AZCG1@c|e%gs2>=XAF%~Vz@fcqX3yr$`E^?1`Fm*+&A(gTv-?A zpDUq6L=VPd0(d!{18SeOU|TZ-hHGRIA*u=kO)exo)B!5?{{53SALw z-uj2?FROt=P!Xj}bCRh%xURALJ)w&g>r~+(V1nW=@opgic3L zjUa{vM(EQyE@XJ9!uYrbek-y5%Ty&KCNgfn#_mb!AH`haz|@Kw`ul+o1@(VPJU|RE z_(}@499Tal!s@uf__Kx!nKz|a&1wpp-<#*($+i4R}zJFhuPuK9bdvDQp&8 zf@$VYWdDNsD0V)*!;TwVdd<{%{W}$Ba6*M)$4IRtCe};9d7K-KpM~*NL;|f_gs~u3 z9^p^Lp>u1Jbml4|uU7@ug;O!`X9|3~1u?C0h@OAsh35hlBzE@F^j$nSmm-MF*{;ws z;Dk}AC@L25qCLBrtld<=C<` z_6)XyC|W3l_0t59tMQx8?2&^1hM&|aD2GfbJ}4iWpoJuc;kje9u56U#Z*pR%_*poA#$7@ru#frtoOQx}Wzmq|q1|q_hkiy`_qE?qhWDw=z0d90m?bB4C3kL~>@rMqM6J!(xyTmBFKI zX{d-xVlTszUD7;oe=UU^?LYMM1usJ1sWP28Nmbuj9qW`doQ*Z{DT2je^ce9Q{G~{} zNxFAZ1Z!^dU~|3%CcbiG(;a0tf2V|<*UG=wmua?=7R5}TZg`ID6YPDPS~7_#OFqBKne?lv5-`2CAoj(wnB`6}`Wl|!&0 z2gE*1Qu@E^lqK?!+`~tRul^pT9`2_Ndw)@R05^DEeWi!GKPX+Mj%s5+lSo-JWuN7O zxk&*Hb$z3i^PiLHiB4L(ofkIWe-aNbAM*+yDBb!yEl}*EQSm2K_4*;TWnL!RKNHlH z@Q^+fNg`RLoJMB9AOof)yHz-_yN&T{dN)bTk8zavz=4l@-&3WGB*IR9BE7hA>TTwP z13*v=5}#Jq3&A@j&EJ9~I_`;)~m7%6P;989{zDcFDuaSrD;X2S}Ca=YrO8 z;^F*9lCy+Rt~5aDf8}6Z#*103j^G-`iF!_^mqIvj-|HKV>F}ZRq%5*7G?J~iEYd&x zrbA1+DLiX{@;~lCV?YOWw2jf`I$p@g3bCH4JZ^dmW4{?cK3Wda=4+p*>9i!~z2(LG zc5zszexiz>{HV{Ir0k6%Y`-VzLF0F7?v+IUyGV%Lm4K|&FOse5q=0W9=%ErfcKzxi z{}fToKE#j0JV`8Z2u5bx}dY z2a;51r4$Y+s8`IzjA;xL=KZDs{XV+zPz0+!PLRkWKFAnIKuT(m`pieEx}}BI>lTwd z)9yE7yJ@wDB!qwdBh^|?d`lKa_R1!TH~&Pw+g_96fFK;T-c!R=J`}$a#t)fE>L{2B ziILm1{}{_7o*$H7Ad0R~UUrs&2X7rZDC$ZF8S1^JWdWqxR3CjT;D+C| z7Fr(ri%Kls(qTDGr|QE$XmbERZgoDU7+x`mUhgN9ei1gCGEDqgzsRVWA7k%%(Oa#I zJV$956>=drK!lwy6o=j93>3GCAp4ah9vRA_F?y0LD`eSuKv~Fdn}U;8l6dk)8YgF| zqF+)8XTupczht$j#(wG@<-#mSDOi}XHzl>G;KzX(uwmTaR3(T$4Fx2n@!*=IEP^Hk zaQw9p8YVT7p~#PB7a6qNWWIQZBK$vy;l7a~Cft;<+F=T-(er`#j0l@oRK@OpJh0+Z zLyna^WVDr#^=p`d80N;DQAW!y4IHVHgJG2%sz${zOHc-$>=aE+uslTEgz)>DICy`5 zA_=jXuzvoJLN_bpX%81{B8BiHM-bKWLJ(LoNG{WaaDN8F)*T|SRpkde4VF4!!zVbtA@gO}r#{)ifK2+=wgFF8e zn05W6CZ;<&hQHHzw;U2ai9sS<0ReYpq5Pd2$w{2J{OvdOGM=yd$uwdz^R!2&GA`wS zmuEjor3z!K5D#{+oNe3wn`Rh(qIq@Ssn=8mH^PL$=if|4qNCJ!h!1s3+enLf;s!ll zOuHe5p&D*PnexGfdzeN$2WgYmZ?Y}zCY_5c|7ZOsxuQ>`e~oF7EFM@t9wGkvdaAAv zLOv%qezrA}-Fhy_W^v;0(y0*7=R?lQ4^-6g$xoIH{|&a zldjPu+4pimcarH1<$AKP@1Zp`71j3RWalK!UJ}cEgf%D5iS!a)cTwYl4(iw8!AR2` zvR*3$7s;=5MDri*>Z_)-+P}m#hX+N8_sJ=j^#GpNQJ_8#gv&pWNXRF0vj0Q;%A(lZ z+fIpm&E%dwLfcY)P|x*B;+JZtfRYY6v#6VtHoc|?dd84uT%tAHO3T`RkW(Ee{#@!H z57%FGKJ7hOrL|C={{@N@pQJLTZTNR`;p)u0q`vnDjoH7U58Wdq!o12}p05;l>mB(s z&7sA4iE=bwP)#HU#xxtLdDU~0TEt=_ualD7-ckO(k7O3`o~HBWk$pTjWS)Gb5Qmr4 zIDeQ{GVX3pt)M@K7s+{N6~)a{LF9su6uGXOv{sLk`-4Ur32vcsj&jOpb+1Z}adMc` zMm)9Ul8O@kS_dp zoUHZV(KDM8QVp-5ge8Bdamr1KXX`Qb@>7xwdO+>f?Q~&DE7=@+M54OyXjafOY8L6C zeMhg8-KE#m=JSZ`1O{m=f(i&S`ikThi`=%>?pI&|_9ReJrQb1$0cr-uNB zC6lPGCyJ&9o+X}l`Bb9QMlwU)lyBKVGHUm!{EazU3d`y4#6!BIc%J+X1}Ltc{cQ_3 znoN^vclZl(4Qi%Tn=#5si>;s!V95t0#WavG!lIaN|D; zo?Sq-zu%Ll_d}ZC;>4u?6Y}x;j}p_L(a!X@(IZTO- z?PRU@m6Glx(=o4hvSsf&QKJq@I5j{a*FO`-kq(;sw}S`&Q)2-*-1k zil2f4bzbaTUqhY0_z<=32XPb)(lV`Hn)-wfTz8+)V9ZaF7k)=yFSU}~;BWf={W*zp z|D%$^zr-(AMSAxiQR4D1G^%)!TyFfL0>KB=u=fLXSQJr^{x9-d`nnjYbqg+)PAbo_?=o!UQ&DbA9DIyMABj}NhG6&Dl~gYA#0p=GrUt^ zzHBtRo!a~A>G1G3N|3rnVyo_xHYXuTv4J9uzfp+#SBg3?N-1l8k$*-rov{2tM*QXE z^Wr#7uNa_W*;{no?UUiXSZynij-Jy~t41l)AL zRoG41bzc$gJw@bxqnqaOO@YmyE-K#ghg=LxseGW1-17%$z_phIno23R{4J#{d&}_s zFU{FP2mvNs4%P-O7 z+dH)BW;@w^eoKRW$7tI?JNHdo)y(p)!R%7qFrp$ zSpF%u(#jP-$aZNj{ipqmlvRF^>KF&4gxkn>Yb~`_O~D9Tvl5|i^!CL&(m4K$YPWD< z!Sr5AI5SSIef*e|?4!H!pJ}heRQ9fx@09iI2j#r@M*K5}X`qq=>k2r*@9=|KO@EQZ zvH^PE%Ln#FX9_Llh49JWlvK}+)D5r5VB`yJzc)tvM81(oLOd6Um3i?da5q%`BIYvsJzp2#Z zFExBDr2JYg)*tVpedoT=+u+v}vuT7vt!wFL)q7H{=fKzIXJpJ~M;fkuq$HttG?e5;Wm^XMamN!L;&abrMdg1n{PF`a1A~iW^x?w7ZpVy!cK<>w9R%z#wf=dq-gnpGiRbFZnR9WbmSc z7Hk+G4wgf8qy5x$u$RKhdRczHpr59puH zT}sfqPv-L;l7hlLn)dhxnZ=Tv$D5t!n=cF#x zN)kVwlX1;k5)^A9CFa$PDxQ!|Tq{|dwa{q6J8GYjN#{x*laa?Ak|=E_(d^fxm(Wdo zp3i7~(|sDa`Hu1iF4Mlgn^eNnMzdBjuND58(jwoJ!dMS|F=`=?@-A}tS55c+{iLwx zV{}iyfqCPX-D7#0PSruM|--LSH|Brk#&E>DsXgS`*Yk`Vb~sJH z^?*2>?$L(#AIS6W2a=opg|e6)Jan~Thg0~LA}Qj+U+vhROM)jMC2ed9Koa_13!h`vYzvnuKAgB#@NeVaY6T4&#qc(zYtG>?@Fma?K8QZX``y@2HJS~F$vmq&^yU9 zGar4A zb+Vmm(?)4>u#I}%dg<98PImt13E9cMqIBjl{*QwmEZ$6*X1(<40jZa;YqC1RHMd$i z$Mu_@={_Qp%-du)uZjw^KhkE0I$G`CNj~2iNmcSQ#h*Dw@T;TA==;=uxQ^P+zoyQC z=ft_0;csszwdy}75BDxo$f>2hfv?GEZX0EBRnqzDI&yP*LPDo`5yRC(Ct`ln7xC8= z$@IlQRvT6HKA|NGOXz2J8;wZ4A-VBh+WNSQ4CYsp9^-O_#B*d*8%bPyzfzEHITgHr zPJW-0$?Re?$(X*Su(&4DGC9p^mvuB0T}_cpd;HSMrl)R&)FshQbz5(cgFqhTttzEV z&pQ+%`-U>77txOGS19p!B?VnCAvf7g^z`WiatSY>v9~oeDteK$9;TA@n@c1#euujD zSCiZ4SCo9Kh=NbDJowA%euf!T+W3&>JN-x3U*4paJ!N$6!~?1oxJn-L%V@8|Et*`N zLk2hhqdf;-(qMWP#mGJ)L?5T-nDfM8cbo2QXr#z_4@hDnno7^tko+8`0Y{!wZ}u6o z|9yt!7bnty*)95)oJEh!Z&Q3oJ=J<$qS`Lz>Gj&FU{3)Vc9zocq6c&-`w^+--K8_V z#iYAAjrdj^qH8)V#)gkj#fKZTdC^1K_xut$pT9!uQd!Ub-UXVrHib6kW|RAz7_^=% zp%&Gr)Ozj-aSt;-t9nFU<&`AyqJpLz*v9tl83njqrl#5F>F@E=EcOb?q&11wjMh*y znrP4PG2-8zM>niqli%qFbhh#W)Bp7p-VslhPb%m(|5YmPeN6AT&r;33%ap+Vj^6Q> z(`MJ_bl0YU1_}#l?~5d|Z@5B2)iw0=P%I1^GHKew3#5~Ik?8k*s#sLWd}A}cxXP}* zzn%&&ou`Inr>OOG9}UhpK^%L|P^@_ladn;}11g~qjt0{5Iz>ZX>13K4NZHrR=}u%8 z?Oa(-+3pu8Zv%_rj2zm2>?RrKC&Q@e26^EHb-PrMb#WH;s9hpk;S*%ynM!hAw@7=> zMT#1@Mzdf?3O>0M7FJ8SZ4a2|W|~F$ESe)3) z(99+)ljHRC#W`}VdO&rnQs_0`ZK~m_A(!D->_kl^^&6$rpmq-Nt8O5ls%!MG=szmn z+(HHV%oEH@ptT}tq_z1eU6y6{diD+lRg}{N^I;2L=F`aQAWGSBot%Y>sVFI)w)+;- z|2R7DxSaR*kJ~#V*;y%)BuOPnyPj>Sq`g(z(vtRGDrre2NfEM=gk)u}>~V1HV;vm( zIKTJr`-g`=JUs6E{@m~Pb-mVg-37=AtA;3ZNma&sg<6Oq?6eL-Qn}52vuZD~GBt znJCQN!n6cuOeXuY@<0i_w2N`wmCI2rFXoHi7kg{1ZnmNH5UDr2P};kJs@|6=$~cI| zk0&U8spfZlJKz1Uu|M$)Q-bbsZqW%8q;7D)r-y03-8bnI^@SnNL=P`I&-RR0?CgGp zb=FUI$UMNY{1&~uUa)t`3j+BUs)FzFW%P9dlpeExfXEhk3ckDMHaoXHMzL0C>W8nQ zJL@(B6F#Dtafy!`&v2=CD~oSl!`kLH^&x-a{Ng21N4o_!K1XicVY20}2#?}1{pQ`K z)$9(F7T*-yMCb;)Pq0n>C^z$8AR~8>A7k$l?|Ye_BVS^Y^zMJUzsg?-8 zZn#6n*9ZLE@QU{jkJ0hx4MLqCF>2Z)!YeP*Rn<+uf8Oys_5#Bxg) z#t1BX!}==Ap9&4+ka$ii2N@^o-d}@067=f>>pD*I+~f*1X9U)_zD2d>U3T}o#@-u3 zgW7h3v5RjY@$XjJZ0<9>;0TE~Z_st@Cce-A;N6KX3?^JaR^kRhv8`xEw=+fR2}auY z@xFDLk5^kc(AG>u(&-XB9~r^?|uGeyl3s^qWN+DD;4~~elJ&~ zZ=hauj33plIBgJ`^2SnBosT0M(8hqdSE#*n5S4&No^S|ffyGSrwxH*Do&n++NZmWh zf_2>}%_!%;d7B8Ix(DmgO@vEjv-R!>)1$xl&~on>z0=n-$UBGjpCz>Bbuu(#CqDh^ zIDNC6Ejpgmj@*f6^*$D=mJryyi*(NlB-M{&*Q0?~&HEVpdk1r^*W-8Vy=jSI8?_57 z_#CyKyVu*PTyPAP6?xnp)rhRnL4I7k%>L+Y4gY-EtlUNqmf&^*7H zZv~aOziQ{~)pkx^YN8-doRgBBY_{0Q-S|UP%Iv_({{(GLe=x!LG=DrPXMbEVDxsy= z`yHe3jL@rJ3v7Pu1mWRlIC<+NAKulX?U2p6y1lp#I>@7bJCQ5d!iDI)$W1#zUE@)P zTUAmvv>mG_O~eIua>Oc=zvIg&S7;;Nav$OCErdE$ujdF1t#rc)4l+|9F+&>1rIWi}!nU3$-Q!t0Xxy zdrT!~WHLD;db0J^PTZ18Dfv^J6aCF}h3+Ea-xO?*ZNgXd-zkC<{WZIYb7KzUEBMJ( z!Btx7OYu?L%k+XA98TnseV|nI$s9gDY^6_i2?jrEX??$)eF7s47*d4Dh& zpS3%Y3ae)G!vcznQwWq<%CV>ler-=D8Rza)VC`IwVs)ijnKWuTL{0IHXT_r}jP9|S;IkQw z80N{Ghzk0rBr@r14db^Nv#v|%x~kPYGtn{~qFBoY<67j)tJrH3M9$;GT=QwfV@M0u zVQcxlD~YueDhTgWMg8k?GRJI2&$yDVh4tKCP|C*WYHn}b!sgi<_-<5*PVjEZ4ED11 zV-BjHLWr+TM_s>_&shgJvM8OlMFOwxDWHGqZWfL$p~sVY#?@7jcsGe}5?e7jxP`gB ztB5eE;NbWYHgs%Z|F3F{EwkxwydLSoY%Z*==JU689F#~geWAIYw`zex=Sbkh@&+U? zpj#@J$j!?+I?s^X5k*)ZD(AqNTHM{& zarJOLKO{$*jorA8=wBTK8Xf1{?JdI3FXNsi_ z?c_EcqKCkapPl!UxUiMc0=pmkeuD9G$5DN=heu-%Q=xen$*ViiA13s-hx^bOD=@0~ z?(A)M6FlZ96&8Dh-m!~5cQ>G^SVx=a%k5ZYi*pX+=-*@PA-RRAn&*6sT;P?(o5W#*GW`7 z+)V6?t?UuH%-)s+`b6yD)!;37w-=H+CXZI79b6K3Ks9GCedb5;W`*dji;okxr-4rW z3hEQYcO&X-Xn6=nozqdyIl&8|69ul%qu-GX_Kgv|LSDS?jPS zADy90maV01em&u3=?p)-gU{lgNb#@)yutTBi~;}R(PSVOUO1Uo~j`OhVvUfU!?SyAXquCL_(qRRrrC|j;edmFiS1NuV5;&<}!`~M- za8Wji$d-|&TdV_U6#CPEKgzf)xVQJ;jjWCF=`9$XS_F(Mpd*uEavO%X2Na5X!&G`bHi3-u5CbCvX0=3*&N%IOvk27%6?UlF{z8z z8_mLt+{~b@A#}djN9VFFq_?zjbJaA0rxr3!=oNo;loC5&13SIMvt~OI1Gez*u;aLj zUJ+Nc9&d$AhCZw!wAzlFss;R!S1z>Pa-?Mo(6O!OL%AV)do|M~QDS;xQw|5uC-eEx zYUW-lN9lSd&3X;I{x^!-7KNxCtESfN2raU^&=K5pVDNg1UR9vzk%i^ADsHT);%&_~ zwu`&zu6h!UYq?a8SdU^@%H|U)Q%Pyhy~qYCWBw+SKxgsY+|wswLKVGoi^v|BLFK!0 z);%_&>q7;(LpNfRl0^K*6w=kjYZq-1nS>Hz2e~t#v;djGDV(w2NX3*uaWC_zo}EG0 zx&qqX`g3k|3WJWVGrGQ& z32zUvsdEdbzjQGC_bap`4l!D(4Wrxp@l_}%*QJd?DmNIMxtINm&oEuP13lqWJ{o(9 z?J`HWWOa@qmydHNq?0zG4;R`U;d!qnhOD}Z)Yul{Wt*sceu7Ik+Q@e}fc)n+_8x5~ z)x4R5awln?e1L3GgK~>6vSQ0&hP>Uw_|^67da;EZl}aw3-o}#3%}8zNB==Jj?+>4$ zR$(L47Bw)es|+=zTC_w>j&L|boy%_If1lu>{&9SlH#7d*dGUSy|7!{i|L!0ow(TJ? z<`lC!H{pCs{eH#{-VQ7x+NGHtmky(QMffz8MI`%d zBid~f#i`jm*j~Us>rQ@nqwT*c0sHVsvl>(Wq*vPk_a!TN` z&?-EIhdeb{XpTF=Q2OH_v14~2r@jqK(N9Jn-O7Eh_3Zl6h~8^wj7!TYS-KyM`<2MX z39ZC0pOfDYarRX$wxf1YrM`)`Y1xdwkk7T7#YnB+MtDLaHxF+SIr$=PwUsh|=z2UC zZsPUZt*8r)GTAYg2G2a6d=pqLARkM=bW}dqGD~?QPv$j}wOzc&&@y5kZQ%N=0%Bw8 zFlmfKr)?e2!#AOySxlls9v6D8Md?%yy_I&d?Rq&fOV{yH;8ELraSnT=@c5R%4Eq9^ zxM?zGxtnOP&B3~V4UeUAL@sF?4VzO1-dM@Z>RcoZ^Ldk>#m3ee{F*jUb~_CP)n-x- z7Gu4`j-jRz6h1AZvOb@y{nHs48&6EXbfk4R@T-3jp7HDHx7i8L^Beg!W-U5h;xor> zr`vHI3eI6f$Jml~Sa8IX+jvdX036xD(m^kbF4LF@Rc7fisLY@WFk^Wl98PXgBS zPH0MZ%Cm90Eb93hQS1G(xse}5a#k`o#aWtnFAax14*YjEnWH^6(YXvwl~Ug)gebMu+@G6F`pz(3%dNsOBA>?VS@g1WqwQB2v7YP5 z|5{4^U_WFAx$)+OCeCVZyt9p@_|OI_!`7iY-HuD{2}nugV(XiR)WU3fYK5aVU@7k+ z5;46ROHi1=*pij_?F;3BVg475x=cJ9Pp9C0W(!gea&X&V#;2+robyFbiq4{Fe*tQ#b;$oH zM5{dn`D-ibA71$zwjQ@3 zd%inG9sX!6bmG!vFD%}bpfNOyCmrj!vm=*Y!_-XMV$x|^nnU>G2u5E{WK457Iv>~2 zaLkXudBKb?PU6Y>b(sHCg#JICC|}JZ<(MnZ@7FV3Uic|f@{ksL)9n0n={(=S@0a#y zZ%(9bRt1q3F`{;^<@B>GB(icTkIADqg@Th+Q2euiO-*UEDQ#fn>ma)0){A>zOmCr8 z+ZgVm|L+`b&Msrp^emcRRuZC-LF<7qG6nvaE$7aYiS-N$Ehbnqi93f_#`hc1KIFx|%tT_P3q|%W8JR?X#?DA( z*WER!x@Dm`b_TDOh7w==OCNt9R_K*uER~L&wJT3A z+HucWXbatLEIX;gdr7fFkG1#)Jmc4p3SRap;@z|$l*_Z|+u}`|UmE5|3kaB5iq*&> zirc-BTAI%^t@ZRY$Vc^nAKAT9X{*x5R_NXG@=1iW*OERfouS`X^ZHI2=T?;vcR7q1 z!XJ9`Pa1wdL+CfwpI=h(oP4#JhR9_iV`Yg+mp@0kJ=mS4h1G#L$y xn{i2 zUBYsWB5oQf({xUkJ_izUcXJZC#4u`xuR?WYDiSxNQ66H;=v9xX4YYqB=waylXh z;DNoqGS^y7Nt7OoV^SeCX5&%VbDL|XtLgJPnA-8721kwRRDFu!#($7~AAXir`TfCb*;I8pGc4t5B&a;m>`- zU$)4=?!9>Su7!BV523VL+`VE^^A@JjZ?7HErE&bR#fB!21WsMd5` zUMe(OI-xt%jgy;~Qt?iYH3Nfi{Ue;$w_=bfS%#IsVy~yq5*o*9{?4!^c6tm?)g9?c zC`M0b;kYb-=dm92|9`*k(P%F9i)QpmcdYs)bM3tnQvaA@Fe-@-IcrWV(4|~x1zssm zDAaqfqK6y{_r&3B=gN~F@o44<9qWAt&-SWud5jqm?TfJgV#bwOPK+;^NB6gdFd&v; z_m#1I?nCTiMf8*62>4fzwrmYTX3xN6Y9cl_yv;ChAerJ0a+S|;9Zf?v~k0soZ z^TJSR4sW)sVCa@0b|i^&JkXKlS{}T7xQw9!s}V5;%fB-4{5OI_wxP)Uoy*X{c1%1a zX?CbN6u-g%&bo#%>3ITUGaTrCpUINiFk-a=@#~vJUAG=Pq+*Hwkxti?bOuZ=U`u&1 z7Yw|yiqE0*dIn```6$&2UgQ!l?tu$dlap99b~U~_zMP)0gX90L!;mCw4{l<%@Rr(z z7EwPkjdqe9S$b?$%=VehhK8W0_S{Uf3q9{>9?tg1JHLHl$H(40WE2E!O0DfkL z>=C;9zq@iV8!FEIqAD(|SVil$IJ#QW7^t65^VAeh&a}h4*n~{gJXG!qohvq$KTamF z{fHNqA@eBN?oO(D3hv7`aC%<|PnM*LT)#gh1D((qlSQ?1CR0bI@H#gZ%PZ@!OEF>k zcq>eFa%k=FW3<9@D#jF%skW59TkWyYiKXJx27DhUvpX}4fTQk|d=vZQl9#Z_JqF(i zM*Q19N#x=ZnQUu|Z>Is1mU>X%A-wl|f2^`s(%G4Ya$z|8rzSI~_iAbdUT_N%`bxqY z3?f}Ad{9Vm&v?v~3~{hn!OM-yNovsKLV_VRek%kvoHsSS-MXVLI z-glx7cfY2R@+ktZ2j!6{)4{oivN}m)A1kn=>2J4ck5Vhmff5RviXT17Z z6y28Ew5?di`GtwxOk9b4mgv*MN4Yy=EnAgDk8oc@`(8)#JvI^6?LhHU2S)c@^S`re zJ28XgzHvyLOJdOQVC;pD)7r=I zT}01px);q+!LQ}p>^Re8#lwUg(!E^iOfhF@WQh0^Nc&mCzb(s{KFfetLsO`H?}hXI6dsOGK)$y<&Hq|bwJDP5I!(&NnJ%-IC;ywQ zz@omGtOH9EZ~D1-GtxwO*Pen4^|YYOVmNm`SVEg+- zj0_gxJVuw29})ahJcD22-{NZgXuWPrdAB;UYc=qX(BqSvI!$gRbh)SVIXRRHdpnv_ zBzQW<8kcreE=-+(QFs`422IDQa~_p~cL#TmK<$Q_S&wrj{2t?mmU<%BT#b3XSV#EW zE~K9iKuSrRe}Pd>|4L`HeLBVwqBl6jvok+~wgI+e=Xmk7%pH}(sbYSlfWd(dSRV-C zwRSR!R9-F-{8=Rr>yAQ^v)&-iLXPmjvzfI&n-=#13^b$Y`#X`@lKE)W zg=2I!j}qGge*H|Khiei?YtxXvmq~D!BbxpjdHqiYQDcKqc^Zv^VTjlTB)IJELb`fv z;L_eqwmaq0oE=EI%_~&cHw624_MEniXLR@~ zLN^BTEKr=`YS9y&H*i-XnvXeFtf*eXyjKw@B&Km!DuRj}bCTVJRwaJ6YX7BtZ0`pm zZzPF~dITos1~eH*6YZo(@O)Rwt>VxONk(gGB-_MmjTq)dN6K2_t>!angF7ZCb(wNn zji;Xj`8d{rCHLHs>hI3OKNgd86ps4Dqq-AZ-|Gp#J(%hk6)~GNmEZ4eC=^(B_7)G6 z--+Mp5a+l$A&A>mQgn=T5&0!g_KsA?;)*Bk*IXDh%$jyhdF}`M;*&iBMU7BOHrwN8 zn8dJDXW=2ZA|bS^))jy4UdUWnHBX)MpOz#&hSVLvKSY*@i{p&`w- zPbPX$C8s92VzNL5qd;TY=ETtcZ81G#W9V)wAbWEx=D%af=r@A^gVkJmqf7Fw6pm}^ zvZXC1YA9~9;mUkptS#r#re`9uo(2q!nJ4yx zYLIAT!I*P$9941RWuhLQ(;cz2num}5EPA{*MAIQ0ujv5{*)^PDOBa~hAM$6olD(*v zqL)nf#&qyh!uP8qG1Ue`UoDiYJSf+j$jcozOcL<^@2DYcySWs(K2s=dHegJ;A@Ygh zeZ5y@?jDglDEH@g`AUjDxQI-VCw{Rji7_9Ix6q9jSQPN8_@~L@#ZEZ?H5JwCzG63; zF<<|lN&2IunB}Q3ILcLMu*UQVf$UGB<`18W?dL6g3!6x-y($u?#&Ld`5$<}Th8m~P znxxFlHd`zOmi1Zh$Mmg%WcFH#Tg?I*hUzf3R+@(@({cW6MtPGO4p}4d3vLB+a!j`` zBzM19UZ|?c-YZK5_s&vyF;GnfAyqsW?$Sd2Me4Z zO<`vSrqyfd7boz=1L3*cH$v6oUlZdclX1J?Lc^DM`a3A$@~0i9C0B$mE=#YDX^c4# zgXbE1zP}7cPnt>gun)~q|tCP zBgJyr+}q05^e0eNg6q{)%J+I${hLFRwT*tmM}(swrD55&2dy+ma76p_wag6eWd zCJB9V+vurO&M*-D&4}&u;?P>5&VK^GZhO9vYb9P{*3y98X@f|9;g0fD@eH?G<2EFb z$hC&pT`=QN?0CBER`Xx34Zr$0h|j9Yw~ASqXV&m2WQ&%LssDbt$x!e?5^zfU)v--7>_PR8RexxvXU_J+}t56Fs=ew`ak_S|BYf>YYTT)Qn zw*?i!(O#;gk=tuMZ6fP7QD|Ai|E|VtP%f@#wleANM*dV4Ge_IY896YCvfi6n{iqhJ zfoa@SuiU9Z=;}Upelgl~7 zK(=QUv-4pV-9vWMFFl)=KVoq#TTA5@q18(#bKWjr_^=|c@Yi~@e^&5BOU$YLOrmjj zK2L- zT89()PWXn0*HbK|#V%z_4rT}sDJGgSQ!Pp#x#KQ)^WfMll=sDu`9?^XH zDIA*}jdflc-k(Eh-kHMtuR$E2D7?}-p})RM;+19?l2_K^HYtNpYagud`my(mKYgPF zMjV-n+q~r>FCB&Z0Zpu~2wv48^olZ5?yF@$ryrZ^1V?)ybPkI^D#d5XoDqX_xX3~J zWRgEHO86YIR#GJa~}JN(;@#WJzTzl?xJUvBDc;(me94<09@ zJ>P_mg9$V!Ex}S`Ez{e)7!taM7QqEI%~$hRlmTVq1Wvje%GgJyNX~KNsnD5vxoZ+W zIE$23@gl3~L&QaWaaIy3$@XVjp&_~|R-!gJA=|@D_-S!eRd|v;)eGzQMglKt($V0J z_e&qv{^LyQ5nT@T6dL3CRg9P?xQ3k>R~3a0P%UyCSC^Atsf(F`8Fh0DF=}u@^0gV2 zi*4{|wnpl-84VWU%vr1}@V_?FWm9NU(j)!7&`%{NkbD%^Hl+)FB_7ME(Wqvol3^yid=qzGOXo6Vl;AJkHK<%E0e1~UKYpRzY8d9^CUb{XeP`6ISHY|hXYm<03%$=rv zp@PSyFtwKP$ZuDk~cQYKN3dR)f8mLhmzc( z#)kWDT%T>mw37l~w8zlos6zdRaLkvkrfsPvk23vv{b>Pfcgpic!kn?fZ|+`i%iaAZ z$S#znY>f%~pUG5^NpW;IIWo*$1HBop483bk zuge;2DO!f>4xx302ps)lCbRX0W_!?|Lg5*F`ZYt~S|?goLczPm%sx7ftOE;?tW@Q@ z#5gQ1)%hMIg`U(TGJgxtXQwv(%4V3Vw)|)EF2j)77el#Op)JnEB6J?RkvKzv%(D(O z%rRi}U#8r2nL^E`ISeUV#`8&0G_24f3OlC8EF!J0$uxbh3;%XI;a#y_EqcMjs(g$!Xs96-vm!}abwkZXBrE9>2b=5PFEX|dsCxou<(=S+hg5#BF29T-gb2XGXGA; zuyP{5OSKvJWisxo=QFl-2?HEVM4nOT3SP0aR4zwhhCAs;ElI3bAMsUgW`OUSp; z!NkKAty$A?=w(j#IBR@g&1SgZRPDztxpz&0f^PvN1kdNxCTTLArqOk7KC+LO5;xw3 zK;idBy4&Ebu0*7z9DY~5cscOCs+gk9E(v?1@w5XMaiB4vnJd z>q0T(BW;$rzDKv*HCH_4>lPAK{S25CHsDnQ5WQAUttw+=C6zbM5<8@E~ z?l#WUFS5nnd?C&)g@2%jyVY#; zrn(V)&6*nV9@2*`rzY2#i#qdIFZl86Zx#&PAheB`KYarxw*#2K2UbCi*Y z62Fhpm>kxitVPs<#Dyfk9xHOcjtnU>XKvpC-|DzT0UKF0vBO=FdbuW;{B6mP|UQ zD)vxLMy*s4>nrL67wRzm>})aLZcl;sR6Z_~;kKC>0ml+Je`^trI_;+J52Y9K{%bE(MIqPC{c{p87^RWG`#3X-30+tw<25g7coZYe7WbAQR29eFb9F3CK=LvZY50`o>Y1SqEMiO;d5Q~?i#{V z3!$@>Ibl6Ck>oIW+@}~*AZ5vdZf_iZo0BTDn8e^^4EFRBI()d$LOrnXUW036D9Y-K z&|bA1Ui&!T~f~p3d`vi7>s!vP9NLq)B zy4GW%*b|^i@}*^LUu?o#l{sjp8nAG;1qbcanf}b1jwgOtq-t~Yyc4POq&ab7BIe;% z+jd4^;7_s+}il|q!>4=a+&r_ZwT2on^W-2m~eHa}- zo`5I1ygezyrByaOP8!0qteK2j5QVkSoZH$K(tdtC8W%=V{8^UK1=6^BjVILhZLRV8#luz!D(47p zyR1L1n&N(Y>5-!tO$HCu|#Nz5|q1{ zqar@%bLpAv!k#<1L&zIEj+?jVVz@j%YF0R|3DCGW@fquh>~JikEd0xTGY_u*SidZ?+^? z)Z4=g_n1AIX--JO1hRV@GR4oBC*zmWXSgLZu%)d}ED7N`T<&FuyT}VEOmY`{g0paN zSdGc$G=ZB1){RcV{-E%v4Lq^=v`+kxPX=p+htu^}Di6=55+o(&=tV}n*dl>zLbug^ zlgqV5Vs7k6A~g*q)X!MMlaU+6E+?VG{};(OxlLRUS-~A2GdQB3NW+lz$UnB%T;BfRNu7WMwSc-;(dk+Tu`r}sV-YNxUw$A#G*0X!{Qh3iOvIt!dh zUXV%cu|T4qts_!COw87X6CilQJzbH9wOWCs@X1VG#)^#j8XlT>lN=;6P|wX7H{X#( z;xlggE1Ze1ZE>9$jBn~vx*Ro#7MUvDW}z3p3ZST$n6K+4@^3036xfSrJ7P7_$5yhd zuMTr$#r$WT9k--cVCrW=2!Yg;Cn3?IE^4tOWx5`O$3W8wBl>OCAXH>EG{(5|O3IH> zS0bqT>cJzy!?CyHQC^7H9iW8y;RSq@6P$lg6e`kQNcsw&u5%Ky0@pW8@(3bn*siUoNe-1%jR53@ZflN;^e~>W-%`rykUy(;TGlZK5)kW5Q0DGfM*e;SOnJ(ci9*BRy;YO^HhAna!i|cyHQ;hc`%jBzJU;=zOd%eqv!NlO2W; z8z@Idyi3)mUDrW~Z(4ZzX!2o} z(3tu=(@%4{*y}e+_~^m|dS)ti$BgCbwzAbv2dA1{$PMS{;lE7|3>}8;6E#Y%%hMJ( zjefo(P>=d)vY=3rY5j*0?KPImnQu*WgvWWVd?X`pjAe4jE0b6W37*_GF(~75|LK)Jc!tZ&aPRr zTc-}4V#l1KW6s2m*@2Bt9Tvt6>_R}K1SEdX_xIOco4$78e%_z+KIf@}U_%Ei+F*>H zXL_+0i-zs2NL-JwhRz?aakfu1ve06e!961qgh!GgM!iPwA54{3+3Y9sjX`y}JK z`(aK$72fag;%wlB`?(I7^v)fA54s{+I~X~`9WnDs5{Ca02Fox<>I3`XyN#HO&{2t9ds+A?$bgahGRjycBmWE>oe384+pLyWqH+?jidYPH^?%K?u zDU%b0UD&gAg~rzlZKDHWZ4$%TfxIH`*xq$MFz1||#92H)(G4jr2jWO(ByRQfKw)ne z_?yMyaE&E2_eW!yUmO-KHNp0RD3nDxz}Te|a#jW6(3sxX*}Xl+ZMMabls-^t#bV5_ zgV?V}B4n)%W+jAUqmd8y zjWP74Gr544sOcPuU)CvMH>wS0UTTf+>)N8Tn*s5|Fr>PN;J2_|yiQ z@2C)CWP*d)TKMTDXW0AJ7}QOL0VAmS*%OXjUn`XVV~M6`#O?RBf!kSEM8g+7>)pwb zsZl#M26qk2kvKX8>$HL}G}Hr=cYK$hoNbuB+90p@JM+D=VBL4YsIN}wc%&V|& zS|a{xD~wqjgniSWN#x29cszVA6Itumw+Y1XUUnFs6a?2YZ!GN1_c?+5I_HWP)LR9v zG(}dr8;<#ZlzydZ#I^E79(79Rj%pA;MS%^R6|UIpVhk*NOB z3aSg12;P;1PvhOt>PV%OR65~dUnA;oDy6)MGrpfKF1FWT-z0As)cRr5L=^(YD^OEt ziPoGiwLaUTzw3z9dG9w2B zvyruNC~N7BontuD5!2r&*~bY>Z`r}XvA&0LlGxF`VbdSU1}%^Z3c zdy)I>17}M=)4520AOx;L`^jK#G#3()rG_S{cogn>T<;l@*6xRAfu zv?LMTx>`fOO)U3AHp!ZlmejcgW8dZ&Y~SaI9yb&yRPdZmZAA@FIyM%CAbXV=Mm0Mi z-^>xY)fVX4h0k3@ET*$RZ1W<~`Ajg%wwuCkV;DxBPeS%dVjls{2z5$8#FrMBNPH=0 z33>0O&e-0yD~`s7U@p(s3B5}gmcO9`N zZaLO8w7|X>f!JJRj{G`m5oTA&&_)}KiVua?=y(`Bwu45i6J8U4d3(nK`FBet-YpE8 zPA!qsq78mEF@?t24ml6XW$N`-P^rDq!H_uPR%708ZtyiXLHMc&%!~BIb5jLwo%BKW zu>{;1p`;Jd0I?SWkaN`qv+4O!b&ZDquU6~{@;v7r@a=C6ixbR0bjU&VdDEpxAb zpvF51CyrU8DY-q8+hH8aMy9`Q!GSTqLD7N$|^9Y#wco-R%GJceKW^9u_Ftkxp$@7=AyfgWeX##D~KWF-L`{ z%1HRcN5gzu7p#$RM6^=EoVZ$T6*UJL$(VlE3@Zvb^O z*cnm#Q}OpZ>XG#9na{-j=1M$zAG1K6g$wp=GeYjsG(`Mok7q5tko43B?p0doGt-D! zI|eZL%^G73!%!BihRuE>_dupB{MI1xrtR;q-J3#!sn+~lxS;|^2J&qA_CWqHPe`c_bW%cb zAj2H}qyvt`d06RBjZ>AJ@KK) zHnZjora|eMmWazI?s&-sdA<0a^s++PXB%wLHpBS71_-ikfdhN^T*&o58m>e=`@LxP zyaRj_v4+^s`(A2{8)b(KLu=gF5D$xwp7g;PpsG3$so}wRcxxBp*I45~t`AHST!`~J zKwYnmr8@B_jI+niuXVEU4>y?4i-GH4!JQMPhz<>au1*pL#L=I6#tV0UZjh-SYLq*8 zV(}DhdUibVQRR=$`;xKjof&=9#2|Fsn9uEsOEt#0GuR%EqcsTls0}4K+aotEJFMRs zf>0kvYRh_J-Vt9^Ef!RThGOK;5pbZsrN@OK@SYiqhwRmgP7uFdL@r{2CoHeGfX<>> z2d4t(ARm)Mh zCk+dC%)m*{QMj!fj?sp#k!3p(>;CA8q2>NiZD>RPYineDB~C=0lxx8-%sm~6!QH!{ zN|}QA<(y>(wx#!~BVrxK;!t>NczY&blyW3eTDOKR=kTNYZ4vQ%N2GGR0d zMEr!w9R!a*5Sz-Q4{vn{vp?-H|JMkdw06RPac!6-&=ouTl5;SOM$-uoBwdY%-j^7d ziy@r;48rv8<_Ku-k4tOG9j34s?O=?P@qyU(i!btcr);OMe3XL+9#2Zdyn`udy2L(* zz1iuD-pIT^f_cy>82QB+*&QrUTIYiBHKs6&bjF5%qHwQIdt}Y!@6j<7PK}-jmtg95 zLlJNx5Gm{Zp*Nu=W(>AuhD;>0gk5kc%NaknbHmp6EwS!NBDMy))A#9#&4*MNcXtcHOj&|MM(57nydXw`zbIgbO88rgOI-$h@VuXuF(yu-q6K{-!N)e7YG1%f4ipiV5 z$nYF*lA3&eP@Kp@E%`|qo;>5w@_{$_%nK9zFou`|pDJ(2#c zSre({-gn;=2cO%*wxbj5jfi2)tCIVnuOuMP3yx*mqlHb>yw~R`(fwdQ+<4?fK8Lu?m2Yz7vjb}1Mq!hs zJH5IIhz-@j%K2^x45*hMr@O(wx)Xhy8WbHhgny|$)-<^x=Y=jz%y`BpMu9qlb(Uv7`epN+9$Mu?66A{UN^;&QqzYTH(bk?tF5)%Ud=m|G_8 z-vwgXAu9~dc0%SRAK3osj~v4%;<&>IJ7M18f~OI}Halbd=@4jf##rHJgZJMP$W^t0 zH8G*W^L{Xx7LR3n;t)}oiguSeW84(JQ#J{>{v-~u#I$P8wPrnY!%6oH{r{qS2>1debH+?OUe70r8~c^EX4sj-;l zjz!Cppw;Y&gC~e>x^+Z$67^Xj^qN&^rEcpc_< zRb_{LchmnGOy}%uRvIZ{A33<~h$&;*&W&Kqo`->mnDtebWZc`PSIG(H7gz z8{;i`s+(z@F*FW(W#51df6)DLF! z?C_6EsodzPhlXkFQO~`Vrnlyp;G)J-LqojHH^aSSPh>9dq|M(A(RrgOj;PI1ztjkh z`qX?abVf|JDaQS6hx-?aJ5-bRChlwIYXQgM25>&6g-)C!vi+$e%rU^FYJGh1FvQ3V zC2}vi;kMmgd?_)*?>rw(QLZ@N*#cWUEK$z)>rR|8UQV?|!%aIRuXV$Mw{_BcvLyyT zXFux9=jWlsGy6vAal;DpYn)I+jAk~%5p}Cc9<|xPoe*Cnf2$=7&D<_jGRuV_hcSZnkZ4Qz5^*v~rQ=CWjLe#1J^ zmiK#ZYd9a!@zJD%vo|l+gJX??+4@Aj!?|KYK0B9 zzL+`F8r=rj!Hn~F!dxTzK&_G3f*5mSC?++K@4f7T(LvV8^svMCLuSyOY)72ot4!Et zj|b6w|9_z7fiq~7S_>You2}D7gfeOqk1TM(9#1>=OUp2dSlHdK0mS)Tk+jhlvDrc7 z@N7{yT}{t}5f&Z~LEIU^m7C5OH=z|Sn1tYui~N~_qTpQa2m9&tuT1C-a)b6d@Qs$pY(twV{{71^MLC(`xv6I>fem8X|p{ zDO|tVky}t=dPI%1OLf8VjZVnp+3P^5mK$dM|Y4Zq63e#YMq3Mv0Bfb&yKD zV|vUpQFDgPKHVr@PdW|z=b#3X0DX#3>CwvpP3EDV6SdECaoSW^#ap+S#9`5u;j7I{z?N~(PpeEN-8W6PV9erWiqO|c87CT5{7!VhJSuIw*MD`2h$Vq zYPc^t>@~st6lw_QueHmIz~_zRUS?R}x_u0sdGEhH7>2~3W3bJpJ9e)~#;x0-C~WIX zpKyCTwr)j@BhToE7Pwash@A=T;q4uS#Vv_J-E+bEOEFke7KsizvADj@1M%#2(Zq*hYzq(SNRxiKx=RA0=J^HWL!h&U;ab!~>#)br7 z)T0pW_|FDwvOUpzl@nI}W`I|%b(rJJ87-N9i7he6?@Qd8z4Te)Si>KwAdf82zSAd) z9Qt6mi4s4R5|7_wOizz7V(#jr*Kh~qxR@bZJW+W#7Ck-L?<~_pyII6rL;GUPQF{ay z>R_gBne=hz{-tO#jIce@7q{4}_KxKowJZ($KNzDsxqUsDpa-*j zy3f~O*b9Ahd!@o33i4S-R!ACSMUKu9A0Kn3UDp|zefwa7l?&FkwZ-U~Fzh96Yuhgp zJ#E~%SHT=d(}S^UwJzsuLu4$8#PL-j%#L@(@Uc8AH^XqzI}w|2dciZr9fJxz5VP*9 z1U9$Ao_pz7RUZVkuPtV2J(U@^i)8qSG^Dj?fk(z=UG!Hq4TX!yxtF&h)r}jV1X+N6L=T4g#9~LSieyrp=&G*lT5L2k0t6^ujg6Y z;fB5zw)F78$|cmw5oaHN${amrxnk~7PYl`Nju%D7xM6Dx-=1OkJ3SEhR#_o8vQb7R zn!w<#E+%__meoZD$o?k`gQ*SD@$#o8qC$GMcqQW=HOjt!o=bRrrF4H}jp=jhMAya( zapyJ6{Cz4>KRp%S(d|{=qDfXB z(Z(~aQZXK_LvPbp$s>NL{Xrl1o>YtZCmoD=qQWyvH@MBCrm&X_^a_k|-=J1p=h>k3 zkP>k&FhUz01!}1UnLf+|moBsSzECd-9jy>_%oMg?&8gj1;*s8W$<=R?{^_6PX%#W< zpY73x^UlSayp!FF#G*^NxaQly@p2l*yjGI)dL|FcUdW>Dh0^X>3Wn;2p{1`S&iX0w z`xrHK%5UXyX{9uzd!y;Q3u@Lkh($)RY~BA#+Lh*|PVTRU%NRSH7_Guh*6O+TN_bBp z=Xli>ZAXXU(FJR4@Q;U1l?5LBIRfp7Q?I|yGkl)&hUCy2TEZd`I zTO4;kw#SGUoEMLpp<@>NsIIKx`-!Wi$0F@`DjrVugK|>@_I>B9_d$jAt=!=}r3J?I zpa$yjXiV!Bgsz!haJDKD_wsOT`J95B4lS9>?*^|^?310skZ~dwzp!6izrhR-=aR3v z<%ht3ozZWT9#)=nf$=qKm|YFVVm_BXoE0D5Nx~@V0XzSz!&%$~<)1Z>$d))sek^uT zD2_YYGb6nJG<|l6-GseG3%&NW)kC@o@Tu<-w$%v2P-89sg|Z`hA1A^C?9+B->+Fg=Zp*bt@6d5MZ|qSKb4ogiKRvbU@G;}YX^LnJ3r_n z%19T@OEgHD)hYG)M;nYhQ!azL>7#LKFmzHK(6@srYx!Vw80L=g#?A76lQ(|$v%>W6 ze$3p9LfBJ3M6fSd*4Yg&d-x%B8a*ND&X`x{NR2x)x7e?3)|eo@i#z_K)-%?He0&;v zoG?N3F5*&gzF769HF?8e9G&P1lbbeJHOmwy`{-iKa%#5>?Qt#I3I6mSRL>1V&F?-a zq;}a#&3ih)1Pk_y5jne!R`jq3 zVms$-pR!-j@5d&2m=cC%*?|b|ZI3-B#H&`DKx54wc&P(i$;(6;uud=hA`jD|aQ0;q z+8y*qnzk>JMjK#(uM1K;K9#w#0a(|ZLLH)-InwkzDa&Mie@ASaql>PKobhbvH*rv^ zaOi3ny2BHHPccHLzsh9Y&&^UCW&w9%+Ff^Pka|IZ?Wf)FzLg7#-ZEn&Knu}EU*$-D z6FeJSExz})5L{-D>2{{f<9jNx`vYLM*$jQ6KFKX}5BzCXEH7E->-OuzdQW1i*16ZR z`BVs+d!*B2)+F8S2BwZD?r^#~1Wf}Ykf7Fww+(st#z@pRgh6YE;0b5zCF5J8Yuk

wB&+5ekQ9%oT2_}+DfZ)Q3M zEFv~-6a4>t^#A(Ct?QG~XJ{~#<ASUt=@?t&6qv(yZU7vj)p+PcUYPUXONAPKfsJB(-3>}-C!8lPw=bCQafKtUd^3PM zH4axgIN{c=Ke7CyH{2~um`}}2-*+JZYs<_uLv&m1hV3T7$XgbTQ_BM|xvLc_jO<~5 z$Q>uxp9fQW-8;eye>L(v200_Q(hRMt=s8}kq36K>x^GO8bHM?B5hq*!GziAsKT6F^ z_7o}BIOJL?mc$pQy)=e7F|9ogddxyHKumE2;>N_G!nIP4E_g3dSII59+Mz%1lER7W zap!{}XIUjqCj`Jdm$RR%K00qQ#)Sq045rrnUdJFlUsKd|v_{rHYK&hu3*|fQk>g;6 zxwnGg(a8VySkGLXQBPk{ zzvtCbFt%E{jdh3SyeAy$4Vl~UK+di;r7z4EW6tW~;%h79jSWEOWKUF&jAnigd%u*W zsgn{cVY|QwXScDRd2fovN&YZZ#bSIgHA3I1(>-Di@A?F|Z4W{D;XtGX#bJr11E%Kp zpzg~X7d&DRKi3?KvZw*G^Tx>x^1=lHFr|LjvzI;oo=494IG=y_);QfE34gVZ#;Q^` z6e%O<0}sPu4|*q}f}pSNgvqNqVC^SAWb3)ZzJ@(+TXP8U`|Lk#5jE2k=YMMj*9i$Y zWf_dMHD(B@Ho^gVBTU&(Paj}{pX1qI+ojNh=!HccTcXPuI|MfCV|79Vy2k|~$0`oV z>(&@t7XSr`uJw#15_a6kI(jo_4_599WKV)FrgtiSAw=WguRpEHXr%MCLY8gK`i z4(6{k#1*v>T%)N$?q!2yV#Qm;1U3Uru!8T)MJEkPV(h4GR-tR_CMonX!K!c6Rh%-# z0nQVA&zZUVp4m3 zl+FJrNh|g7_;Is*$gx9$sR_Ic%Vpo8Qps(rgsYJ;RKwM{GQl3}%Z%wG{~v!|E7v(& z#b)w%Of+DQxE3~r@%zhV|24N#M%t>eHjR3YyBfs)WQp5XO`x~4Qp&bl!6ct&ZGV;M zlbgNTF9M4;7s{z!da$I9qb{XER*$en%&`cpF*L$sW<^}>rj0*F{3n_mQ}mmxkCMV- zF`cW2lMi3Wq1*b{+KDsNYAY-VYnBKr3v3&2jtc5?MlA{G5W1>KCX#DU?#lNs%LAKd zP%l%_275d-@NA%8jau^~ks+{4h=aXV5+=tpkLv@q^7&&>AJY@j%Yk``{Zap76!VPQ zV$rK4lwa$Lvre6{Ds2#Y|JoHDe__50y@aaS)Yktl)T@nRrUx~|t@>gzHEjld)MwLQ zJY-rDzW8-U*uxemI7OT(6U@kA7B5Y~3D*zC@$zsUGM&x;<V&_aI-$=mG3fjt2AT?Q`0JBbG>^vFo$b** zUkyxZg|~l^7b8BOxziJob6m0JMF2jsFCD)s0M;+4zuWDFVboqdDkUEzt?}VJdF@O; zT-(We&6qRPTGrHZa>ARuQ22)tYDZA-L7sJPye+(gY%p(}m`KuBQXEabzQxv+>2w&E= zLH}?)|I5%FEVxrwGMA zTSGAH3^gPdd|e9 zm{E`Ehuk50_+ch>Ql-xHB6wqTlnVXHt8ViStc4LXu}ttJOP}`(@3<%5#j=l*8m)fxPldvk^NP3x!g5dq z`X|v_P%#z$9}TdqnrVC0W-61=NXlGO>g5g9U!n?}Q#BTcF+7FjU=ffliqX_7t_i z%OV}zh_pt@7i&DUwZn|hA7yKNEN1PDWM7eryv|06S~hY{ zE4F#y*Po5Jd(sMBP1~Z6vjq35 zGR3nqD()J$#yaYpN; z`P-+DeLNdhtyt5y=;4${wfGkh7ka0`vc<+cUkX%L*m8#gxx%^R8#3x;Xrc?+)f(b& zdoBFg{)rS4cN{yx7+?BT%9Kdzz6KY|{#i-Jt~nFSUUATk0{!o1*fVEvigP~1C>}dp;`u9(_m{?1#-J8vEn{?lQIvS^)ZBgx)$WCA3k28&U2cQySa(O zom1i(KWj62!Ybb;an4pi^R-_511w>DuU=}YOPx34lgwM71?6c+%z5x$+F4oS-U>UI zC)CQA@)GIoT`pRAbuufDdYdde>e~3{?D;Yyo8=>Co3knAd>85^YhS(Cf40WRBNq7k z8F8L?p8q|SvZjkJ>iFk<+%@QYj+($IV~hw?!mWF`sB%JZUtxmY; zxK^o!*NatHdr}v!L-euaulo{~9!@Nr_(YQ-dV1@U&+?*nq*~3atCl6zkTo#yI$*eC1b(S>b?f>zxp4S}*lV zeRzHK#&~@fc(-&z;Zc8jgIO|sgEPS!#pf+^!8fClu zC%0H*&qb>6WPuHOHh+^b0pFziL{nsMYmnerd+MeFFsHu~y8O)7lXP)qS` z3D({v%xek-le%E z5#v9_#y|1NT{ykYo zZem<|xy)j}btl3FtNgXGc%~k6I^K%zAtf9+E9~vAhU>p>xMHn?%v*2deZ+liSWFH4 zE@yZrD{$v;UliK7VBVkBI5L`NAUO)9o+_-_QzOL>`MyljgQ)EA$VG*!zstniUJuC* zW%9w%5>NkDW9SuAc%8T5jHrfj-b3k}WP)P8M_Fwf;&yiE>P8lA?DskDcoR!cBzjg@`DmVqK$G-1MI9< zAaPc++*#*{x9x~$1y)IR|Ce&fssC ztu{eJz8{J+4Ur$_fwJSKsWVR1$j!eL==Om4c%}g=Ha?XDd(}{qcYV^q5p8r$ab}Dq z{yOH2q-UNu%J(F*cMyha$g$7TMQF7O>-f%G`B?|O$feca(7~mZ=7|5z6ZbBLbC;Ao zY#*_Aexrq=1Um$52*;~%XSk+O=N9aQE;F>Tq*;Lw8!gPUtC9=k3`YLSbJ*V;z1r5u ztz~97evP&FCmlmSNf0noT z_DFD}CnJkqyiTUnV!EMs2i8WF0p@J9#1d_Cpv0;=cw6Cvwl;PQw7}B7HW<&@-Zi^P z8gxn}%E}C9hrbnr9CB=PKFh?qh4BF&BsQeUX^Iv*S!1OfRfE0$!-GC)*M?wz$Hu2k+Y$ zEvUcRV(|0;xcsS)m=GIu-=L2N11qKY(Kng!U4@6+OC@VSqx8SaSy#^%6DK)fh70v! zo9v*q-2soO71~x~g#^b^X+vN6!J{6?pKpTi&s-3wOTIqJgZlUyY3Oc-4b5IKh+wwf ze@4tDt(MNu-piVUHdyDu8W?AVOEaACjhy#i%N-C>ufdU|hq9v6Gs&2x%?z#&($rRi z;??x9)ac>;!0C9{!5J=v=D2$FjaZVyEF7SZ$j8+pyl1qQSz+-2U8L97OHZDuE5*9x z%&qW1*Bx)8G-&-VG0jLT*iiG_K@*38tn-~lmB|?Pg?SOR65L>q#k`-RN|_z@^qyp7 z=pg4-IBv~S;|D&cC*&e0qz7QxD-(R)XNk%U4tPFmtc!euk`TuGHqn6ZIbO4)I{+8 z(_QQWui-A(VPMHU9=1^bZjKY=F&y(bo09wKOMW-)8*>^8ozb?3H)ao0A%o|!H*x5< z)HKAKIHQKM|K>7(q;j5kcE%7ovjgya1~uinM(DaE7`ZQ1Q1_ z>=5LljY2K*&zqy5+E^kF*DJB~WUZ{3V8lGlQaSmXA)3c{A@fIb+7*h#xz7x@r?$XN10!6RX~+Gr@8nbLb7{R^FZI$r1@aZ2 zCH*P;!p-kxWXWqWKKw$)M);r&{T~G{l}I@34%_tx2P8&1@XzA{urb2 zLAM_CNSIjR_<&E6s&vF2KJUdtd8eFK;IKy&bs)r5vRzT(tmfV)elM%}%>Js8f+5a$ z_>&56ujt_4gS@M|eU&Oda@!|OkxR|=1ob!hUyZL=9E89t%rv(9D2V}8a(Sc%gKz8N z!B=A_gX(0;ia)TT$r__>8sMKm>Wi|iFrFNC)<9>RRP$$bj>Mv3E$aSDF#U)=BDS$N zxyk(NU0TSUQYNDUiL*zNx3r2x_Z$rhSYzC+U&*Q&Z)JX>8ah^Wvj2e|>O0yoSFu6V z6O_2|<74SOMjLYnYh&$w_ViyBSiX^c{qhR2)Yiq!U_(TiIMLVhNqUWULavh;cHSwJ z6k7xCcHw)xS`V$JsWIQx2o<-L%$u!{G3?dM`JFG$Fy)-yAm4r`k3c?D$NPmC>`-CL z2I6I>TViOeKF$rTl=*s=Fsh3m8XaaUF7P^^aiEpwEGKaooj#24q(q60zKSmPYuq?Ptt#sntL1_;aFKEhdIM~ozdZrYCZh+h&8=|+W4ntXzEP8 zREjgM{{3C1QFAhve!ZgkM)Y%hl0|1fNT*&6a^$TI#+-D;glP6iURF5SR3S63yprt7 za9AHUL1^DPsXAOL`UkXeq_$B^>a5`VSPOen%@GspiGOokaP%`XoPy1<;b%9T)zZSw zaK3x&y{c|mVh!=jDbx#%Hw(s+nXHp@RhZ_Zh0HhXF9+D-zfVd`;A6P>KnpivKB7xs1@TZ6$Wl|z;=2y3Utj--n~-x za=x9HQX#ERahCA;CL{h-qho(VEWE4--8mIfWu?HvmJxVQ?RM9*mN08FMjE}qHSe{s zVh?qNtj)9P^f01P3-&X$aiz==U4B#{^(nuX+g^BkUx_h;UP;UzZKSPyE!X!`pR=%B z`nfwoHOvte7d6QF*a1styCL)!Z@k|^--4?>8cvg6zU&PDv~o#)N$pnaDk;u2!It*l z<=Oj2vF&b4EsQnVwP8O^54Po-DCAN9ls=$Tx(;|PyKd^@^*tTD;A|kjK9ZUbGkI+W#cs-maM|2{IzlX_VY+G#uozF(tN_|3BCo{OD>vCs}Eq*s* zukz9Yqx8PY(db6G!#U(YhXnYW>cX>Qu^f-AmF~s$;+sU}&{ASWxAd@-_*Ui`>PXr&3*Qt;BTl{~Sr0pT$Bzsxl>#-WI$6sG)1)iv?B0L3n<=%bv+X^RH6C=TsUw93@N3<=_9bshecKIFz6D$QU*4Pc1d-dt}Qb4!XAKoSA z@S0(YZU?ke&9!Z?{Qg(T^?WEXiRI$8k@c-e3)$(`xYN-BM|4YM?)_R>b=eNfdsv|; znRxVVEzEURB0E`_rdj((jvE~S-9;1o}I_9Qm+v{nx2Y4By$UFmJ^iq3)NaJ#KQ zS*|&%!}RgG*LPX08-VYbIy~>D_;2@nSv=ej8oSR@+qyv(QCG1ngEPV8X4$Ze-ku+7 zME|%Fr#fn*Z0lFqqvwDk_L6fm>7%RBMRMB+RNpejlKv{}+Uo+JEySa^OJ`w9oz%Af zBKF%3qnq1z>G8!BUCc`)m-kV7! zC%Rje^rULx*MekpS?URAZGGtXA!eAb!@b3}IQu{cxzrUZROT2=UT6J6-f{b1$nhdI z?vYD+>Q^f3N4w+EbgNV?w+iX(T_z1QfV=R|j`B*#+P&k}b^^-=rO z8gq|R?=#vF#ifQ=aOJzy-Qqnss3S}sSVJxw(_3s0O@tDAwz(mleyt0y{}Y3IhTNs+ zfl!^-GE+lc1@#seT9`ujfCmb`>L4S(L1L%qVb|F*u~=mQpAt(b5Bp&FP*)t9L9Q;` z0z+DSkPOb1ONbL4+C)x_eM9W1V)>oi|2kI(Sa7b~QR;%d52!c2!r$%paxpzcZ`sgB z`T6WfeDK#Ju5N?H4o>jxM1H`P{)&ilIbEua?mwyVZ!CMi2qTz3q0YOT32OKr?pfo9 zX|aab*U^BvV%q3Gg}F!CYJB5NT;{0HedC<(**iqPHOH_$D(cO2sVQVe*E!~#cl{(q z(H_uw^IVR&Ib+$cHS{qPgJ)*JNIwV6GYr7cQRevaT7x{FFLH@Kxx^+1EId*tWv{fc zr^Ertqj~Oh_2E0AM0WjZ2i>1|Z$vUVooSv7wi5hGPF~YMX8@&8(g=ybZ z$n5t?zH1CH@q`t|taQcJB3&H%M}t4ZsTIu{6SPZUrGbHN}qF$GXGZx9M0g~S^Y+CWWJUoC10e1I=M>fUfb?2 zl(t^PFZ`{E73$y)YmBM82lg*lBJUUCY%A$WO(P#o|5+>gJ8$*jY+d|C$~IQZu0Sn( z57c0~W1T#U&JMetbKIGYwWbGgrtAi)K0@BG&-7Z-k+3 zs6K*hsK0M-gCRN9VnMFJv#?gCo(e!|lnZ(|7s`VU^jNOeK|KAMSp}ikK!0uM?q<=u z@F!aU0WKlS-69U9mdtS0Wn|8G4t4+Xy&VH$aib(3nvnZEoA>Q*}Qd2D{; zgu9$e*4-k`2%~cWtmviADc7qv=zL{Jq&8V{AXl-3PU@XZ{=6 zNpIJ?c5fv5Ci5kBs?d|)O_+ljo{V$Gg)a289r!9M-+YstqDE;5H%854dz5Sl#t+57x7l$kY_t)aWe7UMV{N{|)`tDUgo!&3SV1Bhh zlm#lBKJr1<^x(|$vn7UZcfrn+jZ)rL2e+xU%Ggaj*5|X__|pMbS=V&#a#m@rg@3*U z;}FmOWUXg1c7`zuzW*mHoxe%j8e2473qsQ#dfdV9=cW=nKIy{lag%)HnX3QP3*8I+ z@v7ZRaew()j#9hQpPGVOXTM9kn@y6LNewhLvcC^#g^{OfrD?AL4ou}Pk819>aC|Pc z*7OZEYs0laGi1-!$(wZI3kKw{s4;CkXNuWAE_i&ZQEE9W#M|0nY@7k=YBn&hU4a$h z)eoWVRhFKIp3RPWbY~=(;<&f*yHS`8cC$TgbmP_k|50bLq5_6Lc@jm&TJiD%iZPTmd?3`)|OQUF& zGIKkjLEL_|MBRDvjcPvQFZD9Y!2*LueUh}KCfQq{gjuN#0)L`6ignhuuNyiKE0JCk zy)lb3(gu38Tdz`KrQ!p3Uy-xeXn}SM-SPgB1{3$FF)HM>v~<>C?qL-AOR*G9qF#yj z`&8=RF1UOYt1B_scv*u3``L5)iUme1tR%rSqFFGUtXKa@86fRn$upJpkIAC13Y7f%ASfoLD!U$XR6;7-DB@7xL`x zF!*4JRZb3Y4>rNb5h|QzKMiWSF0prwwf!n#C5~91Z;FX}mE!-7wUqf3HD-oby3zq- zU7S$3=B-TfDU#K^*IN>Y{W7jr3@#MQzOx1}=XaMH<%azOn`JKfkyq3>#ZyD~j#-Yn MhdQS^I2qvo0A06n!T Date: Sun, 27 Sep 2026 14:37:40 -0700 Subject: [PATCH 058/208] Record count-likelihood validation results (roadmap step 7) Third run of the count-likelihood grid (commit 740ebc19): all 24 runs fit; no NaN or wrong optima. The count likelihood cuts theta RMSE by 35-60% and dk_geno RMSE by 40-85% against lncfu, with Hill K and n also better, at about the same 95% coverage as lncfu/zero (0.79 vs 0.82 realistic, 0.65 vs 0.76 poisson). Under-coverage concentrates in mixed-purity and near-saturated genotypes and in growth_k (~0 in every arm): the remaining overconfidence is the fit's, not the likelihood's. Lambda at a true 0 is 0.02-0.06 (the lncfu mixture found ~0.12). The 8 capped runs are poisson fits whose zero-valued noise parameter slides toward its boundary at a flat loss. Study README records all three runs; the roadmap marks step 7 validated, with the choice of default left open. Co-Authored-By: Claude Opus 5.5 --- planning/analysis-roadmap.md | 11 ++++- planning/studies/count-likelihood/README.md | 50 +++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 53bac2cb..99029c89 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -498,7 +498,8 @@ step 7. - Validation: the calibration grid with step 4's noise on, against the step 2 interim total: theta coverage, `k_c`/`m_c` recovery (C4), in the joint and the relative fit. -7. [ ] **Count likelihood** (N). (Implemented; validation grid pending.) +7. [x] **Count likelihood** (N). (Validated 2026-09-27; whether it becomes + the default for real data is the user's call.) `growth_likelihood: counts` (C2): growth and presplit observers with `reads_{g,s} ~ NegBin(depth_s * exp(ln n_{g,s} - P_s + u_s), dispersion)`, `P` from step 6 (until then, the supplied `sample_ln_cfu`, D14), `u` @@ -541,7 +542,13 @@ step 7. cut during a noisy descent (one wrong fit). Both fixed (overflow-safe horseshoe helpers; pooled check of stalled windows before a cut, which would have kept 20 of 23 v2 runs from cutting mid-descent). A third run - is needed. Details: `planning/studies/count-likelihood/README.md`. + is needed. Third run (2026-09-27, all 24 fine): counts cuts theta + RMSE 35-60% and dk_geno RMSE 40-85% against `lncfu`, at about the same + coverage as `lncfu`/`zero` (0.79 against 0.82 realistic; 0.65 against + 0.76 poisson), under-covering most for mixed-purity and near-saturated + genotypes; lambda at a true 0 is 0.02-0.06. The remaining + overconfidence is the fit's, not the likelihood's. Details: + `planning/studies/count-likelihood/README.md`. - [ ] **7b. Growth regime: test, choose, purge** (N). The `growth_transition` components (`instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop`) were unconstrained by the data diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md index 79ead132..c54050c9 100644 --- a/planning/studies/count-likelihood/README.md +++ b/planning/studies/count-likelihood/README.md @@ -78,6 +78,56 @@ Second run: commit c65390aa (2026-09-27), results in `count_likelihood_v2/` ## Results +**Third run (`count_likelihood_v3`, commit 740ebc19, 2026-09-27): the +answer.** All 24 runs finished; no NaN, no wrong optimum (run_0012's theta +RMSE is 0.035, was 0.51). 16 stopped on the convergence rule. 8 reached +the 100k-epoch cap, all poisson: the loss was flat at the floor step size +and one global noise parameter whose true value is 0 (`growth_inv_r` for +counts, `growth_noise` sigma for `lncfu`/`level`) kept sliding toward its +boundary just past the movement tolerance (excess 0.05-0.08) -- a benign, +honestly reported non-convergence. + +Pooled theta (test genotypes), mean over 3 seeds: + +| noise | fit | 95% coverage | 95% width | RMSE | +|---|---|---|---|---| +| poisson | lncfu / zero | 0.76 | 0.156 | 0.101 | +| poisson | lncfu / level | 0.56 | 0.073 | 0.100 | +| poisson | counts / level / single | 0.65 | 0.067 | 0.041 | +| poisson | counts / level / mixture | 0.65 | 0.067 | 0.043 | +| realistic | lncfu / zero | 0.82 | 0.207 | 0.113 | +| realistic | lncfu / level | 0.69 | 0.139 | 0.110 | +| realistic | counts / level / single | 0.79 | 0.152 | 0.073 | +| realistic | counts / level / mixture | 0.78 | 0.154 | 0.074 | + +- **Accuracy: counts wins everywhere.** Theta RMSE falls 60% (poisson) and + 35% (realistic); dk_geno RMSE 85% (poisson) and 40% (realistic); Hill K + and n improve too (log K RMSE 0.41 against 0.68 for `lncfu`/`zero`, + poisson). By stratum the gain holds for bulk, spiked and binding-anchored + genotypes; spiked genotypes gain the most under realistic noise (RMSE + 0.13 against 0.26, coverage 0.93 against 0.50). +- **Calibration: counts is about as overconfident as `lncfu`/`zero`, not + less.** Coverage 0.79 against 0.82 (realistic), 0.65 against 0.76 + (poisson): intervals shrink with the error but not as far. The shortfall + is concentrated where the data say least: `mixed`-purity genotypes (0.41 + poisson, 0.55 realistic) and theta near saturation (0.46 poisson, 0.69 + realistic). So the remaining overconfidence is the fit's (mean-field + guide, the k pin), not the likelihood's; `growth_k` coverage is ~0 in + every arm (95% width 1e-4 against RMSE 6e-4-1.3e-3). +- **Lambda at a true 0** (prior 0.357 +/- 0.05): 0.019-0.027 (poisson), + 0.055-0.064 (realistic), against ~0.12 for the `lncfu` mixture in the + congression study. Most of that spurious lambda was the read-count floor; + the rest remains, and its intervals (width 0.002-0.006) exclude 0. The + mixture costs nothing on theta against `single`. +- **Longer runs changed little.** Run for run against v2 (early cuts), + theta RMSE moved by at most 0.0015 and 95% coverage by at most 0.03 + (poisson counts runs lost ~0.025), except run_0012, which the early cut + had broken. The pooled check mattered for robustness, not for the + typical run. +- Dispersion and per-tube offsets as in v2: poisson phi ~0.05, realistic + phi ~28 (the realistic arm is ~29x Poisson, more than intended); + `sample_offset` SD ~0.36 absorbing the simulator's tube growth noise. + **Second run (`count_likelihood_v2`, commit c65390aa, 2026-09-27): the count likelihood is clearly more accurate; two failures remain, neither in the likelihood itself.** 23 of 24 runs finished; 18 stopped on the From 2620a5b362e881b8a1edd9bc45c7c6ad7b7a8137 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sun, 27 Sep 2026 15:26:10 -0700 Subject: [PATCH 059/208] Default tfs-configure-model to the count likelihood The count-likelihood grid showed counts cut theta RMSE by 35-60% and dk_geno RMSE by 40-85% against lncfu at similar coverage, so tfs-configure-model now defaults to --growth_likelihood counts with --sample_offset_model level (was lncfu/zero). Breaking: a call that passes --growth_noise_model normal_kt without a likelihood now fails; add --growth_likelihood lncfu --sample_offset_model zero to keep the old model. ModelOrchestrator keeps lncfu/zero as its own defaults so a config written before the count likelihood (no growth_likelihood key) still reads back as the model it was; tfs-build-empirical inherits the new CLI defaults. The example simulate-and-analyze script uses counts; the congression- calibration study's run.srun pins lncfu so a rerun reproduces it. Trim the relative-fit validation grid to the count likelihood: 12 runs (noise x joint/relative x 3 seeds), the lncfu arm dropped. Tests: configure defaults to counts/level while the orchestrator keeps lncfu; tests on synthetic ln_cfu tables pass lncfu explicitly. Full unit suite passes. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 17 +++++++++ CLAUDE.md | 2 +- examples/simulate-and-analyze/run.sh | 4 ++- .../studies/congression-calibration/run.srun | 2 ++ planning/studies/relative-fit/README.md | 13 +++---- planning/studies/relative-fit/grid.yaml | 16 +++------ planning/studies/relative-fit/run.srun | 7 ++-- .../tfmodel/scripts/configure_model_cli.py | 35 ++++++++++--------- .../tfmodel/scripts/test_setup_grid_cli.py | 5 ++- tests/tfscreen/tfmodel/test_base_growth.py | 5 ++- .../tfscreen/tfmodel/test_count_likelihood.py | 18 ++++++++++ tests/tfscreen/tfmodel/test_library_file.py | 3 ++ 12 files changed, 86 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73284638..e5c2f624 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,23 @@ fall into two kinds: ## [Unreleased] +### Changed + +- **Breaking: `tfs-configure-model` defaults to the count likelihood.** + `--growth_likelihood` now defaults to `counts` and + `--sample_offset_model` to `level` (was `lncfu` and `zero`). On the + count-likelihood simulation grid (`planning/studies/count-likelihood/`) + counts cut theta RMSE by 35-60% and dk_geno RMSE by 40-85% at about the + same coverage. The growth file then needs read counts, each tube's total + reads and its total cells (see `--growth_likelihood`), and + `--growth_noise_model` must stay `zero`: a call that passed + `--growth_noise_model normal_kt` without a likelihood now fails, and + should add `--growth_likelihood lncfu --sample_offset_model zero` to keep + its old model. `ModelOrchestrator` keeps `lncfu`/`zero` as its own + defaults, so a config written before the count likelihood existed (no + `growth_likelihood` key) still reads back as the model it was. + `tfs-build-empirical` inherits the new defaults. + ### Added - **Relative-X fit (`theta: hill_relative`; roadmap step 5).** A theta diff --git a/CLAUDE.md b/CLAUDE.md index 3f063fc8..ffbd3891 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -140,7 +140,7 @@ The hierarchical Bayesian inference engine. Key files: ### Count likelihood (`growth_likelihood: counts`) -Roadmap step 7. `observe/growth_counts.py` observes reads directly: `reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r)` with `log mu = ln_sample_reads + ln_cfu_pred - sample_ln_cfu` (predicted frequency times the tube's reads), learned `growth_phi`/`growth_inv_r` (LogNormal priors, medians 5 and 0.01), no pseudocount. The log-pmf is `CountNegativeBinomial`, Loader's algorithm (R's `dnbinom_mu`: `bd0` deviance + `stirlerr`): numpyro's own negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; keep any rewrite of it tested against scipy at high depth (`test_observe_growth_counts.py`), and guard `jnp.where` branches so the unused one cannot overflow (NaN gradients). The concentration has a floor (`c + e^-30`, `_LOG_C_FLOOR`): without it `mu / phi` underflows for genotypes predicted near extinction (all-zero genotypes drift there) and the gradient/Hessian go NaN; `test_finite_value_gradient_and_hessian` covers log mu down to -200. Data: `GrowthData.counts`/`ln_sample_reads`/`sample_ln_cfu` (same layout as `ln_cfu`, None for `lncfu`; sliced by `tensors/batch.py`) and the static `GrowthData.growth_likelihood`, built by `model_orchestrator._add_count_columns` (tube reads from `sample_reads`, else `adjusted_counts / frequency`, about 1% high from pseudocounts, the same for every genotype in a tube; tube totals from `sample_ln_cfu` or `sample_cfu`). The orchestrator refuses `growth_noise` other than `zero` with counts. Pair it with `sample_offset: level` (one constant-prior ln_cfu offset per tube), since an error in a tube's supplied total otherwise moves every genotype in it. Presplit is still observed as `ln_cfu`. Validation grid: `planning/studies/count-likelihood/`. +Roadmap step 7. **The `tfs-configure-model` default** (with `sample_offset: level`), since the count-likelihood study (2026-09-27: theta RMSE 35-60% lower than `lncfu` at similar coverage). `ModelOrchestrator`'s own defaults stay `lncfu`/`zero` on purpose: configs are read back through it, and one written before step 7 has no `growth_likelihood` key, so changing the orchestrator default would silently turn old `lncfu` configs into count models (tests with synthetic `ln_cfu` tables also rely on it). `observe/growth_counts.py` observes reads directly: `reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r)` with `log mu = ln_sample_reads + ln_cfu_pred - sample_ln_cfu` (predicted frequency times the tube's reads), learned `growth_phi`/`growth_inv_r` (LogNormal priors, medians 5 and 0.01), no pseudocount. The log-pmf is `CountNegativeBinomial`, Loader's algorithm (R's `dnbinom_mu`: `bd0` deviance + `stirlerr`): numpyro's own negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; keep any rewrite of it tested against scipy at high depth (`test_observe_growth_counts.py`), and guard `jnp.where` branches so the unused one cannot overflow (NaN gradients). The concentration has a floor (`c + e^-30`, `_LOG_C_FLOOR`): without it `mu / phi` underflows for genotypes predicted near extinction (all-zero genotypes drift there) and the gradient/Hessian go NaN; `test_finite_value_gradient_and_hessian` covers log mu down to -200. Data: `GrowthData.counts`/`ln_sample_reads`/`sample_ln_cfu` (same layout as `ln_cfu`, None for `lncfu`; sliced by `tensors/batch.py`) and the static `GrowthData.growth_likelihood`, built by `model_orchestrator._add_count_columns` (tube reads from `sample_reads`, else `adjusted_counts / frequency`, about 1% high from pseudocounts, the same for every genotype in a tube; tube totals from `sample_ln_cfu` or `sample_cfu`). The orchestrator refuses `growth_noise` other than `zero` with counts. Pair it with `sample_offset: level` (one constant-prior ln_cfu offset per tube), since an error in a tube's supplied total otherwise moves every genotype in it. Presplit is still observed as `ln_cfu`. Validation grid: `planning/studies/count-likelihood/`. ### Relative-X fit (`theta: hill_relative`) diff --git a/examples/simulate-and-analyze/run.sh b/examples/simulate-and-analyze/run.sh index 37d13304..a5f7ad0f 100644 --- a/examples/simulate-and-analyze/run.sh +++ b/examples/simulate-and-analyze/run.sh @@ -70,7 +70,9 @@ tfs-configure-model \ --theta_rescale_model passthrough \ --theta_growth_noise_model logit_normal \ --theta_binding_noise_model zero \ - --growth_noise_model normal_kt \ + --growth_likelihood counts \ + --sample_offset_model level \ + --growth_noise_model zero \ --library_config "${library_config}" \ --growth_shares_replicates \ --epistasis diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 22e69c03..8e9cbf42 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -125,6 +125,8 @@ tfs-configure-model \ --theta_growth_noise_model logit_normal \ --theta_binding_noise_model zero \ --growth_noise_model normal_kt \ + --growth_likelihood lncfu \ + --sample_offset_model zero \ --library_config tfs_sim_config.yaml \ --growth_shares_replicates \ --epistasis \ diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index 63a3e7cc..8ce1c183 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -4,7 +4,7 @@ component `hill_relative`: no binding data, no prefit, wt's X pinned to 1 at 0 mM and 0 at 1 mM IPTG) recover X, the Hill K and n, and each condition's `k` and `m`, about as well as the anchored joint fit recovers theta? Does -that hold under realistic count noise, and on either growth likelihood? +that hold under realistic count noise? **Decisions it feeds.** - Roadmap step 5 (`planning/analysis-roadmap.md`): whether the relative fit @@ -21,17 +21,18 @@ in-library binding anchors), at lambda 0 and the wide dk spread, like `../count-likelihood/`. Lambda 0 keeps congression out of the comparison; both fits use `single`. -[`grid.yaml`](grid.yaml): 2 noise x 2 likelihood x 2 fits x 3 seeds = 24 -runs. +[`grid.yaml`](grid.yaml): 2 noise x 2 fits x 3 seeds = 12 runs, all on +the count likelihood (the default after `../count-likelihood/`; the +`lncfu` arm of the first design was dropped, 2026-09-27). | axis | levels | |---|---| -| simulated noise | `poisson`; `realistic` (founder sampling, demographic growth, shared transformation, 150,000 PCR templates with CV 0.5: about 8x Poisson), as in `../count-likelihood/` | -| likelihood | `lncfu` (Student-t on `ln_cfu`, `normal_kt` growth noise); `counts` (negative binomial on reads, `sample_offset: level`) | +| simulated noise | `poisson`; `realistic` (founder sampling, demographic growth, shared transformation, 150,000 PCR templates with CV 0.5; designed for ~8x Poisson, fitted at ~29x in `../count-likelihood/` v3) | | fit | `joint` (`hill_geno`, binding at weight 1, prefit with `k_scale_ceiling` 0.005); `relative` (`hill_relative`, growth only, no prefit) | | seed | 1, 2, 3 | -Both fits use per-genotype Hill curves (the simulation's `hill_mut` truth +Both fits use `growth_likelihood: counts` with `sample_offset: level` and +per-genotype Hill curves (the simulation's `hill_mut` truth is fit by neither), activity fixed and no theta noise (the relative fit refuses it; the joint fit leaves it off to match). Each run ([`run.srun`](run.srun)) simulates, configures, prefits (joint only), fits, diff --git a/planning/studies/relative-fit/grid.yaml b/planning/studies/relative-fit/grid.yaml index 79c0b924..0f1e5af2 100644 --- a/planning/studies/relative-fit/grid.yaml +++ b/planning/studies/relative-fit/grid.yaml @@ -16,20 +16,19 @@ # template bottleneck with PCR jackpotting (~8x Poisson). # # Fits (both hill-per-genotype, theta noise off, single transformation; the -# simulation has lambda 0, so congression is out of the comparison): +# simulation has lambda 0, so congression is out of the comparison), both on +# the count likelihood with a per-tube level offset (the default since the +# count-likelihood study, ../count-likelihood/): # joint hill_geno with binding at weight 1, prefit (k_scale_ceiling # 0.005), the anchored baseline of the congression study # relative hill_relative, growth only, no prefit -# crossed with the growth likelihood: -# lncfu Student-t on ln_cfu with normal_kt growth noise (today's) -# counts negative binomial on reads with a per-tube level offset # -# 2 noise x 2 likelihood x 2 fits x 3 seeds = 24 runs. +# 2 noise x 2 fits x 3 seeds = 12 runs. # --------------------------------------------------------------------------- base_config: ../congression-calibration/simulate_config.yaml -run_name: "{{ 'realistic' if founder_sampling else 'poisson' }}__seed{{ seed }}__{{ likelihood }}__{{ fit }}" +run_name: "{{ 'realistic' if founder_sampling else 'poisson' }}__seed{{ seed }}__{{ fit }}" output_file: run.srun @@ -69,8 +68,3 @@ template: variants: - fit: joint - fit: relative - - - name: likelihood - variants: - - likelihood: lncfu - - likelihood: counts diff --git a/planning/studies/relative-fit/run.srun b/planning/studies/relative-fit/run.srun index 4c1e29d6..cb23848a 100644 --- a/planning/studies/relative-fit/run.srun +++ b/planning/studies/relative-fit/run.srun @@ -22,9 +22,10 @@ set -e # joint (hill_geno + binding + prefit) or relative (hill_relative, growth only) FIT="{{ fit }}" -# Growth likelihood: lncfu (with normal_kt growth noise) or counts (with a -# per-tube level offset; it refuses extra growth noise). -LIKELIHOOD="{{ likelihood }}" +# Growth likelihood: counts (default; with a per-tube level offset, and no +# extra growth noise, which it refuses) or lncfu (with normal_kt growth +# noise). grid.yaml runs counts only. +LIKELIHOOD="{{ likelihood | default('counts') }}" SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index ff3cc666..58e5253a 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -141,8 +141,8 @@ def configure_model(binding_df=None, theta_growth_noise_model="zero", theta_binding_noise_model="zero", growth_noise_model="zero", - sample_offset_model="zero", - growth_likelihood="lncfu", + sample_offset_model="level", + growth_likelihood="counts", theta_gauge_conc=None, library_config=None, growth_shares_replicates=False, @@ -275,22 +275,23 @@ def configure_model(binding_df=None, in quadrature with ln_cfu_std, capturing biological variability in growth rates not explained by theta or dk_geno. sample_offset_model : str, optional - Per-tube offset shared by every genotype in a tube. 'zero' (default) - adds none; 'level' adds one ln_cfu offset per tube with a learned, - constant SD (the tube's composition offset and any error in its - supplied total); 'normal' adds a per-tube growth-rate offset scaled - by elapsed time. Recommended with growth_likelihood 'counts', where - an error in a tube's supplied total otherwise moves every genotype - in it. + Per-tube offset shared by every genotype in a tube. 'level' + (default) adds one ln_cfu offset per tube with a learned, constant + SD (the tube's composition offset and any error in its supplied + total, including the tube's own growth noise); 'zero' adds none; + 'normal' adds a per-tube growth-rate offset scaled by elapsed time. + With growth_likelihood 'counts', an error in a tube's supplied total + otherwise moves every genotype in it. growth_likelihood : str, optional - How growth data are observed: 'lncfu' (default; Student-t on - ln_cfu) or 'counts' (negative binomial on the read counts, with a - learned dispersion whose variance has a part proportional to the - mean and a quadratic part; no pseudocount). 'counts' needs a - 'counts' column, each tube's total reads ('sample_reads', or - 'adjusted_counts' and 'frequency' to derive it) and total cells - ('sample_ln_cfu', or 'sample_cfu' with its uncertainty), and - growth_noise_model 'zero'. + How growth data are observed: 'counts' (default; negative binomial + on the read counts, with a learned dispersion whose variance has a + part proportional to the mean and a quadratic part; no pseudocount) + or 'lncfu' (Student-t on ln_cfu). 'counts' needs a 'counts' column, + each tube's total reads ('sample_reads', or 'adjusted_counts' and + 'frequency' to derive it) and total cells ('sample_ln_cfu', or + 'sample_cfu' with its uncertainty), and growth_noise_model 'zero'. + It cut theta RMSE by 35-60% against 'lncfu' on simulations + (planning/studies/count-likelihood/). theta_gauge_conc : list of float, optional ``c_lo c_hi``: the titrant concentrations at which theta_model 'hill_relative' pins wt's X to 1 and 0. Default: the lowest and diff --git a/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py b/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py index 80723984..dd1817b8 100644 --- a/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_setup_grid_cli.py @@ -162,7 +162,10 @@ def _data_block(**extra): variant = {"binding_df": "../data/binding.csv", "growth_df": "../data/growth.csv", "library_config": "../data/library.yaml", - "skip_model_stats": True} + "skip_model_stats": True, + # synthetic ln_cfu table without read counts + "growth_likelihood": "lncfu", + "sample_offset_model": "zero"} variant.update(extra) return {"name": "data", "variants": [variant]} diff --git a/tests/tfscreen/tfmodel/test_base_growth.py b/tests/tfscreen/tfmodel/test_base_growth.py index 383d4e6d..4ae2f87d 100644 --- a/tests/tfscreen/tfmodel/test_base_growth.py +++ b/tests/tfscreen/tfmodel/test_base_growth.py @@ -231,7 +231,10 @@ def test_configure_model_to_read_configuration_round_trip(tmp_path, base_growth_df=base_growth_path, library_config=minimal_library_config, out_prefix=out_prefix, - theta_growth_noise_model="zero") + theta_growth_noise_model="zero", + # synthetic ln_cfu table without read counts + growth_likelihood="lncfu", + sample_offset_model="zero") config_path = f"{out_prefix}_config.yaml" orchestrator, init_params = read_configuration(config_path) diff --git a/tests/tfscreen/tfmodel/test_count_likelihood.py b/tests/tfscreen/tfmodel/test_count_likelihood.py index a4d4bf19..6d2afa7f 100644 --- a/tests/tfscreen/tfmodel/test_count_likelihood.py +++ b/tests/tfscreen/tfmodel/test_count_likelihood.py @@ -172,3 +172,21 @@ def test_predict_on_new_tube_grid(sample_offset): num_samples=None) assert len(out) > 0 assert np.isfinite(out.filter(like="q0.5").to_numpy()).all() + + +def test_configure_defaults_to_counts(tmp_path): + """tfs-configure-model defaults to the count likelihood with a per-tube + level offset (count-likelihood study, 2026-09-27); ModelOrchestrator + keeps lncfu, so a config written before step 7 (no growth_likelihood + key) still reads back as the model it was.""" + out_prefix = str(tmp_path / "d") + configure_model(growth_df=_GROWTH_CSV, library_config=_LIBRARY_YAML, + out_prefix=out_prefix, skip_model_stats=True) + with open(f"{out_prefix}_config.yaml") as fh: + components = yaml.safe_load(fh)["components"] + assert components["growth_likelihood"] == "counts" + assert components["sample_offset"] == "level" + assert components["growth_noise"] == "zero" + + o = ModelOrchestrator(growth_df=_GROWTH_CSV, binding_df=_BINDING_CSV) + assert o.settings["growth_likelihood"] == "lncfu" diff --git a/tests/tfscreen/tfmodel/test_library_file.py b/tests/tfscreen/tfmodel/test_library_file.py index 9f2bcbeb..97a4af55 100644 --- a/tests/tfscreen/tfmodel/test_library_file.py +++ b/tests/tfscreen/tfmodel/test_library_file.py @@ -401,6 +401,9 @@ def _configure(self, tmp_path, library_config_file, **kwargs): library_config=library_config_file, out_prefix=out_prefix, skip_model_stats=True, + # synthetic ln_cfu table without read counts + growth_likelihood="lncfu", + sample_offset_model="zero", **kwargs) return out_prefix From 7fe75ed3433a0eb834dc481c260ec4bffd2638c2 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sun, 27 Sep 2026 15:58:38 -0700 Subject: [PATCH 060/208] Add tfs-calibrate-od600 (roadmap step 3) A tube's total population comes from its OD600 through a calibration that depends on the reader, plate, volume and strain, so each lab makes its own. tfs-calibrate-od600 fits one from two small experiments: repeated readings of a dilution series (reading noise; detection threshold midway between the two most dilute means) and plate counts of cultures whose OD600 was read (CFU/mL from colonies, dilution and plated volume, with counting and pipetting error). A weighted least-squares polynomial of CFU/mL in OD600 is written with its full covariance, the reading noise, the threshold and the calibrated range; the curve's error is shared by every tube, so callers get it apart from the per-reading error. Method, file format and apply/invert functions in tfscreen.process_raw.od600; synthetic example in examples/od600/. Breaking: the simulator's od600.calibration now takes this format; the lab notebook's (A_CFU, ...) is refused with a pointer to the tool. Run on the lab's spreadsheets (kept out of the repo) with the notebook's CFU/mL, it reproduces the notebook's coefficients to 2e-9 and its threshold and reading noise exactly. The notebook, however, never divides by the plated volume, so its constants and the totals made with them are 10x low; the tool divides. Tests: the module (noise, threshold, plate CFU, fit vs curve_fit, file round trip, legacy refusal, error parts, inverse), the CLI and the simulator on the new format. Full unit suite passes. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 26 ++ CLAUDE.md | 9 +- docs/source/process-raw.rst | 45 +- examples/od600/make_example_data.py | 46 ++ examples/od600/od600_calibration.yaml | 33 ++ examples/od600/plate_counts.csv | 17 + examples/od600/replicates.csv | 61 +++ examples/simulate/od600_calibration.yaml | 16 - examples/simulate/simulate_config.yaml | 11 +- planning/analysis-roadmap.md | 18 +- pyproject.toml | 1 + src/tfscreen/process_raw/od600.py | 398 ++++++++++++++++++ .../scripts/calibrate_od600_cli.py | 133 ++++++ src/tfscreen/simulate/od600.py | 135 ++---- .../process_raw/test_calibrate_od600_cli.py | 38 ++ .../process_raw/test_od600_calibration.py | 207 +++++++++ tests/tfscreen/simulate/test_od600.py | 69 +-- 17 files changed, 1078 insertions(+), 185 deletions(-) create mode 100644 examples/od600/make_example_data.py create mode 100644 examples/od600/od600_calibration.yaml create mode 100644 examples/od600/plate_counts.csv create mode 100644 examples/od600/replicates.csv delete mode 100644 examples/simulate/od600_calibration.yaml create mode 100644 src/tfscreen/process_raw/od600.py create mode 100644 src/tfscreen/process_raw/scripts/calibrate_od600_cli.py create mode 100644 tests/tfscreen/process_raw/test_calibrate_od600_cli.py create mode 100644 tests/tfscreen/process_raw/test_od600_calibration.py diff --git a/CHANGELOG.md b/CHANGELOG.md index e5c2f624..9a872065 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,8 +29,34 @@ fall into two kinds: ## [Unreleased] +### Added + +- **`tfs-calibrate-od600` (roadmap step 3).** Fits an OD600-to-CFU/mL + calibration from a lab's own two experiments: repeated OD600 readings of + a dilution series (reading noise and detection threshold) and plate + counts of cultures whose OD600 was read (CFU/mL from colonies, dilution + and plated volume, with counting and pipetting error). Writes the + polynomial's coefficients with their full covariance (the curve's error + is shared by every tube, so callers get it apart from the reading noise), + the reading noise, the detection threshold and the calibrated range, plus + a diagnostic PDF and CSVs. The method, file format and apply/invert + functions are in `tfscreen.process_raw.od600`; documented CSV inputs; + synthetic example in `examples/od600/`. It reproduces the lab + notebook's coefficients to 2e-9 when fed the notebook's CFU/mL, but the + notebook did not divide by the plated volume, so its constants (and the + CFU totals made with them) are 10x low. + ### Changed +- **Breaking: the simulator's `od600.calibration` is a + `tfs-calibrate-od600` file.** The lab notebook's format (`A_CFU`, + `OD600_PCT_STD`, ...) is refused with a pointer to the new tool. + `examples/simulate/od600_calibration.yaml` is replaced by + `examples/od600/od600_calibration.yaml`, made by the tool from synthetic + data at a realistic scale (8e8 CFU/mL per OD600 unit, not the old + example's 8e7). `od600_in_range` now means at or below the top of the + calibrated OD600 range. + - **Breaking: `tfs-configure-model` defaults to the count likelihood.** `--growth_likelihood` now defaults to `counts` and `--sample_offset_model` to `level` (was `lncfu` and `zero`). On the diff --git a/CLAUDE.md b/CLAUDE.md index ffbd3891..becd93aa 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -43,6 +43,7 @@ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 tfs-process-fastq # FASTQ → read counts tfs-process-counts # counts → ln_cfu DataFrames tfs-process-presplit # Process pre-split count files +tfs-calibrate-od600 # Fit an OD600-to-CFU/mL calibration from a dilution series of replicate readings + plate counts (process_raw/od600.py) tfs-configure-model # Generate YAML config template (+ library composition snapshot) tfs-prefit-calibration # Pre-fit linking function via MAP tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut; --adam_clip_norm opts back into elementwise gradient clipping, off by default) @@ -142,6 +143,10 @@ The hierarchical Bayesian inference engine. Key files: Roadmap step 7. **The `tfs-configure-model` default** (with `sample_offset: level`), since the count-likelihood study (2026-09-27: theta RMSE 35-60% lower than `lncfu` at similar coverage). `ModelOrchestrator`'s own defaults stay `lncfu`/`zero` on purpose: configs are read back through it, and one written before step 7 has no `growth_likelihood` key, so changing the orchestrator default would silently turn old `lncfu` configs into count models (tests with synthetic `ln_cfu` tables also rely on it). `observe/growth_counts.py` observes reads directly: `reads ~ NegBin(mu, var = mu (1 + phi) + mu^2 inv_r)` with `log mu = ln_sample_reads + ln_cfu_pred - sample_ln_cfu` (predicted frequency times the tube's reads), learned `growth_phi`/`growth_inv_r` (LogNormal priors, medians 5 and 0.01), no pseudocount. The log-pmf is `CountNegativeBinomial`, Loader's algorithm (R's `dnbinom_mu`: `bd0` deviance + `stirlerr`): numpyro's own negative binomial loses several nats per observation to float32 cancellation at 1e4-1e6 reads; keep any rewrite of it tested against scipy at high depth (`test_observe_growth_counts.py`), and guard `jnp.where` branches so the unused one cannot overflow (NaN gradients). The concentration has a floor (`c + e^-30`, `_LOG_C_FLOOR`): without it `mu / phi` underflows for genotypes predicted near extinction (all-zero genotypes drift there) and the gradient/Hessian go NaN; `test_finite_value_gradient_and_hessian` covers log mu down to -200. Data: `GrowthData.counts`/`ln_sample_reads`/`sample_ln_cfu` (same layout as `ln_cfu`, None for `lncfu`; sliced by `tensors/batch.py`) and the static `GrowthData.growth_likelihood`, built by `model_orchestrator._add_count_columns` (tube reads from `sample_reads`, else `adjusted_counts / frequency`, about 1% high from pseudocounts, the same for every genotype in a tube; tube totals from `sample_ln_cfu` or `sample_cfu`). The orchestrator refuses `growth_noise` other than `zero` with counts. Pair it with `sample_offset: level` (one constant-prior ln_cfu offset per tube), since an error in a tube's supplied total otherwise moves every genotype in it. Presplit is still observed as `ln_cfu`. Validation grid: `planning/studies/count-likelihood/`. +### OD600 calibration (`tfs-calibrate-od600`) + +Roadmap step 3. `process_raw/od600.py` holds the method (C10: the lab's data never enter the repo): `reading_noise`/`detection_threshold` from repeated readings of a dilution series (largest relative SD; midway between the two most dilute means), `plate_counts_to_cfu` (`colonies * dilution / plated_volume_mL`, Poisson counting + one pipetting error per step), `fit_polynomial` (weighted least squares, covariance scaled by the reduced chi-square as in `curve_fit`), `calibrate`, `write_calibration`/`read_calibration`/`check_calibration` (`kind: od600_to_cfu_per_mL`, coefficients, full covariance, `reading_rel_sd`, `detection_threshold`, `calibrated_od600_range`; the lab notebook's `A_CFU`... format is refused with a pointer), `od600_to_cfu_per_mL`, `cfu_per_mL_error_components` (curve SD `sqrt(J C J^T)`, shared by every tube (C11), kept apart from the per-reading SD) and `cfu_per_mL_to_od600` (bisection). It reproduces the lab notebook's coefficients to 2e-9 given the notebook's CFU/mL, but the notebook never divided by the plated volume (0.1 mL), so its constants are 10x low; the tool divides. + ### Relative-X fit (`theta: hill_relative`) Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). Validation grid: `planning/studies/relative-fit/`. @@ -327,7 +332,7 @@ These two dicts are the mechanism by which binding data is "pinned" into the gro | `simulate/base_growth_data.py` | Generates simulated direct growth-rate calibration data (`base_growth_data` YAML block) and the single-row `k_ref` ground-truth echo | | `simulate/growth_parameters_output.py` | Generates per-condition `condition_growth` ground truth (`tfs_sim_growth_parameters.csv`) from the `growth` YAML block | | `simulate/presplit_data.py` | Generates simulated pre-split (t = -t_pre) data (`presplit_data` YAML block; `generate_presplit_df`) | -| `simulate/od600.py` | Simulated OD600 per tube (`od600` YAML block): inverts the lab-format calibration (`A/B/C_CFU`, `OD600_PCT_STD`, `OD600_MEAS_THRESHOLD`, optional `OD600_MAX`, `P/Q/R_JCJT_CFU`) to get each tube's true OD600, adds reading noise, flags detectable/in-range, and (`sample_cfu_from_od600`) runs it forward to the lab's estimate. `simulate_cli` writes `tfs_sim_od600.csv` for every replicate, including `num_od_only_replicates` extra unsequenced ones | +| `simulate/od600.py` | Simulated OD600 per tube (`od600` YAML block): inverts a `tfs-calibrate-od600` calibration (read/apply/invert live in `process_raw/od600.py`) to get each tube's true OD600, adds reading noise, flags detectable/in-calibrated-range, and (`sample_cfu_from_od600`) runs it forward to the lab's estimate. `simulate_cli` writes `tfs_sim_od600.csv` for every replicate, including `num_od_only_replicates` extra unsequenced ones | | `simulate/sample_theta.py` | `sample_theta_prior` (prior-predictive) and `sample_theta_stratified` (greedy maximin) | | `simulate/sim_data_class.py` | `SimData` container and `build_sim_data` factory | | `simulate/build_sample_dataframes.py` | Constructs sample/timepoint DataFrames from simulation config | @@ -521,7 +526,7 @@ Both grid CLIs import from `tfscreen.util.grid_utils` for run-name generation, J |------|---------| | `simulate/simulate_config.yaml` | Canonical well-commented simulate config reference | | `simulate/simulate_grid.yaml` | Example simulate grid for `tfs-setup-sim-grid` | -| `simulate/od600_calibration.yaml` | Synthetic OD600-to-CFU calibration for the `od600` block in examples and tests (not any lab's real calibration) | +| `od600/` | Synthetic `tfs-calibrate-od600` inputs (`replicates.csv`, `plate_counts.csv`, from `make_example_data.py`) and the calibration made from them (`od600_calibration.yaml`, used by the simulate example's `od600` block); not any lab's real calibration | | `simulate/run.sh` | Jinja2 shell template rendered into each simulate grid run subdir | | `simulate-and-analyze/simulate_config.yaml` | Combined simulate + analyze workflow config | | `simulate-empirical/simulate_config.yaml` | Simulate config that resamples phenotypes from a `tfs-build-empirical` model (`phenotype_source: empirical`) | diff --git a/docs/source/process-raw.rst b/docs/source/process-raw.rst index ca06cc2f..bd8ab1ce 100644 --- a/docs/source/process-raw.rst +++ b/docs/source/process-raw.rst @@ -41,8 +41,9 @@ Pre-growth and selection both happen in the tubes, after the split. OD600 is read on three bioreplicates of the experiment; two are sequenced. Total CFU per tube comes from OD600 through an OD-to-CFU calibration. The -calibration depends on the plate reader, plate, volume and strain, so it is -the lab's, not part of this package; the pipeline takes the resulting CFU +calibration depends on the plate reader, plate, volume and strain, so each +lab makes its own with ``tfs-calibrate-od600`` (see "OD600 calibration" +below); the pipeline takes the resulting CFU estimate per tube (``sample_cfu`` and its uncertainty, or the log-space equivalents). A calibration gives cfu/mL; the pipeline's ``ln_cfu`` is cells in the 5 mL tube, ``ln(cfu/mL * 5 mL)``. Under the strongest selection a @@ -91,6 +92,46 @@ There are three primary scripts for processing raw data: selection conditions). The output anchors the initial genotype abundances used by the growth model. +OD600 calibration +----------------- + +``tfs-calibrate-od600`` fits the calibration from two small experiments, both +done with the same handling as production samples (same reader, plate type, +volume and strain): + +- **Repeated readings of a dilution series.** Read each dilution several + times, repeating the whole step each time (swirl the culture, pipette into + the plate, read). A CSV with one row per reading, columns ``dilution`` + (relative to the undiluted culture) and ``od600``. The largest relative SD + across dilutions is the reading noise; the detection threshold is midway + between the mean readings of the two most dilute samples, where the series + has flattened onto the reader's floor (``--detection_threshold`` + overrides it). +- **Plate counts of cultures whose OD600 was read.** One row per plate: + ``od600``, ``colonies``, ``dilution`` (total dilution factor before + plating), ``plated_volume_mL``, ``num_dilutions`` and ``plating_steps``. + CFU/mL is ``colonies * dilution / plated_volume_mL``, with relative + variance ``1 / colonies`` (counting) plus ``pipette_rel_error^2`` per + dilution and plating step. + +A polynomial of CFU/mL in OD600 (``--degree``, default 2) is fit by weighted +least squares. The output ``{out_prefix}.yaml`` holds the coefficients and +their full covariance, the reading noise, the detection threshold and the +calibrated OD600 range. The covariance matters: the curve's error is one +error shared by every tube calibrated with it, so it does not average out +across tubes and must not be treated as independent per-tube noise +(``tfscreen.process_raw.od600.cfu_per_mL_error_components`` returns the curve +and reading parts separately). ``{out_prefix}.pdf`` shows the dilution +series, the fit and the calibrated CFU's relative error; the two CSVs hold +the per-dilution noise and the per-plate fit. + +.. code-block:: bash + + tfs-calibrate-od600 replicates.csv plate_counts.csv --out_prefix od600 + +``examples/od600/`` has synthetic inputs in these formats +(``make_example_data.py``) and the calibration made from them. + Configuration File (run_config.yaml) ------------------------------------- diff --git a/examples/od600/make_example_data.py b/examples/od600/make_example_data.py new file mode 100644 index 00000000..96e43bc1 --- /dev/null +++ b/examples/od600/make_example_data.py @@ -0,0 +1,46 @@ +""" +Write synthetic inputs for tfs-calibrate-od600 (replicates.csv and +plate_counts.csv), to show the formats and exercise the tool. + +The numbers are made up, not any instrument's: a culture with +cfu/mL = 8e8 OD + 2e8 OD^2, a reader whose readings sit on a 0.088 floor +with 1.5% noise, 1:3 dilution series read ten times, and 16 cultures +plated at 1e5 dilution (five 1:10 steps, 0.1 mL spread). Each lab +measures its own calibration; do not use these for real data. + + python make_example_data.py + tfs-calibrate-od600 replicates.csv plate_counts.csv --out_prefix od600_calibration +""" + +import numpy as np +import pandas as pd + +rng = np.random.default_rng(20260927) + + +def cfu_per_mL(od): + return 8e8 * od + 2e8 * od ** 2 + + +# Ten readings of each of six 1:3 dilutions of an OD600 ~0.6 culture. +floor, rel_sd = 0.088, 0.015 +dilution = 1.0 / 3.0 ** np.arange(6) +rows = [] +for d in dilution: + true = floor + 0.52 * d + for _ in range(10): + rows.append({"dilution": d, + "od600": round(true * (1 + rel_sd * rng.normal()), 4)}) +pd.DataFrame(rows).to_csv("replicates.csv", index=False) + +# Sixteen cultures across OD600 0.12-0.6, each read once and plated. +od_true = np.linspace(0.12, 0.6, 16) +od_read = od_true * (1 + rel_sd * rng.normal(size=od_true.size)) +fold, volume = 1e5, 0.1 +colonies = rng.poisson(cfu_per_mL(od_true) * volume / fold) +pd.DataFrame({"od600": np.round(od_read, 4), + "colonies": colonies, + "dilution": fold, + "plated_volume_mL": volume, + "num_dilutions": 5, + "plating_steps": 1}).to_csv("plate_counts.csv", index=False) diff --git a/examples/od600/od600_calibration.yaml b/examples/od600/od600_calibration.yaml new file mode 100644 index 00000000..b3d74b98 --- /dev/null +++ b/examples/od600/od600_calibration.yaml @@ -0,0 +1,33 @@ +# OD600-to-CFU calibration, written by tfs-calibrate-od600. +# cfu/mL = sum_i coefficients[i] * OD600^i. covariance is the +# coefficients' (shared by every tube calibrated with this file); +# reading_rel_sd is one reading's SD as a fraction of the reading. +# Specific to one plate reader, plate, volume and strain. +kind: od600_to_cfu_per_mL +degree: 2 +coefficients: +- -3232113.9094636133 +- 854172076.6876991 +- 41938427.08096051 +covariance: +- - 227467162769893.9 + - -1599191946265586.5 + - 2296356870091127.0 +- - -1599191946265586.5 + - 1.2197351004649222e+16 + - -1.828231333112995e+16 +- - 2296356870091127.0 + - -1.828231333112995e+16 + - 2.857868475371398e+16 +chi2_reduced: 0.39237605605574044 +reading_rel_sd: 0.01886048606352703 +detection_threshold: 0.09292 +calibrated_od600_range: +- 0.1192 +- 0.5997 +num_plate_counts: 16 +pipette_rel_error: 0.02 +source: + replicate_file: replicates.csv + plate_count_file: plate_counts.csv +written: '2026-09-27' diff --git a/examples/od600/plate_counts.csv b/examples/od600/plate_counts.csv new file mode 100644 index 00000000..62835a3f --- /dev/null +++ b/examples/od600/plate_counts.csv @@ -0,0 +1,17 @@ +od600,colonies,dilution,plated_volume_mL,num_dilutions,plating_steps +0.1192,97,100000.0,0.1,5,1 +0.1477,131,100000.0,0.1,5,1 +0.1842,151,100000.0,0.1,5,1 +0.2146,186,100000.0,0.1,5,1 +0.2448,207,100000.0,0.1,5,1 +0.2795,240,100000.0,0.1,5,1 +0.3126,239,100000.0,0.1,5,1 +0.3424,317,100000.0,0.1,5,1 +0.3782,344,100000.0,0.1,5,1 +0.4067,347,100000.0,0.1,5,1 +0.4452,379,100000.0,0.1,5,1 +0.4669,411,100000.0,0.1,5,1 +0.504,438,100000.0,0.1,5,1 +0.5335,483,100000.0,0.1,5,1 +0.5735,479,100000.0,0.1,5,1 +0.5997,527,100000.0,0.1,5,1 diff --git a/examples/od600/replicates.csv b/examples/od600/replicates.csv new file mode 100644 index 00000000..0c9f558f --- /dev/null +++ b/examples/od600/replicates.csv @@ -0,0 +1,61 @@ +dilution,od600 +1.0,0.5893 +1.0,0.6039 +1.0,0.6042 +1.0,0.6119 +1.0,0.6056 +1.0,0.604 +1.0,0.588 +1.0,0.6141 +1.0,0.6065 +1.0,0.6303 +0.3333333333333333,0.2582 +0.3333333333333333,0.2655 +0.3333333333333333,0.2713 +0.3333333333333333,0.2583 +0.3333333333333333,0.2624 +0.3333333333333333,0.2627 +0.3333333333333333,0.2592 +0.3333333333333333,0.2647 +0.3333333333333333,0.2646 +0.3333333333333333,0.2723 +0.1111111111111111,0.1426 +0.1111111111111111,0.1474 +0.1111111111111111,0.1491 +0.1111111111111111,0.1465 +0.1111111111111111,0.1456 +0.1111111111111111,0.1504 +0.1111111111111111,0.144 +0.1111111111111111,0.1456 +0.1111111111111111,0.1467 +0.1111111111111111,0.1442 +0.037037037037037035,0.1074 +0.037037037037037035,0.1042 +0.037037037037037035,0.1085 +0.037037037037037035,0.1075 +0.037037037037037035,0.1044 +0.037037037037037035,0.1078 +0.037037037037037035,0.1085 +0.037037037037037035,0.1063 +0.037037037037037035,0.1064 +0.037037037037037035,0.1086 +0.012345679012345678,0.0931 +0.012345679012345678,0.0972 +0.012345679012345678,0.0975 +0.012345679012345678,0.0942 +0.012345679012345678,0.093 +0.012345679012345678,0.0967 +0.012345679012345678,0.0946 +0.012345679012345678,0.0947 +0.012345679012345678,0.0948 +0.012345679012345678,0.0953 +0.00411522633744856,0.0895 +0.00411522633744856,0.0941 +0.00411522633744856,0.0889 +0.00411522633744856,0.0899 +0.00411522633744856,0.0897 +0.00411522633744856,0.0925 +0.00411522633744856,0.0907 +0.00411522633744856,0.0904 +0.00411522633744856,0.0903 +0.00411522633744856,0.0913 diff --git a/examples/simulate/od600_calibration.yaml b/examples/simulate/od600_calibration.yaml deleted file mode 100644 index 5f75b292..00000000 --- a/examples/simulate/od600_calibration.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Synthetic OD600-to-CFU calibration for examples and tests only. -# -# A real calibration depends on the plate reader, plate, volume and strain, -# so every lab measures its own (tfs-calibrate-od600, roadmap step 3). These -# numbers are made up to be plausible, not taken from any instrument. -# -# cfu/mL = A_CFU + B_CFU * OD600 + C_CFU * OD600^2 -A_CFU: 0.0 -B_CFU: 80_000_000.0 -C_CFU: 20_000_000.0 -# SD of one OD600 reading, as a fraction of the reading. -OD600_PCT_STD: 0.02 -# Readings below this are not measurable. -OD600_MEAS_THRESHOLD: 0.08 -# Top of the calibrated range. -OD600_MAX: 0.8 diff --git a/examples/simulate/simulate_config.yaml b/examples/simulate/simulate_config.yaml index 69183d26..bc27a71d 100644 --- a/examples/simulate/simulate_config.yaml +++ b/examples/simulate/simulate_config.yaml @@ -316,11 +316,10 @@ seed: null # pcr_amplification_cv: 1.0 # One OD600 reading per tube, from its true total through an OD600-to-CFU -# calibration (od600_calibration.yaml here is synthetic; a lab supplies its -# own). Writes tfs_sim_od600.csv with every tube of every replicate. -# calibration: constants file (A_CFU, B_CFU, C_CFU, -# OD600_PCT_STD, OD600_MEAS_THRESHOLD, optional -# OD600_MAX and P/Q/R_JCJT_CFU) +# calibration (the one in ../od600/ is synthetic; a lab makes its own with +# tfs-calibrate-od600). Writes tfs_sim_od600.csv with every tube of every +# replicate. +# calibration: calibration YAML written by tfs-calibrate-od600 # tube_volume_mL: tube volume; the calibration is per mL (5.0) # num_od_only_replicates: extra replicates with OD600 but no reads (0) # sample_cfu_from_od600: give the pipeline each tube's total as estimated @@ -328,7 +327,7 @@ seed: null # true total (false) # # od600: -# calibration: od600_calibration.yaml +# calibration: ../od600/od600_calibration.yaml # tube_volume_mL: 5.0 # num_od_only_replicates: 1 # sample_cfu_from_od600: true diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 99029c89..66372d88 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -383,7 +383,7 @@ step 7. - The orchestrator requires counts, depth and the OD table. Old processed files are not supported; reprocess the real data (C6) and regenerate simulations. -3. **Generic OD600 calibration** (N; new CLI; C10, C11). +3. [x] **Generic OD600 calibration** (N; new CLI; C10, C11). `tfs-calibrate-od600`: port the notebook's method (technical-replicate reading noise, detection threshold, errors-in-variables polynomial of CFU on OD, counting plus pipetting error on the plate counts) with a @@ -395,6 +395,22 @@ step 7. `process_raw/`. Test: reproduces the lab notebook's constants and CFU estimates from its spreadsheets (run locally; the data stay out of the repo), and a synthetic example in `examples/`. + Done 2026-09-27: `tfs-calibrate-od600` (`process_raw/od600.py`, + `scripts/calibrate_od600_cli.py`), documented CSV inputs, a + `kind: od600_to_cfu_per_mL` YAML with the full covariance, and + `examples/od600/`. The simulator's `od600` block reads the new format + (the old one is refused). Run locally on the lab's spreadsheets, it + reproduces the notebook's coefficients to 2e-9, the detection threshold + (0.0957) and the reading noise (1.96%) exactly, given the notebook's + CFU/mL. **But the notebook's CFU/mL omits the division by the plated + volume** (0.1 mL): the sheet's own `CFU_per_mL` column is 10x the value + fitted, so the lab's constants, and every CFU total and `ln_cfu` made + with them, are 10x (ln 10 = 2.3) low. Frequencies, growth rates, theta + and dk_geno are unaffected (a constant factor cancels); `ln_cfu0`, the + presplit level, simulated `cfu0` tuned against real `ln_cfu`, and the + absolute totals the population model (step 6) will use are affected. + The notebook's quadratic approximation of the curve error (`P/Q/R`) is + replaced by the exact `J C J^T`; they differ by up to 1.8x at low OD. 4. [x] **Simulator realism** (N; simulator only). The simulator has index hopping (`prob_index_hop`) and per-tube growth noise (per timepoint, matching the design) but writes diff --git a/pyproject.toml b/pyproject.toml index 4e39ed65..d7dcfd2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,6 +73,7 @@ docs = ["pydata-sphinx-theme"] tfs-process-fastq = "tfscreen.process_raw.scripts.process_fastq_cli:main" tfs-process-counts = "tfscreen.process_raw.scripts.process_counts_cli:main" tfs-process-presplit = "tfscreen.process_raw.scripts.process_presplit_cli:main" +tfs-calibrate-od600 = "tfscreen.process_raw.scripts.calibrate_od600_cli:main" tfs-configure-model = "tfscreen.tfmodel.scripts.configure_model_cli:main" tfs-prefit-calibration = "tfscreen.tfmodel.scripts.prefit_calibration_cli:main" tfs-fit-model = "tfscreen.tfmodel.scripts.fit_model_cli:main" diff --git a/src/tfscreen/process_raw/od600.py b/src/tfscreen/process_raw/od600.py new file mode 100644 index 00000000..a6cb7245 --- /dev/null +++ b/src/tfscreen/process_raw/od600.py @@ -0,0 +1,398 @@ +""" +OD600-to-CFU calibration: fit, read, write and apply. + +Roadmap step 3 (planning/analysis-roadmap.md; constraints C10, C11). A tube's +total population is estimated from its OD600 reading through a calibration +that depends on the plate reader, plate, volume and strain, so every lab +measures its own. This module holds the method; the calibration data stay +with the lab. ``tfs-calibrate-od600`` (``scripts/calibrate_od600_cli.py``) +runs it. + +Two experiments feed a calibration: + +- **Replicate readings of a dilution series** (``replicate_df``: columns + ``dilution`` and ``od600``, one row per reading). Each reading repeats the + whole handling step used in production (swirl, pipette into the plate, + read). The spread of repeated readings gives the reading noise, as a + fraction of the reading; the flattening of the series at high dilution + gives the detection threshold. +- **Plate counts of cultures whose OD600 was read** (``plate_df``: columns + ``od600``, ``colonies``, ``dilution`` (total dilution factor before + plating), ``plated_volume_mL``, ``num_dilutions`` and ``plating_steps``). + CFU/mL is ``colonies * dilution / plated_volume_mL``; its variance + combines Poisson counting error (``1 / colonies``, relative) and one + pipetting error per dilution and plating step. + +A polynomial of CFU/mL in OD600 (the better-measured variable) is fit by +weighted least squares. Its full parameter covariance is kept: the curve's +error is one error shared by every tube calibrated with it (C11), so it +cannot be treated as independent per tube, and callers get it separately +from the reading noise (``cfu_per_mL_error_components``). + +The method follows the lab notebook it replaces, with one change: the +notebook's CFU/mL omitted the division by the plated volume. +""" + +import datetime + +import numpy as np +import pandas as pd +import yaml + +from tfscreen.util import read_yaml + +CALIBRATION_KIND = "od600_to_cfu_per_mL" + +REPLICATE_COLUMNS = ("dilution", "od600") +PLATE_COLUMNS = ("od600", "colonies", "dilution", "plated_volume_mL", + "num_dilutions", "plating_steps") + +# Keys of the lab notebook's format, refused with a pointer to the new one. +_LEGACY_KEYS = ("A_CFU", "B_CFU", "C_CFU", "OD600_PCT_STD", + "OD600_MEAS_THRESHOLD") + + +def _require_columns(df, columns, label): + missing = [c for c in columns if c not in df.columns] + if missing: + raise ValueError(f"{label} is missing column(s) {missing}; it needs " + f"{list(columns)}.") + + +# --------------------------------------------------------------------------- +# The two experiments +# --------------------------------------------------------------------------- + +def reading_noise(replicate_df): + """ + Per-dilution summary of repeated OD600 readings. + + Parameters + ---------- + replicate_df : pandas.DataFrame + Columns ``dilution`` and ``od600``, one row per reading. + + Returns + ------- + pandas.DataFrame + One row per dilution, most concentrated first: ``dilution``, ``n``, + ``mean``, ``sd`` (population SD, as the lab notebook) and ``rel_sd``. + """ + _require_columns(replicate_df, REPLICATE_COLUMNS, "replicate_df") + df = replicate_df[list(REPLICATE_COLUMNS)].dropna() + table = (df.groupby("dilution")["od600"] + .agg(n="size", mean="mean", sd=lambda x: np.std(x, ddof=0)) + .reset_index() + .sort_values("dilution", ascending=False) + .reset_index(drop=True)) + if len(table) < 2: + raise ValueError("replicate_df needs at least two dilutions.") + table["rel_sd"] = table["sd"] / table["mean"] + return table + + +def detection_threshold(noise_table): + """ + Midway between the mean readings of the two most dilute samples, where + the series has flattened onto the reader's floor (the lab notebook's + rule). ``noise_table`` is the output of :func:`reading_noise`. + """ + lowest = noise_table.sort_values("dilution")["mean"].to_numpy()[:2] + return float(lowest.mean()) + + +def plate_counts_to_cfu(plate_df, pipette_rel_error=0.02): + """ + CFU/mL and its SD for each plated culture. + + ``cfu/mL = colonies * dilution / plated_volume_mL``, with relative + variance ``1 / colonies + (num_dilutions + plating_steps) * + pipette_rel_error^2`` (Poisson counting plus independent pipetting + errors of equal relative size). + + Returns + ------- + pandas.DataFrame + ``plate_df`` with ``cfu_per_mL`` and ``cfu_per_mL_std`` added. + """ + _require_columns(plate_df, PLATE_COLUMNS, "plate_df") + df = plate_df.copy() + colonies = df["colonies"].to_numpy(dtype=float) + if np.any(colonies <= 0): + raise ValueError("plate_df has plates with no colonies; they carry " + "no count and cannot be weighted.") + cfu = colonies * df["dilution"].to_numpy(dtype=float) \ + / df["plated_volume_mL"].to_numpy(dtype=float) + steps = (df["num_dilutions"].to_numpy(dtype=float) + + df["plating_steps"].to_numpy(dtype=float)) + rel_var = 1.0 / colonies + steps * pipette_rel_error ** 2 + df["cfu_per_mL"] = cfu + df["cfu_per_mL_std"] = cfu * np.sqrt(rel_var) + return df + + +def fit_polynomial(od600, cfu, cfu_std, degree=2): + """ + Weighted least-squares polynomial of CFU/mL in OD600. + + The covariance is scaled by the reduced chi-square, so misfit beyond the + stated errors widens it (the convention of ``scipy.optimize.curve_fit`` + and of the lab notebook). + + Returns + ------- + coefficients : numpy.ndarray + ``c_0 .. c_degree``; ``cfu/mL = sum_i c_i OD600^i``. + covariance : numpy.ndarray + chi2_reduced : float + """ + od = np.asarray(od600, dtype=float) + y = np.asarray(cfu, dtype=float) + w = 1.0 / np.asarray(cfu_std, dtype=float) + dof = len(y) - (degree + 1) + if dof < 1: + raise ValueError(f"A degree-{degree} polynomial needs at least " + f"{degree + 2} plate counts; got {len(y)}.") + X = np.vander(od, degree + 1, increasing=True) + Xw = X * w[:, None] + yw = y * w + coef, *_ = np.linalg.lstsq(Xw, yw, rcond=None) + resid = yw - Xw @ coef + chi2_red = float(resid @ resid / dof) + covariance = np.linalg.inv(Xw.T @ Xw) * chi2_red + covariance = 0.5 * (covariance + covariance.T) + return coef, covariance, chi2_red + + +def calibrate(replicate_df, plate_df, degree=2, pipette_rel_error=0.02, + threshold=None): + """ + Build a calibration from the two experiments. + + Parameters + ---------- + replicate_df, plate_df : pandas.DataFrame + See the module docstring. + degree : int, optional + Polynomial degree (default 2). + pipette_rel_error : float, optional + Relative error of one pipetting step (default 0.02). + threshold : float, optional + Detection threshold; default from the dilution series + (:func:`detection_threshold`). + + Returns + ------- + calibration : dict + The calibration, as written by :func:`write_calibration`. + noise_table : pandas.DataFrame + :func:`reading_noise` output. + plate_table : pandas.DataFrame + The plate counts with CFU/mL, its SD, the fitted curve and the + standardized residual. + """ + noise_table = reading_noise(replicate_df) + if threshold is None: + threshold = detection_threshold(noise_table) + plate_table = plate_counts_to_cfu(plate_df, pipette_rel_error) + od = plate_table["od600"].to_numpy(dtype=float) + coef, cov, chi2_red = fit_polynomial(od, plate_table["cfu_per_mL"], + plate_table["cfu_per_mL_std"], + degree) + + calibration = { + "kind": CALIBRATION_KIND, + "degree": int(degree), + "coefficients": [float(c) for c in coef], + "covariance": [[float(v) for v in row] for row in cov], + "chi2_reduced": chi2_red, + "reading_rel_sd": float(noise_table["rel_sd"].max()), + "detection_threshold": float(threshold), + "calibrated_od600_range": [float(od.min()), float(od.max())], + "num_plate_counts": int(len(od)), + "pipette_rel_error": float(pipette_rel_error), + } + check_calibration(calibration) + + fitted = np.vander(od, degree + 1, increasing=True) @ coef + plate_table["cfu_per_mL_fit"] = fitted + plate_table["z"] = (plate_table["cfu_per_mL"] - fitted) \ + / plate_table["cfu_per_mL_std"] + return calibration, noise_table, plate_table + + +# --------------------------------------------------------------------------- +# The calibration file +# --------------------------------------------------------------------------- + +def check_calibration(cal): + """ + Validate a calibration dict; raise ValueError on a problem. + + The curve must increase across ``[detection_threshold, top of the + calibrated range]`` so every reading maps to one total. + """ + if any(k in cal for k in _LEGACY_KEYS) and "coefficients" not in cal: + raise ValueError( + "This is the lab notebook's calibration format (A_CFU, B_CFU, " + "...). Regenerate it with tfs-calibrate-od600, which keeps the " + "full parameter covariance and fixes the notebook's CFU/mL, " + "which did not divide by the plated volume.") + required = ("kind", "degree", "coefficients", "covariance", + "reading_rel_sd", "detection_threshold", + "calibrated_od600_range") + missing = [k for k in required if k not in cal] + if missing: + raise ValueError(f"OD600 calibration is missing {missing}.") + if cal["kind"] != CALIBRATION_KIND: + raise ValueError(f"Not an OD600 calibration (kind {cal['kind']!r}).") + n = int(cal["degree"]) + 1 + coef = np.asarray(cal["coefficients"], dtype=float) + cov = np.asarray(cal["covariance"], dtype=float) + if coef.shape != (n,) or cov.shape != (n, n): + raise ValueError(f"A degree-{n - 1} calibration needs {n} " + f"coefficients and an {n}x{n} covariance.") + lo, hi = (float(v) for v in cal["calibrated_od600_range"]) + grid = np.linspace(min(float(cal["detection_threshold"]), lo), hi, 200) + if np.any(_poly_slope(coef, grid) <= 0): + raise ValueError("The calibration curve is not increasing between " + "the detection threshold and the top of the " + "calibrated range; it cannot be inverted.") + + +def read_calibration(calibration): + """ + Read and validate an OD600 calibration (a YAML path or the dict). + + Returns + ------- + dict + With ``coefficients`` and ``covariance`` as numpy arrays and the + other values as floats. + """ + cal = dict(read_yaml(calibration)) + check_calibration(cal) + cal["coefficients"] = np.asarray(cal["coefficients"], dtype=float) + cal["covariance"] = np.asarray(cal["covariance"], dtype=float) + cal["reading_rel_sd"] = float(cal["reading_rel_sd"]) + cal["detection_threshold"] = float(cal["detection_threshold"]) + cal["calibrated_od600_range"] = [float(v) for v in + cal["calibrated_od600_range"]] + return cal + + +def write_calibration(calibration, path, source=None): + """ + Write a calibration YAML, with a header saying what it is and how it was + made (``source``: optional dict recorded under ``source``). + """ + cal = dict(calibration) + if source is not None: + cal["source"] = dict(source) + cal["written"] = datetime.date.today().isoformat() + header = ( + "# OD600-to-CFU calibration, written by tfs-calibrate-od600.\n" + "# cfu/mL = sum_i coefficients[i] * OD600^i. covariance is the\n" + "# coefficients' (shared by every tube calibrated with this file);\n" + "# reading_rel_sd is one reading's SD as a fraction of the reading.\n" + "# Specific to one plate reader, plate, volume and strain.\n") + with open(path, "w") as fh: + fh.write(header) + yaml.safe_dump(cal, fh, sort_keys=False) + + +# --------------------------------------------------------------------------- +# Applying it +# --------------------------------------------------------------------------- + +def as_calibration(cal): + """A calibration as read by :func:`read_calibration` (read it if not).""" + if isinstance(cal, dict) and isinstance(cal.get("coefficients"), np.ndarray): + return cal + return read_calibration(cal) + + +def _poly(coef, od): + return np.vander(np.ravel(od), len(coef), increasing=True) @ coef + + +def _poly_slope(coef, od): + powers = np.arange(1, len(coef)) + od = np.ravel(od) + return (od[:, None] ** (powers - 1)) @ (coef[1:] * powers) + + +def cfu_per_mL_error_components(od600, cal): + """ + The two parts of the SD of a calibrated CFU/mL, kept apart. + + Returns + ------- + curve_sd : numpy.ndarray + From the coefficients' covariance, ``sqrt(J C J^T)`` with + ``J = [1, OD, OD^2, ...]``: one error shared by every tube + calibrated with this curve (C11). + reading_sd : numpy.ndarray + One reading's noise through the curve's slope, independent per + tube. + """ + cal = as_calibration(cal) + od = np.atleast_1d(np.asarray(od600, dtype=float)) + J = np.vander(od, len(cal["coefficients"]), increasing=True) + curve_var = np.einsum("ij,jk,ik->i", J, cal["covariance"], J) + reading_sd = np.abs(_poly_slope(cal["coefficients"], od)) \ + * cal["reading_rel_sd"] * od + return np.sqrt(np.maximum(curve_var, 0.0)), reading_sd + + +def od600_to_cfu_per_mL(od600, cal): + """ + Forward calibration. + + Readings below the detection threshold are evaluated at the threshold, + so they give an upper bound. + + Returns + ------- + cfu_per_mL, cfu_per_mL_std, detectable : numpy.ndarray + The SD combines the curve and reading parts + (:func:`cfu_per_mL_error_components`). + """ + cal = as_calibration(cal) + od = np.atleast_1d(np.asarray(od600, dtype=float)).copy() + detectable = od >= cal["detection_threshold"] + od[~detectable] = cal["detection_threshold"] + cfu = _poly(cal["coefficients"], od) + curve_sd, reading_sd = cfu_per_mL_error_components(od, cal) + return cfu, np.sqrt(curve_sd ** 2 + reading_sd ** 2), detectable + + +def in_calibrated_range(od600, cal): + """True where a reading is inside the plate counts' OD600 range.""" + lo, hi = as_calibration(cal)["calibrated_od600_range"] + od = np.atleast_1d(np.asarray(od600, dtype=float)) + return (od >= lo) & (od <= hi) + + +def cfu_per_mL_to_od600(cfu_per_mL, cal, od_max=None): + """ + Inverse calibration: the OD600 whose calibrated CFU/mL is the given one, + by bisection on ``[0, od_max]`` (default twice the top of the calibrated + range), where the curve must be increasing. Totals below the curve at + OD 0 map to 0; totals above it at ``od_max`` map to ``od_max``. + """ + cal = as_calibration(cal) + coef = cal["coefficients"] + if od_max is None: + od_max = 2.0 * cal["calibrated_od600_range"][1] + y = np.atleast_1d(np.asarray(cfu_per_mL, dtype=float)) + lo = np.zeros_like(y) + hi = np.full_like(y, float(od_max)) + for _ in range(80): + mid = 0.5 * (lo + hi) + below = _poly(coef, mid) < y + lo = np.where(below, mid, lo) + hi = np.where(below, hi, mid) + od = 0.5 * (lo + hi) + od[y <= _poly(coef, np.zeros(1))[0]] = 0.0 + return od diff --git a/src/tfscreen/process_raw/scripts/calibrate_od600_cli.py b/src/tfscreen/process_raw/scripts/calibrate_od600_cli.py new file mode 100644 index 00000000..8e49e06d --- /dev/null +++ b/src/tfscreen/process_raw/scripts/calibrate_od600_cli.py @@ -0,0 +1,133 @@ +""" +tfs-calibrate-od600: fit an OD600-to-CFU calibration from a lab's own data. + +See ``tfscreen.process_raw.od600`` for the method and the input formats. +""" + +import os + +import numpy as np + +from tfscreen.process_raw import od600 as od600_cal +from tfscreen.util.cli import generalized_main +from tfscreen.util.io import read_dataframe + + +def _plot(calibration, noise_table, plate_table, pdf_file): + """Dilution series, fitted curve, and the calibrated CFU's relative SD.""" + from matplotlib import pyplot as plt + from tfscreen.plot import default_styles # noqa: F401 (applies rcParams) + + cal = od600_cal.read_calibration(calibration) + fig, ax = plt.subplots(1, 3, figsize=(15, 4.5)) + + ax[0].errorbar(noise_table["dilution"], noise_table["mean"], + yerr=noise_table["sd"], fmt="o", mfc="none", capsize=3) + ax[0].axhline(cal["detection_threshold"], ls="--", color="gray") + ax[0].set_xscale("log") + ax[0].set_yscale("log") + ax[0].set_xlabel("dilution") + ax[0].set_ylabel("OD600 (mean +/- SD)") + + lo, hi = cal["calibrated_od600_range"] + grid = np.linspace(cal["detection_threshold"], hi * 1.05, 200) + cfu, sd, _ = od600_cal.od600_to_cfu_per_mL(grid, cal) + ax[1].fill_between(grid, cfu - sd, cfu + sd, color="lightgray") + ax[1].plot(grid, cfu, color="black") + ax[1].errorbar(plate_table["od600"], plate_table["cfu_per_mL"], + yerr=plate_table["cfu_per_mL_std"], fmt="o", mfc="none", + capsize=3, color="tab:red") + ax[1].axvline(cal["detection_threshold"], ls="--", color="gray") + ax[1].set_xlabel("OD600") + ax[1].set_ylabel("CFU/mL") + + curve_sd, reading_sd = od600_cal.cfu_per_mL_error_components(grid, cal) + ax[2].plot(grid, curve_sd / cfu, label="curve (shared by all tubes)") + ax[2].plot(grid, reading_sd / cfu, label="one reading") + ax[2].plot(grid, sd / cfu, color="black", label="total") + ax[2].axvspan(lo, hi, color="lightgray", alpha=0.4, lw=0) + ax[2].set_xlabel("OD600") + ax[2].set_ylabel("SD / CFU") + ax[2].legend(frameon=False) + + fig.tight_layout() + fig.savefig(pdf_file) + plt.close(fig) + + +def calibrate_od600(replicate_file, + plate_count_file, + out_prefix="tfs_od600", + degree=2, + pipette_rel_error=0.02, + detection_threshold=None): + """ + Fit an OD600-to-CFU/mL calibration and write it for the pipeline. + + A calibration depends on the plate reader, plate, volume and strain, so + each lab makes its own from two small experiments done with the same + handling as production samples. + + Parameters + ---------- + replicate_file : str + CSV/TSV/Excel of repeated OD600 readings of a dilution series, one + row per reading: ``dilution`` (relative to the undiluted culture), + ``od600``. Gives the reading noise (the largest relative SD across + dilutions) and the detection threshold (midway between the mean + readings of the two most dilute samples). + plate_count_file : str + CSV/TSV/Excel of plate counts of cultures whose OD600 was read, one + row per plate: ``od600``, ``colonies``, ``dilution`` (total dilution + factor before plating), ``plated_volume_mL``, ``num_dilutions`` and + ``plating_steps`` (for the pipetting error). + out_prefix : str, optional + Writes ``{out_prefix}.yaml`` (the calibration, read by the rest of + the pipeline), ``{out_prefix}_replicates.csv`` (reading noise by + dilution), ``{out_prefix}_plate_counts.csv`` (CFU/mL, its SD, the + fitted curve and the standardized residual) and ``{out_prefix}.pdf``. + degree : int, optional + Degree of the polynomial of CFU/mL in OD600 (default 2). + pipette_rel_error : float, optional + Relative error of one pipetting step (default 0.02). + detection_threshold : float, optional + Override the detection threshold estimated from the dilution series. + """ + replicate_df = read_dataframe(replicate_file) + plate_df = read_dataframe(plate_count_file) + + calibration, noise_table, plate_table = od600_cal.calibrate( + replicate_df, plate_df, degree=degree, + pipette_rel_error=pipette_rel_error, threshold=detection_threshold) + + out_dir = os.path.dirname(os.path.abspath(out_prefix)) + os.makedirs(out_dir, exist_ok=True) + + yaml_file = f"{out_prefix}.yaml" + od600_cal.write_calibration( + calibration, yaml_file, + source={"replicate_file": os.path.basename(replicate_file), + "plate_count_file": os.path.basename(plate_count_file)}) + noise_table.to_csv(f"{out_prefix}_replicates.csv", index=False) + plate_table.to_csv(f"{out_prefix}_plate_counts.csv", index=False) + _plot(calibration, noise_table, plate_table, f"{out_prefix}.pdf") + + coef = ", ".join(f"{c:.4g}" for c in calibration["coefficients"]) + lo, hi = calibration["calibrated_od600_range"] + print(f"cfu/mL = polynomial in OD600 with coefficients [{coef}] " + f"(reduced chi2 {calibration['chi2_reduced']:.3g}, " + f"{calibration['num_plate_counts']} plates)") + print(f"reading noise {100 * calibration['reading_rel_sd']:.2g}% of the " + f"reading; detection threshold {calibration['detection_threshold']:.4g}; " + f"calibrated OD600 range {lo:.3g}-{hi:.3g}") + print(f"Wrote {yaml_file}") + return calibration + + +def main(): + generalized_main(calibrate_od600, + manual_arg_types={"detection_threshold": float}) + + +if __name__ == "__main__": + main() diff --git a/src/tfscreen/simulate/od600.py b/src/tfscreen/simulate/od600.py index 25e55b2d..56240381 100644 --- a/src/tfscreen/simulate/od600.py +++ b/src/tfscreen/simulate/od600.py @@ -2,108 +2,31 @@ Simulated OD600 readings of each tube's total population. The experiment estimates each tube's total cells from one OD600 reading -through a lab-specific quadratic calibration, ``cfu/mL = A + B OD + C OD^2`` -(see ``docs/source/process-raw.rst``, "One tube per time-point"). The -simulator knows each tube's true total, so it runs the calibration backwards -to get the true OD600, adds the reader's noise, and applies the reader's -detection threshold, then (optionally) runs the calibration forwards again, -as the lab does, to get the estimated total the pipeline would ingest. - -The calibration constants are read in the format the lab's calibration -notebook writes (``A_CFU``, ``B_CFU``, ``C_CFU``, ``OD600_PCT_STD``, -``OD600_MEAS_THRESHOLD`` and, optionally, ``P_JCJT_CFU``, ``Q_JCJT_CFU``, -``R_JCJT_CFU`` for the calibration curve's own error and ``OD600_MAX`` for -the top of the calibrated range). Roadmap step 3 replaces this with a -generic calibration file (planning/analysis-roadmap.md). +through a lab-specific calibration (see ``docs/source/process-raw.rst``, +"One tube per time-point", and ``tfs-calibrate-od600``). The simulator knows +each tube's true total, so it runs the calibration backwards to get the true +OD600, adds the reader's noise and applies its detection threshold, then +(optionally) runs the calibration forwards again, as the lab does, to get +the estimated total the pipeline would ingest. + +The calibration file is the one ``tfs-calibrate-od600`` writes; reading, +inverting and applying it live in ``tfscreen.process_raw.od600``. """ import numpy as np -from tfscreen.util import read_yaml - -_REQUIRED = ("A_CFU", "B_CFU", "C_CFU", "OD600_PCT_STD", "OD600_MEAS_THRESHOLD") -_OPTIONAL = ("P_JCJT_CFU", "Q_JCJT_CFU", "R_JCJT_CFU", "OD600_MAX") - - -def read_od600_calibration(calibration): - """ - Read OD600-to-CFU calibration constants. - - Parameters - ---------- - calibration : str or dict - Path to a calibration YAML, or the dict itself. - - Returns - ------- - dict - The constants as floats; optional ones missing from the input are - None. - - Raises - ------ - ValueError - If a required constant is missing, or the calibration curve is not - increasing over the calibrated range. - """ - cal = read_yaml(calibration) - missing = [k for k in _REQUIRED if k not in cal] - if missing: - raise ValueError(f"OD600 calibration is missing {missing}.") - out = {k: float(cal[k]) for k in _REQUIRED} - for k in _OPTIONAL: - out[k] = None if cal.get(k) is None else float(cal[k]) +from tfscreen.process_raw.od600 import ( + as_calibration, + cfu_per_mL_to_od600, + od600_to_cfu_per_mL, + read_calibration, +) - top = out["OD600_MAX"] if out["OD600_MAX"] is not None else 1.0 - for od in (out["OD600_MEAS_THRESHOLD"], top): - if out["B_CFU"] + 2 * out["C_CFU"] * od <= 0: - raise ValueError( - f"OD600 calibration curve is not increasing at OD600 {od}; " - f"it cannot be inverted.") - return out +# The simulator's names for the shared functions. +read_od600_calibration = read_calibration - -def od600_to_cfu_per_mL(od600, cal): - """ - Forward calibration: estimated cfu/mL and its SD from OD600. - - Readings below the detection threshold are evaluated at the threshold - (the lab's convention), so they give an upper bound. The SD combines - the reading noise through the curve's slope and, when the calibration - supplies it, the curve's own error. - - Returns - ------- - cfu_per_mL, cfu_per_mL_std, detectable : numpy.ndarray - """ - od = np.atleast_1d(np.asarray(od600, dtype=float)).copy() - detectable = od >= cal["OD600_MEAS_THRESHOLD"] - od[~detectable] = cal["OD600_MEAS_THRESHOLD"] - - cfu = cal["A_CFU"] + cal["B_CFU"] * od + cal["C_CFU"] * od ** 2 - slope = cal["B_CFU"] + 2 * cal["C_CFU"] * od - var = (slope * cal["OD600_PCT_STD"] * od) ** 2 - if cal["P_JCJT_CFU"] is not None: - curve_sd = (cal["P_JCJT_CFU"] + cal["Q_JCJT_CFU"] * od - + cal["R_JCJT_CFU"] * od ** 2) - var = var + curve_sd ** 2 - return cfu, np.sqrt(var), detectable - - -def cfu_per_mL_to_od600(cfu_per_mL, cal): - """ - Inverse calibration: the OD600 whose calibrated value is ``cfu_per_mL`` - (the root on the increasing branch of the quadratic). Totals below the - curve's value at OD 0 map to OD 0. - """ - y = np.atleast_1d(np.asarray(cfu_per_mL, dtype=float)) - a, b, c = cal["A_CFU"], cal["B_CFU"], cal["C_CFU"] - if c == 0: - od = (y - a) / b - else: - disc = np.maximum(b ** 2 - 4 * c * (a - y), 0.0) - od = (-b + np.sqrt(disc)) / (2 * c) - return np.maximum(od, 0.0) +__all__ = ["read_od600_calibration", "od600_to_cfu_per_mL", + "cfu_per_mL_to_od600", "simulate_od600"] def simulate_od600(total_cfu, volume_mL, cal, rng): @@ -117,24 +40,24 @@ def simulate_od600(total_cfu, volume_mL, cal, rng): volume_mL : float Tube volume (the calibration is per mL). cal : dict - Constants from :func:`read_od600_calibration`. + Calibration from :func:`read_od600_calibration`. rng : numpy.random.Generator Returns ------- dict of numpy.ndarray ``od600`` (the reading, with multiplicative noise of SD - ``OD600_PCT_STD``), ``od600_detectable`` (reading at or above the + ``reading_rel_sd``), ``od600_detectable`` (reading at or above the detection threshold) and ``od600_in_range`` (reading at or below - ``OD600_MAX``; always True when the calibration gives no maximum). + the top of the calibrated range). """ - true_od = cfu_per_mL_to_od600(np.asarray(total_cfu, dtype=float) / volume_mL, cal) - od = true_od * (1.0 + cal["OD600_PCT_STD"] * rng.standard_normal(true_od.shape)) + cal = as_calibration(cal) + true_od = cfu_per_mL_to_od600(np.asarray(total_cfu, dtype=float) / volume_mL, + cal) + od = true_od * (1.0 + cal["reading_rel_sd"] + * rng.standard_normal(true_od.shape)) od = np.maximum(od, 0.0) - detectable = od >= cal["OD600_MEAS_THRESHOLD"] - if cal["OD600_MAX"] is None: - in_range = np.ones(od.shape, dtype=bool) - else: - in_range = od <= cal["OD600_MAX"] + detectable = od >= cal["detection_threshold"] + in_range = od <= cal["calibrated_od600_range"][1] return {"od600": od, "od600_detectable": detectable, "od600_in_range": in_range} diff --git a/tests/tfscreen/process_raw/test_calibrate_od600_cli.py b/tests/tfscreen/process_raw/test_calibrate_od600_cli.py new file mode 100644 index 00000000..ba978fe4 --- /dev/null +++ b/tests/tfscreen/process_raw/test_calibrate_od600_cli.py @@ -0,0 +1,38 @@ +"""Tests for tfs-calibrate-od600.""" +import os + +import pytest + +from tfscreen.process_raw import od600 as O +from tfscreen.process_raw.scripts.calibrate_od600_cli import ( + calibrate_od600, + main, +) + +EXAMPLE = os.path.join(os.path.dirname(__file__), "..", "..", "..", + "examples", "od600") + + +def test_writes_all_outputs(tmp_path): + out = str(tmp_path / "sub" / "cal") + calibrate_od600(os.path.join(EXAMPLE, "replicates.csv"), + os.path.join(EXAMPLE, "plate_counts.csv"), + out_prefix=out) + for suffix in (".yaml", "_replicates.csv", "_plate_counts.csv", ".pdf"): + assert os.path.exists(out + suffix) + cal = O.read_calibration(out + ".yaml") + assert cal["source"]["plate_count_file"] == "plate_counts.csv" + + +def test_main_parses_flags(tmp_path): + out = str(tmp_path / "cal") + main_args = [os.path.join(EXAMPLE, "replicates.csv"), + os.path.join(EXAMPLE, "plate_counts.csv"), + "--out_prefix", out, "--degree", "1", + "--detection_threshold", "0.1"] + import sys + from unittest.mock import patch + with patch.object(sys, "argv", ["tfs-calibrate-od600"] + main_args): + main() + cal = O.read_calibration(out + ".yaml") + assert cal["degree"] == 1 and cal["detection_threshold"] == 0.1 diff --git a/tests/tfscreen/process_raw/test_od600_calibration.py b/tests/tfscreen/process_raw/test_od600_calibration.py new file mode 100644 index 00000000..7b6b82fe --- /dev/null +++ b/tests/tfscreen/process_raw/test_od600_calibration.py @@ -0,0 +1,207 @@ +"""Tests for tfscreen.process_raw.od600 (OD600-to-CFU calibration).""" +import os + +import numpy as np +import pandas as pd +import pytest +import yaml +from scipy.optimize import curve_fit + +from tfscreen.process_raw import od600 as O + +EXAMPLE = os.path.join(os.path.dirname(__file__), "..", "..", "..", + "examples", "od600") + + +def _plates(od, colonies, volume=0.1, dilution=1e5): + n = len(od) + return pd.DataFrame({"od600": od, "colonies": colonies, + "dilution": dilution, "plated_volume_mL": volume, + "num_dilutions": 5, "plating_steps": 1}) + + +def _replicates(): + rows = [] + for d, m in [(1.0, 0.6), (1 / 3, 0.27), (1 / 9, 0.15), (1 / 27, 0.10), + (1 / 81, 0.092)]: + for k in (-1, 1): + rows.append({"dilution": d, "od600": m * (1 + 0.01 * k)}) + return pd.DataFrame(rows) + + +@pytest.fixture(scope="module") +def example(): + rep = pd.read_csv(os.path.join(EXAMPLE, "replicates.csv")) + plate = pd.read_csv(os.path.join(EXAMPLE, "plate_counts.csv")) + return O.calibrate(rep, plate) + + +# --------------------------------------------------------------------------- +# the two experiments +# --------------------------------------------------------------------------- + +def test_reading_noise_table(): + t = O.reading_noise(_replicates()) + assert list(t["dilution"]) == sorted(t["dilution"], reverse=True) + assert np.allclose(t["rel_sd"], 0.01) + assert (t["n"] == 2).all() + + +def test_detection_threshold_is_midway_between_two_most_dilute(): + t = O.reading_noise(_replicates()) + assert O.detection_threshold(t) == pytest.approx((0.10 + 0.092) / 2) + + +def test_reading_noise_needs_columns(): + with pytest.raises(ValueError, match="dilution"): + O.reading_noise(pd.DataFrame({"od600": [0.1, 0.2]})) + + +def test_plate_counts_divide_by_plated_volume(): + df = O.plate_counts_to_cfu(_plates([0.5], [400]), pipette_rel_error=0.02) + assert df["cfu_per_mL"].iloc[0] == pytest.approx(400 * 1e5 / 0.1) + rel = np.sqrt(1 / 400 + 6 * 0.02 ** 2) + assert df["cfu_per_mL_std"].iloc[0] == pytest.approx(4e8 * rel) + + +def test_plate_counts_refuse_empty_plates(): + with pytest.raises(ValueError, match="no colonies"): + O.plate_counts_to_cfu(_plates([0.5, 0.3], [400, 0])) + + +def test_fit_recovers_exact_polynomial(): + od = np.linspace(0.1, 0.6, 8) + true = np.array([1e6, 8e8, 2e8]) + y = true[0] + true[1] * od + true[2] * od ** 2 + coef, cov, chi2 = O.fit_polynomial(od, y, 0.05 * y) + assert np.allclose(coef, true, rtol=1e-8) + + +def test_fit_covariance_matches_curve_fit(): + rng = np.random.default_rng(1) + od = np.linspace(0.1, 0.6, 12) + y = 8e8 * od + 2e8 * od ** 2 + sd = 0.08 * y + y_obs = y + sd * rng.normal(size=y.size) + coef, cov, chi2 = O.fit_polynomial(od, y_obs, sd) + p, pcov = curve_fit(lambda x, a, b, c: a + b * x + c * x ** 2, od, y_obs, + sigma=sd, absolute_sigma=False) + assert np.allclose(coef, p, rtol=1e-6) + assert np.allclose(cov, pcov, rtol=1e-5) + assert np.allclose(cov, cov.T) + + +def test_fit_needs_enough_points(): + with pytest.raises(ValueError, match="at least"): + O.fit_polynomial([0.1, 0.2, 0.3], [1, 2, 3], [1, 1, 1], degree=2) + + +# --------------------------------------------------------------------------- +# calibrate and the file +# --------------------------------------------------------------------------- + +def test_calibrate_example(example): + cal, noise, plates = example + assert cal["kind"] == O.CALIBRATION_KIND + assert cal["degree"] == 2 and len(cal["coefficients"]) == 3 + # example data: cfu/mL = 8e8 OD + 2e8 OD^2 + od = np.array([0.2, 0.4, 0.6]) + cfu, _, _ = O.od600_to_cfu_per_mL(od, cal) + assert np.allclose(cfu, 8e8 * od + 2e8 * od ** 2, rtol=0.1) + assert 0.01 < cal["reading_rel_sd"] < 0.03 + assert 0.08 < cal["detection_threshold"] < 0.1 + assert {"cfu_per_mL_fit", "z"} <= set(plates.columns) + assert cal["num_plate_counts"] == len(plates) + + +def test_threshold_override(): + rep = pd.read_csv(os.path.join(EXAMPLE, "replicates.csv")) + plate = pd.read_csv(os.path.join(EXAMPLE, "plate_counts.csv")) + cal, _, _ = O.calibrate(rep, plate, threshold=0.11) + assert cal["detection_threshold"] == 0.11 + + +def test_write_read_round_trip(example, tmp_path): + cal = example[0] + path = tmp_path / "cal.yaml" + O.write_calibration(cal, path, source={"x": "y"}) + back = O.read_calibration(str(path)) + assert np.allclose(back["coefficients"], cal["coefficients"]) + assert np.allclose(back["covariance"], cal["covariance"]) + assert back["source"] == {"x": "y"} + assert open(path).read().startswith("# OD600-to-CFU calibration") + + +def test_example_file_is_current(example): + """examples/od600/od600_calibration.yaml is what the CLI makes from the + example data.""" + shipped = O.read_calibration(os.path.join(EXAMPLE, "od600_calibration.yaml")) + assert np.allclose(shipped["coefficients"], example[0]["coefficients"]) + + +def test_legacy_format_refused(): + legacy = {"A_CFU": 0.0, "B_CFU": 8e7, "C_CFU": 2e7, "OD600_PCT_STD": 0.02, + "OD600_MEAS_THRESHOLD": 0.08} + with pytest.raises(ValueError, match="tfs-calibrate-od600"): + O.read_calibration(legacy) + + +def test_decreasing_curve_refused(example): + bad = dict(example[0], coefficients=[0.0, 1e8, -1e9]) + with pytest.raises(ValueError, match="not increasing"): + O.check_calibration(bad) + + +def test_shape_mismatch_refused(example): + bad = dict(example[0], covariance=[[1.0]]) + with pytest.raises(ValueError, match="covariance"): + O.check_calibration(bad) + + +# --------------------------------------------------------------------------- +# applying it +# --------------------------------------------------------------------------- + +def test_error_components(example): + cal = O.read_calibration(example[0]) + od = np.array([0.15, 0.4]) + curve, reading = O.cfu_per_mL_error_components(od, cal) + for i, x in enumerate(od): + J = np.array([1.0, x, x ** 2]) + assert curve[i] == pytest.approx(np.sqrt(J @ cal["covariance"] @ J)) + c = cal["coefficients"] + slope = c[1] + 2 * c[2] * x + assert reading[i] == pytest.approx(slope * cal["reading_rel_sd"] * x) + cfu, sd, _ = O.od600_to_cfu_per_mL(od, cal) + assert np.allclose(sd, np.hypot(curve, reading)) + + +def test_below_threshold_is_an_upper_bound(example): + cal = example[0] + cfu, _, detectable = O.od600_to_cfu_per_mL([0.01], cal) + at, _, _ = O.od600_to_cfu_per_mL([cal["detection_threshold"]], cal) + assert not detectable[0] + assert cfu[0] == pytest.approx(at[0]) + + +def test_inverse_round_trip(example): + cal = example[0] + od = np.array([0.1, 0.3, 0.59]) + cfu, _, _ = O.od600_to_cfu_per_mL(od, cal) + assert np.allclose(O.cfu_per_mL_to_od600(cfu, cal), od, rtol=1e-9) + # totals below the curve at OD 0 map to 0 + assert O.cfu_per_mL_to_od600([cal["coefficients"][0] - 1e6], cal)[0] == 0.0 + + +def test_in_calibrated_range(example): + lo, hi = example[0]["calibrated_od600_range"] + got = O.in_calibrated_range([lo - 0.01, (lo + hi) / 2, hi + 0.01], example[0]) + assert list(got) == [False, True, False] + + +def test_accepts_path_or_dict(example, tmp_path): + path = tmp_path / "c.yaml" + O.write_calibration(example[0], path) + a = O.od600_to_cfu_per_mL([0.3], str(path))[0] + b = O.od600_to_cfu_per_mL([0.3], example[0])[0] + assert a == pytest.approx(b) diff --git a/tests/tfscreen/simulate/test_od600.py b/tests/tfscreen/simulate/test_od600.py index 21ef093e..7e3688aa 100644 --- a/tests/tfscreen/simulate/test_od600.py +++ b/tests/tfscreen/simulate/test_od600.py @@ -9,8 +9,11 @@ simulate_od600, ) -CAL = {"A_CFU": 1e6, "B_CFU": 8e7, "C_CFU": 2e7, "OD600_PCT_STD": 0.02, - "OD600_MEAS_THRESHOLD": 0.08, "OD600_MAX": 0.8} +CAL = {"kind": "od600_to_cfu_per_mL", "degree": 2, + "coefficients": [1e6, 8e8, 2e8], + "covariance": [[1e10, 0, 0], [0, 1e12, 0], [0, 0, 1e12]], + "reading_rel_sd": 0.02, "detection_threshold": 0.08, + "calibrated_od600_range": [0.1, 0.8]} @pytest.fixture @@ -18,24 +21,6 @@ def cal(): return read_od600_calibration(dict(CAL)) -def test_read_fills_optional(cal): - assert cal["P_JCJT_CFU"] is None - assert cal["OD600_MAX"] == 0.8 - - -def test_read_needs_required(): - bad = dict(CAL) - del bad["B_CFU"] - with pytest.raises(ValueError, match="B_CFU"): - read_od600_calibration(bad) - - -def test_read_refuses_decreasing_curve(): - bad = dict(CAL, C_CFU=-1e9) - with pytest.raises(ValueError, match="not increasing"): - read_od600_calibration(bad) - - def test_round_trip(cal): od = np.array([0.1, 0.3, 0.7]) cfu, _, detectable = od600_to_cfu_per_mL(od, cal) @@ -43,28 +28,6 @@ def test_round_trip(cal): assert np.allclose(cfu_per_mL_to_od600(cfu, cal), od) -def test_below_threshold_is_an_upper_bound(cal): - cfu, _, detectable = od600_to_cfu_per_mL(np.array([0.01]), cal) - at_threshold, _, _ = od600_to_cfu_per_mL(np.array([0.08]), cal) - assert not detectable[0] - assert cfu[0] == pytest.approx(at_threshold[0]) - - -def test_forward_sd_is_reading_noise_through_slope(cal): - od = 0.4 - _, sd, _ = od600_to_cfu_per_mL(np.array([od]), cal) - slope = CAL["B_CFU"] + 2 * CAL["C_CFU"] * od - assert sd[0] == pytest.approx(slope * 0.02 * od) - - -def test_forward_sd_includes_curve_error(): - c = read_od600_calibration(dict(CAL, P_JCJT_CFU=1e5, Q_JCJT_CFU=0.0, - R_JCJT_CFU=0.0)) - _, sd, _ = od600_to_cfu_per_mL(np.array([0.4]), c) - slope = CAL["B_CFU"] + 2 * CAL["C_CFU"] * 0.4 - assert sd[0] == pytest.approx(np.hypot(slope * 0.02 * 0.4, 1e5)) - - def test_simulate_od600(cal): rng = np.random.default_rng(0) volume = 5.0 @@ -78,13 +41,15 @@ def test_simulate_od600(cal): assert r["od600_in_range"].all() -def test_simulate_flags(cal): - rng = np.random.default_rng(0) - # Evaluate the curve directly: the forward calibration clamps readings - # below the threshold to the threshold. - def curve(od): - return CAL["A_CFU"] + CAL["B_CFU"] * od + CAL["C_CFU"] * od ** 2 - low, high = curve(0.02), curve(1.5) - r = simulate_od600(np.array([low, high]), 1.0, cal, rng) - assert list(r["od600_detectable"]) == [False, True] - assert list(r["od600_in_range"]) == [True, False] +def test_simulate_flags_blind_and_saturated_tubes(cal): + rng = np.random.default_rng(1) + low, _, _ = od600_to_cfu_per_mL(np.array([0.02]), dict(cal, detection_threshold=0.0)) + high, _, _ = od600_to_cfu_per_mL(np.array([1.2]), cal) + r = simulate_od600(np.array([low[0], high[0]]) * 5.0, 5.0, cal, rng) + assert not r["od600_detectable"][0] + assert not r["od600_in_range"][1] + + +def test_accepts_raw_dict(): + r = simulate_od600(np.array([1e9]), 5.0, dict(CAL), np.random.default_rng(0)) + assert r["od600"].shape == (1,) From c57d9ee5a7008ee7d64fc4b29361cf292213d2b0 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sun, 27 Sep 2026 16:48:03 -0700 Subject: [PATCH 061/208] Start SVI at the pre-MAP point with narrow guide scales The component guide started with every scale capped at 0.1 in each site's own units, plus a multiplicative 0.1 jitter on every starting value. On growth rates (per minute) and ln_cfu levels that is enormous: SVI began ~1000x above the pre-MAP's loss and re-descended for tens of thousands of epochs into other optima (a sign-flipped mirror mode, a halved growth slope, the library shifted against wt; relative-fit grid). - fit_model_cli: DEFAULT_GUIDE_INIT_SCALE = 1e-4, used as the component guide's scale cap and as a fresh autoguide's init_scale. - init_param_jitter defaults to 0 in tfs-fit-model and run_optimization. - Test that a count model's guide starts near its point at the default and far from it at 0.1; test the autoguide default. - Record the relative-fit grid's diagnosis: the start was one cause; a continued MAP stays on truth while mean-field SVI still drifts along the m*X ridge, so the relative arm needs a richer guide or Laplace. - Mark the count-likelihood study's absolute coverage for a rerun. Full suite: 5227 passed, 15 skipped. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 17 ++++ CLAUDE.md | 2 +- docs/source/analysis.rst | 3 +- planning/studies/count-likelihood/README.md | 6 ++ planning/studies/relative-fit/.gitignore | 2 + planning/studies/relative-fit/README.md | 82 ++++++++++++++++++- .../tfmodel/inference/run_inference.py | 7 +- src/tfscreen/tfmodel/scripts/fit_model_cli.py | 38 +++++---- .../tfmodel/inference/test_initialization.py | 50 +++++++++++ .../tfmodel/scripts/test_fit_model_cli.py | 15 +++- 10 files changed, 202 insertions(+), 20 deletions(-) create mode 100644 planning/studies/relative-fit/.gitignore diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a872065..ca9dde1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,23 @@ fall into two kinds: ## [Unreleased] +### Fixed + +- **SVI no longer throws away the pre-MAP solution.** The component guide + started with every scale at 0.1 and a multiplicative 0.1 jitter on every + starting value. The scale is in each parameter's own units, so for growth + rates (per minute) and ln_cfu levels it was enormous. SVI started about + 1000x above the pre-MAP's loss, count and `lncfu` fits alike. It then + re-descended for tens of thousands of epochs into other optima: a + sign-flipped mirror mode, a halved slope `m`, or the whole library + shifted against wt. `tfs-fit-model --guide_init_scale` now defaults to + 1e-4 (`DEFAULT_GUIDE_INIT_SCALE`). It also sets the autoguides' + `init_scale` for a fresh fit, instead of numpyro's 0.1. SVI widens the + scales itself. `--init_param_jitter` and + `RunInference.run_optimization(init_param_jitter=...)` now default to 0. + SVI calibration results from before this fix (the count-likelihood and + relative-fit grids) need a rerun. + ### Added - **`tfs-calibrate-od600` (roadmap step 3).** Fits an OD600-to-CFU/mL diff --git a/CLAUDE.md b/CLAUDE.md index becd93aa..e1365326 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -180,7 +180,7 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi - **Step-size cuts** swap `svi.optim` for a new optimizer of the same kind (clipped or not, read off the current `svi.optim`) at the smaller constant step (the optimizer state is step-size independent) and re-trace the scan (a fresh closure, so no stale compiled step size). `setup_svi` records `_step_size`/`_adam_clip_norm` (the latter written to checkpoints); a step-size *schedule* is still accepted but refuses cuts. The old `optax.exponential_decay` over `max_num_epochs` is gone (it collapsed the pre-MAP's step size within its 1000 epochs and tied resumes to `max_num_epochs`). - **Records**: `{out_prefix}_convergence.csv` (one row per window: loss (median), drop ± SE, t, `loss_mean`/`loss_skew`/`loss_skewed`, worst param and its excess/drift, step size, plateau count, decision; a resume rewrites an older file under the current columns, `_migrate_convergence_columns`); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). -**Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (default 0.1 for the component guide, `DEFAULT_COMPONENT_INIT_SCALE`). `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. +**Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (`fit_model_cli.DEFAULT_GUIDE_INIT_SCALE`, 1e-4; also the autoguides' `init_scale` for a fresh fit). The scale is one number in every site's unconstrained units, so it must be small: at the old 0.1 (numpyro's autoguide default) an SD of 0.1 on a growth rate per minute is 17 ln units over a selection, SVI started ~1000x above the pre-MAP's loss and re-descended into other optima (mirror mode, halved m, the library shifted against wt; relative-fit grid, 2026-09-27). SVI widens the scales itself (about e-fold per 1000 steps at step size 1e-3). `init_param_jitter` defaults to 0 for the same reason (it is multiplicative, so 0.1 moves an ln_cfu0 location near 15 by ~1.5 ln units). `test_default_guide_start_stays_near_its_point` checks the start on a count model; a fit's first logged SVI loss should sit near its pre-MAP loss. `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. **MAP values: constrained or not.** AutoDelta's `svi.get_params(state)` (what `run_optimization` returns and `write_params` saves) is *constrained*; `svi.optim.get_params(state.optim_state)` (what `tfs-sample-posterior`, `tfs-extract-params` and `checkpoint_io` read from checkpoints) is *unconstrained*. `compute_hessian_sigmas` takes the former, `get_laplace_posteriors`/`get_map_posteriors`/`_map_params_to_constrained` the latter. Mixing them up silently evaluates positive sites at `exp(value)` (the pre-fit did until 2026-09-27). diff --git a/docs/source/analysis.rst b/docs/source/analysis.rst index 8c7d6e18..4f3ad0e6 100644 --- a/docs/source/analysis.rst +++ b/docs/source/analysis.rst @@ -99,7 +99,8 @@ via ``--analysis_method``: * **svi** (default) — Stochastic Variational Inference. First runs a MAP warm-up (at most ``--pre_map_num_epoch`` epochs) and starts the variational fit at its solution, with guide scales capped at ``--guide_init_scale`` - (default 0.1). Produces a full approximate posterior; posterior samples are + (default 1e-4, in each parameter's own units; SVI widens them itself, and a + larger start throws the MAP solution away). Produces a full approximate posterior; posterior samples are drawn with ``tfs-sample-posterior``. * **nuts** — No-U-Turn Sampler (exact MCMC). Slowest; most accurate. diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md index c54050c9..2c7c9114 100644 --- a/planning/studies/count-likelihood/README.md +++ b/planning/studies/count-likelihood/README.md @@ -235,3 +235,9 @@ the comparison.** All 12 `lncfu` runs and one `counts` run component guide's initial location scales (0.1) cost ~(0.1 mu)^2 / var per observation. It falls as the scales shrink; a smaller `--guide_init_scale` may suit counts fits if this slows convergence. + **Update (2026-09-27):** it did more than slow convergence. SVI lost the + pre-MAP point and settled into other optima (`../relative-fit/`, + Results), and every arm here, `lncfu` included, started 2e6-5e8 above + its pre-MAP. The default is now 1e-4 with no jitter. The comparisons + between arms ran under the same handicap. The absolute coverage numbers + above, `growth_k` included, need a rerun. diff --git a/planning/studies/relative-fit/.gitignore b/planning/studies/relative-fit/.gitignore new file mode 100644 index 00000000..007f196e --- /dev/null +++ b/planning/studies/relative-fit/.gitignore @@ -0,0 +1,2 @@ +calib +relative_fit diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index 8ce1c183..af02d45d 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -102,4 +102,84 @@ not results. ## Results -Pending. +**Run 1 (2026-09-27): inconclusive; the SVI start is broken.** All 12 runs +finished. Three hit the 100,000-epoch cap (0002, 0003, 0004). run_0011's +summary came down incomplete, so we regenerated it locally from the run's +CSVs. +Pooled with `tfs-summarize-calibration` into `calib/` (not committed). + +The final fits looked bad in both arms: + +| | theta/X test coverage (95%) | r | notes | +|---|---|---|---| +| joint, Poisson | 0.37 | 0.29 | run 0005 in the mirror mode (m and theta sign-flipped); 0003 capped mid-descent | +| joint, realistic | 0.59 | 0.97 | | +| relative, Poisson | 0.08 | 0.99 | X shifted 0.2-0.3 below truth, library-wide | +| relative, realistic | 0.33 | 0.96 | run 0010 fine (0.58), the others shifted | + +The relative fit's growth rates matched the truth within each tube to 1e-4. +wt did not: the fit moved the whole library against wt, missing wt's +ln_cfu by 0.1-0.27 per tube, while the joint fit held it within 0.03. + +**The pre-MAP was right in every run.** The pre-MAP recovered each +condition's m to within 0.0002 of the X-scale truth (relative) and 0.001 of +the theta-scale truth (joint), and put the relative fit's X on truth (slope +1.00, intercept -0.02 to -0.08). SVI then lost it. It halved m in 0003, +flipped it in 0005, and shifted X in the relative runs. + +**Cause: the pre-MAP to component-guide hand-off.** +- **Starting loss.** SVI started at a loss of about 4e8 against the + pre-MAP's 2.5e5, then spent about 40,000 epochs descending from there + into whatever optimum it reached. +- **The scale cap is in each site's own units.** `component_guide_start` + caps every guide scale at `guide_init_scale` (0.1). Evaluated at run + 0002's hand-off (scratch script, one site at 0.1 and the rest at 1e-5, + base loss 2.8e5), SD 0.1 added: + - 6e8 on `dk_geno_hyper_shift` + - 4e7 on `condition_growth_k` + - 1e7 on `condition_growth_m` + - 9e6 on `ln_cfu0_tube_offset` + - 2e6 on `dk_geno_hyper_loc` + + These are growth rates per minute or ln_cfu levels, where SD 0.1 is + enormous: 0.1/min over a 170-minute selection is 17 ln units. +- **The jitter makes it worse.** `init_param_jitter` (0.1) is + multiplicative, so it moves locations with large values (ln_cfu0 about + 10-18) by 1-2 ln units. At scale 0.001 it raised the starting loss from + 1.0e6 to 1.6e7. +- **Every earlier SVI grid has the same start.** The count-likelihood + v1/v2 runs, lncfu included, began at 2e6-5e8. Their between-arm + comparisons ran under the same handicap, but their absolute coverage + numbers are suspect. + +**Separately:** the joint arm's prefit wrote per-condition priors far from +truth under the count likelihood (kanR+kan `k_loc` -0.0006 and `m_loc` ++0.0007, against 0.0107 and -0.0099, at scales 0.002 and 0.001). The +pre-MAP overrode them here. This needs its own look before the prefit is +trusted with counts. + +**Fix (2026-09-27).** `DEFAULT_GUIDE_INIT_SCALE` is now 1e-4, applied to +the component guide and to fresh autoguides, and `init_param_jitter` +defaults to 0. At run 0002's hand-off the starting loss fell from 5.9e8 to +2.81e5, level with scales at 1e-5. + +**The start was not the only cause.** We checked run 0002 locally in two +continuations (scratch scripts, not committed): +- **SVI.** 8000 SVI steps from the fixed start held the loss near the + pre-MAP's but moved to the same shifted solution. The kanR+kan m went + from -0.0098 to -0.0087, and X to slope 1.12 and intercept -0.25. +- **MAP.** Continuing the pre-MAP (AutoDelta) for 18,000 more epochs + stayed on truth: flat loss, m -0.00973 against an X-scale truth of + -0.00973. + +The tube-offset spread was the same, about 0.08, in both. So the mean-field +ELBO, not the MAP optimum, prefers the shift. The likely mechanism: growth +alone constrains mostly the product m·(X_g - X_wt). The posterior is +therefore a curved ridge along m·X = constant. Only wt's absolute growth +change across IPTG sets the position along it, and that reaches the fit +only through the tube totals. A mean-field Gaussian cannot follow a curved +ridge, and it slides toward smaller |m|. The joint fit escapes because +binding observes theta for the anchors. + +Next: test a guide that can follow the ridge (`auto_low_rank_multivariate_normal`) and +MAP + Laplace on the relative arm, then rerun the grid. diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index b81972b8..62b46764 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -373,7 +373,7 @@ def run_optimization(self, step_size_cut=0.1, checkpoint_interval=10, max_num_epochs=10000000, - init_param_jitter=0.1, + init_param_jitter=0.0, epoch_checkpoint_interval=1000): """ Run the optimization loop until convergence or ``max_num_epochs``. @@ -433,7 +433,10 @@ def run_optimization(self, max_num_epochs : int, optional Maximum number of optimization epochs to run. init_param_jitter : float, optional - amount of jitter to add to init_params. To turn off, set to 0. + Multiplicative log-normal jitter on ``init_params`` (default 0, + none). It scales with each value, so it moves large locations + (ln_cfu0 near 15) by whole ln units; keep it off when starting + from a MAP point. epoch_checkpoint_interval : int or None, optional Frequency (in epochs) to write numbered epoch checkpoints to a ``checkpoints/`` subdirectory alongside ``out_prefix``. Files are diff --git a/src/tfscreen/tfmodel/scripts/fit_model_cli.py b/src/tfscreen/tfmodel/scripts/fit_model_cli.py index 6e083f0e..706fd050 100644 --- a/src/tfscreen/tfmodel/scripts/fit_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/fit_model_cli.py @@ -11,10 +11,15 @@ from tfscreen.tfmodel.configuration_io import read_configuration -# Upper bound on the component guide's starting scales (the numpyro autoguides' -# own default init_scale). Starting at prior width makes early SVI escape the -# guide variance by inflating the noise terms. -DEFAULT_COMPONENT_INIT_SCALE = 0.1 +# Starting scale of the variational guide, in each site's unconstrained units: +# an upper bound on every component-guide scale, and the autoguides' +# ``init_scale`` for a fresh fit. It has to be small because it is one number +# for every site: 0.1 on a growth rate (per minute) is 17 ln units over a +# selection, and at 0.1 SVI started ~1000x above the pre-MAP's loss and +# re-descended into other optima (relative-fit grid, 2026-09-27). SVI widens +# the scales itself; the entropy term raises each about e-fold per 1000 Adam +# steps at step size 1e-3. +DEFAULT_GUIDE_INIT_SCALE = 1e-4 def _optimization_kwargs(convergence_window_steps=2000, patience=3, @@ -308,7 +313,7 @@ def fit_model(config_file, max_num_epochs=100000, forward_batch_size=512, pre_map_num_epoch=10000, - init_param_jitter=0.1, + init_param_jitter=0.0, nuts_num_warmup=500, nuts_num_samples=500, nuts_num_chains=1, @@ -357,10 +362,12 @@ def fit_model(config_file, Covariance rank for 'auto_low_rank_multivariate_normal' (numpyro's default when omitted). guide_init_scale : float, optional - Initial scale of the variational distribution. For 'component' it - caps every guide scale at the start (default 0.1); for an autoguide - it is numpyro's ``init_scale`` (numpyro's default when omitted). Not - accepted by 'delta'. + Initial scale of the variational distribution, in each site's + unconstrained units (default 1e-4, ``DEFAULT_GUIDE_INIT_SCALE``). + For 'component' it caps every guide scale at the start; for an + autoguide it is numpyro's ``init_scale`` for a fresh fit (a resumed + fit keeps its checkpoint's). SVI widens the scales itself; a large + start throws the pre-MAP point away. Not accepted by 'delta'. out_prefix : str, optional Prefix for all output files: checkpoints, parameter files, and the posterior HDF5 (default 'tfs_fit_model'). Files are named @@ -408,8 +415,10 @@ def fit_model(config_file, 10000; 0 skips it). The warm-up stops earlier when it converges. Only used if analysis_method is 'svi'. init_param_jitter : float, optional - Multiplicative jitter on the component guide's starting parameters, - to break symmetry (default 0.1). Not used by autoguides or MAP. + Multiplicative jitter on the component guide's starting parameters + (default 0, none). Not used by autoguides or MAP. Leave it off when + starting from a pre-MAP: it scales with each value, so 0.1 moves an + ln_cfu0 location near 15 by about 1.5 ln units. nuts_num_warmup : int, optional Number of NUTS warmup steps (default 500). Only used if analysis_method is 'nuts'. @@ -530,10 +539,9 @@ def fit_model(config_file, # The MAP point replaces the guesses where it has a value. start_values = {**start_values, **ri.site_values(map_params)} + init_scale = (DEFAULT_GUIDE_INIT_SCALE + if guide_init_scale is None else guide_init_scale) if guide_type == "component": - init_scale = (DEFAULT_COMPONENT_INIT_SCALE - if guide_init_scale is None - else guide_init_scale) init_params = ri.component_guide_start(start_values, guesses=guesses, init_scale=init_scale) @@ -541,6 +549,8 @@ def fit_model(config_file, else: init_params = None init_values = start_values + if guide_type != "delta": + guide_kwargs["init_scale"] = init_scale return _run_svi(ri, init_params=init_params, diff --git a/tests/tfscreen/tfmodel/inference/test_initialization.py b/tests/tfscreen/tfmodel/inference/test_initialization.py index b77f0be9..a30c3463 100644 --- a/tests/tfscreen/tfmodel/inference/test_initialization.py +++ b/tests/tfscreen/tfmodel/inference/test_initialization.py @@ -190,3 +190,53 @@ def test_default_model_guide_start_round_trip(): assert float(np.max(start["dk_geno_offset_scales"])) == pytest.approx(0.1) # param-keyed guesses (not sites) are kept assert "condition_growth_k_locs" in start + + +def test_default_guide_start_stays_near_its_point(): + """ + SVI starts where the pre-MAP ended, not far above it. + + The starting scale is one number in every site's own units, so a large one + is enormous on growth rates (per minute) and ln_cfu levels: at 0.1 the + relative-fit grid's SVI started ~1000x above its pre-MAP loss and + re-descended into other optima (2026-09-27). Checked on the count + likelihood, the most sensitive to it. + """ + from numpyro.handlers import seed, substitute, trace + from numpyro.infer.util import log_density + + from tfscreen.tfmodel.scripts.fit_model_cli import DEFAULT_GUIDE_INIT_SCALE + + orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, + binding_df=_BINDING_CSV, + batch_size=None, + growth_likelihood="counts", + sample_offset="level") + ri = RunInference(orchestrator, seed=0) + values = ri.site_values(orchestrator.init_params) + data = orchestrator.get_batch(orchestrator.data, + jnp.asarray(orchestrator.get_random_idx())) + + def neg_log_joint(params, key): + draw = trace(seed(substitute(orchestrator.jax_model_guide, params), + key)).get_trace(data=data, + priors=orchestrator.priors) + point = {k: s["value"] for k, s in draw.items() if s["type"] == "sample"} + lp, _ = log_density(orchestrator.jax_model, (), + dict(data=data, priors=orchestrator.priors), point) + return -float(lp) + + def start(scale): + return ri.component_guide_start(values, + guesses=orchestrator.init_params, + init_scale=scale) + + at_point = neg_log_joint(start(1e-12), 0) + + def excess(scale): + params = start(scale) + return np.median([neg_log_joint(params, k) for k in range(8)]) - at_point + + assert excess(DEFAULT_GUIDE_INIT_SCALE) < 0.01 * abs(at_point) + # the test can fail: the old default started far from the point + assert excess(0.1) > abs(at_point) diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py index 9b0138ba..f5e76776 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py @@ -270,6 +270,19 @@ def test_guide_options_resolved_and_forwarded(self, mocker): assert kwargs["guide_type"] == "auto_low_rank_multivariate_normal" assert kwargs["guide_kwargs"] == {"rank": 4, "init_scale": 0.05} + @pytest.mark.parametrize("guide_type,expected", [ + ("auto_normal", {"init_scale": 1e-4}), + ("delta", {}), + ]) + def test_fresh_autoguide_starts_narrow(self, mocker, guide_type, + expected): + """numpyro's default init_scale (0.1) would throw the start away.""" + _patch_common(mocker) + run_svi_mock = self._patch_run_svi(mocker) + fit_model(config_file="dummy.yaml", seed=1, pre_map_num_epoch=0, + guide_type=guide_type) + assert run_svi_mock.call_args.kwargs["guide_kwargs"] == expected + @staticmethod def _patch_ri(mocker, guesses=None): """RunInference whose site_values strips ``_auto_loc`` (like the @@ -314,7 +327,7 @@ def test_autoguide_without_premap_starts_from_guesses(self, mocker): assert set(kwargs["init_values"]) == {"dk_geno_offset"} assert kwargs["init_params"] is None - @pytest.mark.parametrize("scale,expected", [(None, 0.1), (0.02, 0.02)]) + @pytest.mark.parametrize("scale,expected", [(None, 1e-4), (0.02, 0.02)]) def test_component_guide_starts_from_premap(self, mocker, scale, expected): _patch_common(mocker) From e29c73955720c6e7a6281286a4724765b21964ac Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sun, 27 Sep 2026 17:31:18 -0700 Subject: [PATCH 062/208] Add low-rank and MAP+Laplace arms to the relative-fit grid Run 1 found the mean-field component guide biased on the relative fit: from the pre-MAP point SVI slides along the m*X ridge while a continued MAP stays on truth. Run 2 fits the relative arm three ways (component, auto_low_rank_multivariate_normal, MAP + Laplace) against the joint component baseline: 24 runs. The MAP arm gets --max_num_epochs 200000 and the jobs 6 h. On run 1's run 0002 a MAP stopped at a fixed step size had 9 negative Hessian eigenvalues (Laplace X intervals ~1e10 wide). Converged with step-size cuts (~128k epochs) it had one tiny one, and Laplace put X on truth (slope 1.00, RMSE 0.11) with 95% coverage 0.99. Co-Authored-By: Claude Opus 5.5 --- planning/studies/relative-fit/README.md | 37 +++++++++++++++++++------ planning/studies/relative-fit/grid.yaml | 20 +++++++++++-- planning/studies/relative-fit/run.srun | 19 +++++++++++-- 3 files changed, 62 insertions(+), 14 deletions(-) diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index af02d45d..e62d7c5e 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -21,14 +21,18 @@ in-library binding anchors), at lambda 0 and the wide dk spread, like `../count-likelihood/`. Lambda 0 keeps congression out of the comparison; both fits use `single`. -[`grid.yaml`](grid.yaml): 2 noise x 2 fits x 3 seeds = 12 runs, all on -the count likelihood (the default after `../count-likelihood/`; the -`lncfu` arm of the first design was dropped, 2026-09-27). +[`grid.yaml`](grid.yaml): 2 noise x 4 fit/inference arms x 3 seeds = 24 +runs, all on the count likelihood (the default after `../count-likelihood/`; +the `lncfu` arm of the first design was dropped, 2026-09-27). Run 1 had only +the two component-guide arms. Run 2 added the `low_rank` and `map` arms for +the relative fit after run 1 found the mean-field guide biased there +(Results). | axis | levels | |---|---| | simulated noise | `poisson`; `realistic` (founder sampling, demographic growth, shared transformation, 150,000 PCR templates with CV 0.5; designed for ~8x Poisson, fitted at ~29x in `../count-likelihood/` v3) | | fit | `joint` (`hill_geno`, binding at weight 1, prefit with `k_scale_ceiling` 0.005); `relative` (`hill_relative`, growth only, no prefit) | +| inference | `component` (mean-field component guide, the default); `low_rank` (`auto_low_rank_multivariate_normal`, numpyro's default rank); `map` (MAP, then a Laplace posterior in `tfs-sample-posterior`). The joint fit runs `component` only. | | seed | 1, 2, 3 | Both fits use `growth_likelihood: counts` with `sample_offset: level` and @@ -43,15 +47,15 @@ samples the posterior and summarizes. On the cluster, from a scratch directory, with this repository checked out: ```bash -tfs-setup-sim-grid grid.yaml --out_prefix relative_fit -for d in relative_fit/run_*/; do (cd "$d" && sbatch run.srun); done +tfs-setup-sim-grid grid.yaml --out_prefix relative_fit_v2 +for d in relative_fit_v2/run_*/; do (cd "$d" && sbatch run.srun); done ``` When the runs finish: ```bash -tfs-summarize-calibration relative_fit --out_prefix calib/relative_fit \ - --baseline fit=joint --facet_by founder_sampling +tfs-summarize-calibration relative_fit_v2 --out_prefix calib/relative_fit_v2 \ + --baseline fit=joint inference=component --facet_by founder_sampling ``` ## What to look at @@ -181,5 +185,20 @@ only through the tube totals. A mean-field Gaussian cannot follow a curved ridge, and it slides toward smaller |m|. The joint fit escapes because binding observes theta for the anchors. -Next: test a guide that can follow the ridge (`auto_low_rank_multivariate_normal`) and -MAP + Laplace on the relative arm, then rerun the grid. +**MAP + Laplace works on run 0002, once the MAP has converged.** We +continued the pre-MAP at a fixed step size of 1e-3. The result sat far +from a stationary point, with gradient norm 1.4e7. Its Hessian had 9 +negative eigenvalues, down to -767, all on per-genotype offsets. +Clamping them made the Laplace X intervals useless (median 95% width +2.6e10). Continuing with step-size cuts, the fit reached 1e-4 after about +128,000 epochs in total. The loss was still falling about 3 nats per +2000-epoch window. At that point: +- **Gradient and Hessian.** The gradient norm was 2.8e4 and one tiny + negative eigenvalue remained (-5e-5, on `ln_cfu0_tube_scale`). +- **m.** m stayed on truth (-0.00976). +- **Laplace X.** X was unbiased: RMSE 0.109, slope 1.00, intercept + -0.01. 95% coverage was 0.99 and 50% coverage 0.77, so the intervals + are conservative. The run-1 SVI covered 8%. + +Run 2 therefore adds a `map` arm with `--max_num_epochs 200000` and a +`low_rank` arm (`auto_low_rank_multivariate_normal`). diff --git a/planning/studies/relative-fit/grid.yaml b/planning/studies/relative-fit/grid.yaml index 0f1e5af2..a4b6d1f7 100644 --- a/planning/studies/relative-fit/grid.yaml +++ b/planning/studies/relative-fit/grid.yaml @@ -23,12 +23,22 @@ # 0.005), the anchored baseline of the congression study # relative hill_relative, growth only, no prefit # -# 2 noise x 2 fits x 3 seeds = 12 runs. +# Inference (run 2, 2026-09-27). Run 1 found the mean-field component guide +# biased on the relative fit: from the pre-MAP point SVI slides along the +# m*X ridge (smaller |m|, stretched X) while the MAP stays on truth. So the +# relative fit gets three arms: +# component mean-field component guide (the default; run 1's method) +# low_rank auto_low_rank_multivariate_normal (numpyro's default rank), +# which can represent the ridge's correlations +# map MAP, then a Laplace posterior from tfs-sample-posterior +# The joint fit keeps the component guide as the anchored baseline. +# +# 2 noise x 4 fit/inference arms x 3 seeds = 24 runs. # --------------------------------------------------------------------------- base_config: ../congression-calibration/simulate_config.yaml -run_name: "{{ 'realistic' if founder_sampling else 'poisson' }}__seed{{ seed }}__{{ fit }}" +run_name: "{{ 'realistic' if founder_sampling else 'poisson' }}__seed{{ seed }}__{{ fit }}__{{ inference }}" output_file: run.srun @@ -67,4 +77,10 @@ template: - name: fit variants: - fit: joint + inference: component + - fit: relative + inference: component + - fit: relative + inference: low_rank - fit: relative + inference: map diff --git a/planning/studies/relative-fit/run.srun b/planning/studies/relative-fit/run.srun index cb23848a..fe1462db 100644 --- a/planning/studies/relative-fit/run.srun +++ b/planning/studies/relative-fit/run.srun @@ -4,7 +4,7 @@ #SBATCH --output=run.out #SBATCH --error=run.err #SBATCH --partition=gpu -#SBATCH --time=00-02:00:00 +#SBATCH --time=00-06:00:00 #SBATCH --nodes=1 #SBATCH --cpus-per-task=8 #SBATCH --gpus=1 @@ -26,6 +26,9 @@ FIT="{{ fit }}" # extra growth noise, which it refuses) or lncfu (with normal_kt growth # noise). grid.yaml runs counts only. LIKELIHOOD="{{ likelihood | default('counts') }}" +# component (mean-field component guide), low_rank (low-rank multivariate +# normal autoguide) or map (MAP, then a Laplace posterior) +INFERENCE="{{ inference | default('component') }}" SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") @@ -81,8 +84,18 @@ if [[ "${FIT}" == "joint" ]]; then --k_scale_ceiling 0.005 fi -echo ">>> Fit model" -tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" +case "${INFERENCE}" in + component) INFERENCE_ARGS=() ;; + low_rank) INFERENCE_ARGS=(--guide_type auto_low_rank_multivariate_normal) ;; + # a converged MAP took ~130,000 epochs on run 1's run 0002; Laplace + # needs it converged (a MAP stopped at a fixed step size had 9 negative + # Hessian eigenvalues and gave 95% intervals ~1e10 wide) + map) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; + *) echo "unknown inference '${INFERENCE}'" >&2; exit 1 ;; +esac + +echo ">>> Fit model (${INFERENCE})" +tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" "${INFERENCE_ARGS[@]}" echo ">>> Sample posterior" tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl From 8e244cf00a40dc7feb97e0ac6a60494b154bab00 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sun, 27 Sep 2026 21:37:54 -0700 Subject: [PATCH 063/208] Fix NUTS start; record step 5 and the SVI-overconfidence pilot - run_nuts passed initialize_model's ParamInfo to init_to_value, so no site matched and every chain started at a uniform draw in [-2, 2]. NUTS now starts at the MAP warm-up's point (as SVI does), with prior medians as fallback, runs on the full batch through get_batch, prints worst split R-hat and least n_eff, and takes --nuts_dense_mass. - relative-fit: run 2 results; step 5 marked done; the low-rank guide documented for hill_relative (not the default until real-data studies). - svi-overconfidence study: small-library config, grid, comparison script, and the NUTS pilot (no usable reference: tree-depth ceiling, R-hat 3.5-3.7, from posterior curvature, not funnels or precision). - updated .gitignore to make sure the results of the relative-fit did not end up in the repo Full suite: 5232 passed, 15 skipped. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 9 + CLAUDE.md | 2 +- planning/analysis-roadmap.md | 8 +- planning/studies/relative-fit/.gitignore | 1 + planning/studies/relative-fit/README.md | 46 +++ planning/studies/svi-overconfidence/README.md | 138 +++++++++ .../svi-overconfidence/compare_to_nuts.py | 120 ++++++++ planning/studies/svi-overconfidence/grid.yaml | 63 ++++ .../svi-overconfidence/hill_params.csv | 5 + planning/studies/svi-overconfidence/run.srun | 122 ++++++++ .../svi-overconfidence/simulate_config.yaml | 285 ++++++++++++++++++ .../tfmodel/inference/run_inference.py | 68 ++++- src/tfscreen/tfmodel/scripts/fit_model_cli.py | 44 ++- .../tfmodel/inference/test_run_inference.py | 44 +++ .../tfmodel/scripts/test_fit_model_cli.py | 28 ++ .../tfmodel/scripts/test_fit_model_helpers.py | 11 + 16 files changed, 971 insertions(+), 23 deletions(-) create mode 100644 planning/studies/svi-overconfidence/README.md create mode 100644 planning/studies/svi-overconfidence/compare_to_nuts.py create mode 100644 planning/studies/svi-overconfidence/grid.yaml create mode 100644 planning/studies/svi-overconfidence/hill_params.csv create mode 100644 planning/studies/svi-overconfidence/run.srun create mode 100644 planning/studies/svi-overconfidence/simulate_config.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index ca9dde1e..504e176b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,15 @@ fall into two kinds: ### Fixed +- **NUTS starts where it should.** `RunInference.run_nuts` passed + `initialize_model`'s `ParamInfo` tuple to `init_to_value`. No site + matched it, so every chain started at a uniform draw in [-2, 2] on the + unconstrained scale. `tfs-fit-model --analysis_method nuts` now starts + the chains at the MAP warm-up's point (`--pre_map_num_epoch`, as SVI + does), falling back to prior medians. It also passes the full data set + through `get_batch`, prints the worst split R-hat and least n_eff, and + takes `--nuts_dense_mass`. + - **SVI no longer throws away the pre-MAP solution.** The component guide started with every scale at 0.1 and a multiplicative 0.1 jitter on every starting value. The scale is in each parameter's own units, so for growth diff --git a/CLAUDE.md b/CLAUDE.md index e1365326..cf6bad26 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -149,7 +149,7 @@ Roadmap step 3. `process_raw/od600.py` holds the method (C10: the lab's data nev ### Relative-X fit (`theta: hill_relative`) -Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). Validation grid: `planning/studies/relative-fit/`. +Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). **On simulations, fit it with `--guide_type auto_low_rank_multivariate_normal`** (documented, not the default: the default waits on studies with real data, user 2026-09-28): growth alone constrains mostly `m·(X_g - X_wt)`, so the posterior is a curved ridge along `m·X` that only wt's absolute growth change (via the tube totals) pins, and the mean-field component guide slides along it to smaller |m| and stretched X while the MAP stays on truth; the low-rank guide recovered X at the joint fit's accuracy (`planning/studies/relative-fit/`, run 2). MAP + Laplace recovers `m` but its Laplace covariance on the genotype parameters blew up in 5 of 6 runs. Validation grid: `planning/studies/relative-fit/`. ### Adding a New Model Component diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 66372d88..c2e83804 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -442,8 +442,12 @@ step 7. OD600 2.9, above a realistic calibrated range; tune `cfu0` and timing before using its OD600. Deferred: monoculture growth-rate outputs and a spike-in counting standard (waiting on the bench decisions). -5. [ ] **Relative-X fit** (G; new component, opt-in). (Implemented; - validation grid pending.) +5. [x] **Relative-X fit** (G; new component, opt-in). (Done 2026-09-28; + `planning/studies/relative-fit/`. Point estimates match the anchored + joint fit without binding data when fit with + `--guide_type auto_low_rank_multivariate_normal`. The mean-field + component guide is biased along the m·X ridge. Intervals from every + SVI arm, joint included, are too narrow; that is a separate problem.) - A relative Hill theta component: hill_geno's curve with real-valued baselines, population priors centered on wt, registry rules (C5). Gauge (D4): wt's curve is pinned to `X = 1` at `c_lo` and `X = 0` at `c_hi` diff --git a/planning/studies/relative-fit/.gitignore b/planning/studies/relative-fit/.gitignore index 007f196e..4697a981 100644 --- a/planning/studies/relative-fit/.gitignore +++ b/planning/studies/relative-fit/.gitignore @@ -1,2 +1,3 @@ calib relative_fit +relative_fit_v2 diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index e62d7c5e..ad5f3d6b 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -202,3 +202,49 @@ Clamping them made the Laplace X intervals useless (median 95% width Run 2 therefore adds a `map` arm with `--max_num_epochs 200000` and a `low_rank` arm (`auto_low_rank_multivariate_normal`). + +**Run 2 (2026-09-28): `relative_fit_v2`, 24 runs, all finished.** Pooled +in `calib/relative_fit_v2_*` (not committed). + +- **Start fix confirmed.** Every SVI run began within about 45k of its + pre-MAP loss (run 1 began about 4e8 above). No mirror modes. All + component-guide runs, joint included, hit the 100,000-epoch cap at step + size 1e-6 without being called converged. Five of the six `low_rank` + runs converged. All `map` runs hit the 200,000 cap at step size 1e-4 or + 1e-5. +- **Joint fit (component).** Much better than run 1: theta r 0.99/0.97 + and RMSE 0.07/0.10 (Poisson/realistic), against run 1's 0.29 r under + Poisson. It still undercovers: 95% coverage 0.43/0.58. + +X test set (`theta_test`), per-arm means over 3 seeds, Poisson / realistic: + +| relative arm | 95% coverage | 50% coverage | RMSE | median 95% width | +|---|---|---|---|---| +| component | 0.17 / 0.43 | 0.06 / 0.18 | 0.13 / 0.27 | 0.045 / 0.23 | +| low_rank | 0.64 / 0.78 | 0.29 / 0.39 | 0.058 / 0.115 | 0.034 / 0.18 | +| map + Laplace | 1 of 6 runs usable | | | | + +- **`low_rank` removes most of the relative fit's bias.** Its X RMSE is + at or below the joint fit's (0.058 vs 0.068 Poisson), with coverage at + or above the joint fit's. The component guide stays biased, as in + run 1. +- **`map` + Laplace is not usable as is.** Every MAP recovered m with + calibrated intervals (95% coverage 1.0/1.0). The Laplace covariance on + the genotype parameters blew up in 5 of 6 runs, though: 36-126 + genotypes had `hill_n` 95% widths above 100, and X widths reached + 1e8-1e14 even for the other genotypes. Only run 0004 (seed 1, Poisson) + gave sensible X (95% coverage 0.91). +- **Every SVI arm is overconfident.** 50% coverage of X/theta is 0.2-0.4. + `growth_k`/`growth_m` intervals are about 1e-4 wide with coverage near + 0, in the joint and relative arms alike. The MAP's Laplace intervals + on k and m cover (0.92-1.0). Remaining gap: the guides' variance, not + their location. + +**Decision fed (step 5).** The relative fit is sound. Its point estimates +match the anchored joint fit's without binding data. Fit it with +`--guide_type auto_low_rank_multivariate_normal`, not the component guide. +This is documented, not made the default: the default waits on studies +with real data (user, 2026-09-28). +Its intervals, like every SVI fit's here, are too narrow. That is a +separate problem shared with the joint fit, to take up before trusting +coverage from any arm. diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md new file mode 100644 index 00000000..cdf93d08 --- /dev/null +++ b/planning/studies/svi-overconfidence/README.md @@ -0,0 +1,138 @@ +# SVI overconfidence study + +**Question.** Every SVI fit in the relative-fit grid (`../relative-fit/`, +run 2) undercovered theta, and the gap grew with read depth. At fewer +than 5 reads per tube, 95% coverage was 0.85-0.94. Above 1000 reads it +was 0.24-0.50. `growth_m` sat 10-300 of its own SDs off truth, in the joint +fit and in every relative arm. The MAP's Laplace intervals on `m` did cover. +Is the gap the variational approximation, meaning the exact posterior +covers and the guides do not? Or is it the model, meaning the exact +posterior undercovers too? + +**Decision it feeds.** What to fix: the guide (richer guides, or a +correction to the ELBO) or the model and simulation. Every calibration +result since the count-likelihood study depends on it. + +## What we knew going in + +From `../relative-fit/relative_fit_v2` (Poisson arm, run 0001 joint and +0003 relative low-rank): +- **The error is a shared scale.** Above 1000 reads, the joint fit's theta + error is proportional to theta: -0.034 near theta = 1, about 0 near 0. + The median |z| there is 8-9. The joint fit's `m` is 3-7% too large in + every run. +- **SVI collapses `m`'s uncertainty.** Its 68% intervals on `m` are about + 0.05% wide. The Laplace intervals are a few percent wide and cover. +- So each genotype's interval reflects its own counts but not the shared + scale's uncertainty. Once a genotype's counts are precise, the shared + error dominates. + +That points at the variational approximation, but the Laplace arm's 50% +coverage at high depth was only 0.04, so its centers were off too. A +reference posterior settles it. + +## Design + +[`simulate_config.yaml`](simulate_config.yaml) is the congression +config, cut to singles and spikes: 50 genotypes, 120 tubes, median 1000 +reads per genotype per tube. Doubles are dropped, reads and cfu0 are +scaled so singles keep their full-library depth, and 5 in-library +binding anchors are used. The relative fit has 575 latents and 6,140 +observations. Poisson noise only. + +[`grid.yaml`](grid.yaml): 3 seeds x 2 fits x 4 inference arms = 24 runs, +on the count likelihood with `sample_offset: level`, as in +`../relative-fit/`. + +| axis | levels | +|---|---| +| fit | `joint` (`hill_geno`, binding at weight 1, prefit); `relative` (`hill_relative`, growth only) | +| inference | `nuts` (the reference: 4 chains, 1000 warmup, 1000 draws, dense mass matrix, chains started at the pre-MAP point); `component`; `low_rank` (`auto_low_rank_multivariate_normal`); `map` (MAP + Laplace) | +| seed | 1, 2, 3 | + +Each run ([`run.srun`](run.srun)) simulates, configures, prefits (joint +only), fits, samples the posterior and summarizes. + +NUTS changes this study needed (2026-09-28): +- **Start.** `run_nuts` used to start every chain at a uniform draw in + [-2, 2] on the unconstrained scale. It handed `initialize_model`'s + `ParamInfo` to `init_to_value`, and no site matched. It now starts at the + pre-MAP point. +- **Batch.** It passes the full batch through `get_batch`. +- **Diagnostics.** It prints the worst split R-hat and the smallest n_eff. +- **Mass matrix.** `--nuts_dense_mass` is new. With a diagonal mass matrix + the relative fit ran at NUTS's maximum tree depth (1023 steps) through + warmup. + +## How to run + +On the cluster, from this directory: + +```bash +tfs-setup-sim-grid grid.yaml --out_prefix svi_overconfidence +for d in svi_overconfidence/run_*/; do (cd "$d" && sbatch run.srun); done +``` + +When the runs finish: + +```bash +tfs-summarize-calibration svi_overconfidence --out_prefix calib/svi_overconfidence --baseline inference=nuts +python compare_to_nuts.py svi_overconfidence --out_prefix calib/compare_to_nuts +``` + +## What to look at + +- **NUTS against truth.** Does NUTS cover, overall and above 1000 reads + (`tfs-summarize-calibration`)? First check that its R-hat is at most + about 1.01, its n_eff is adequate and it has no divergences (`run.out`). + - If NUTS covers, the gap is the approximation. + - If NUTS undercovers the same way, the gap is the model or the + simulation-to-fit mismatch. +- **Each arm against NUTS** ([`compare_to_nuts.py`](compare_to_nuts.py)), + with no truth needed: + - `width_ratio`: the arm's 68% width over NUTS's. Below 1 means + overconfident. + - `shift_z`: the arm's median minus NUTS's, in NUTS SDs. + - Per quantity (`growth_k`, `growth_m`, `dk_geno`, `log_hill_K`, + `hill_n`, theta/X). The `growth_m` rows are the ones to watch. +- **Joint against relative.** Whether binding anchors change the picture. + +## Inputs + +`simulate_config.yaml`, `hill_params.csv` (copied from +`../congression-calibration/`), `grid.yaml`, `run.srun`, +`compare_to_nuts.py`. Seeds fixed in the grid. + +## Commit + +Not run on the cluster: NUTS does not mix on this model (below). + +## Results + +**NUTS pilot (2026-09-28, local, seed 1, relative fit): no usable +reference yet.** Every attempt ran at the maximum tree depth (1023 +leapfrog steps) with a step size of 1e-6 to 1e-3. Over 500 warmup and 500 +draws, split R-hat was 3.5-3.7 and n_eff 3 on essentially every latent, +with no divergences: + +| attempt | outcome | +|---|---| +| diagonal mass matrix | tree-depth ceiling through warmup (stopped at 41%) | +| dense mass matrix | R-hat 3.6, n_eff 3 | +| dense, `ln_cfu0_tube_scale` lifted off its collapsed MAP value (5e-5 against a prior median of 0.34) | R-hat 3.7, n_eff 3 | +| dense, every hierarchical scale held at its value (removes the non-centered funnels) | R-hat 3.5, n_eff 3 | +| the same in float64 | the same step sizes at the ceiling (stopped at 30% of warmup) | + +So the cause is not the funnels, the collapsed scale or float32 precision. +It is the posterior's own curvature at this depth. Candidates are the +curved m·X ridge and Hill parameters that are sharp for some genotypes and +flat for others. A dense mass matrix cannot remove curvature, and this is +the same geometry that defeats the mean-field guide. + +Options: reparameterize (centered per-genotype latents for well-measured +genotypes) or try another sampler, with open-ended cost. Or drop the exact +reference: simulation-based calibration of Laplace at a converged MAP over +many seeds, plus diagnostics of how well each SVI guide matches the +posterior. The relative-fit grid already hints at the answer without a +reference: Laplace intervals on `m` covered in every run, where SVI's missed +by 10-300 SDs. diff --git a/planning/studies/svi-overconfidence/compare_to_nuts.py b/planning/studies/svi-overconfidence/compare_to_nuts.py new file mode 100644 index 00000000..035a8e00 --- /dev/null +++ b/planning/studies/svi-overconfidence/compare_to_nuts.py @@ -0,0 +1,120 @@ +""" +Compare each inference arm's posterior marginals with NUTS on the same data. + +For every (seed, fit) the grid has a NUTS run and the other inference arms, +all on one simulated data set. Per quantity and arm this reports: + +- width_ratio: the arm's central 68% interval width over NUTS's, median + over the quantity's elements (1 = right width, < 1 = overconfident). +- shift_z: |arm median - NUTS median| in NUTS SDs (half the 68% width), + median over elements (0 = same center). +- coverage_68/95: how often the arm's 68%/95% interval holds the NUTS + median (a truth-free coverage; NUTS itself scores about 1.0/1.0). + +Truth-based coverage for every arm, NUTS included, comes from +tfs-summarize-calibration. + +Usage (from the study directory): + python compare_to_nuts.py svi_overconfidence --out_prefix calib/svi_overconfidence +""" + +import argparse +import glob +import json +import os + +import numpy as np +import pandas as pd + +# summary file -> key columns +QUANTITIES = { + "growth_k": ("summary/tfs_summarize_params_growth_k.csv", ["condition_rep"]), + "growth_m": ("summary/tfs_summarize_params_growth_m.csv", ["condition_rep"]), + "dk_geno": ("summary/tfs_summarize_params_dk_geno.csv", ["genotype"]), + "log_hill_K": ("summary/tfs_summarize_params_log_hill_K.csv", ["genotype"]), + "hill_n": ("summary/tfs_summarize_params_hill_n.csv", ["genotype"]), + "theta": ("summary/tfs_summarize_theta_corr_test.csv", + ["genotype", "titrant_name", "titrant_conc"]), +} + + +def _runs(grid_dir): + """One row per run: directory, seed, fit, inference.""" + with open(os.path.join(grid_dir, "grid_summary.json")) as f: + summary = json.load(f) + rows = [] + for run in summary["runs"]: + rows.append(dict(run=run["run"], + path=os.path.join(grid_dir, run["run"]), + seed=run["simulate"]["seed"], + fit=run["template"]["fit"], + inference=run["template"]["inference"])) + return pd.DataFrame(rows) + + +def _read(path, rel, keys): + f = os.path.join(path, rel) + if not os.path.exists(f): + return None + df = pd.read_csv(f) + df = df.drop_duplicates(keys) + df["sd"] = (df["q0.841"] - df["q0.159"]) / 2 + return df + + +def compare(grid_dir): + runs = _runs(grid_dir) + out = [] + for (seed, fit), group in runs.groupby(["seed", "fit"]): + ref = group[group.inference == "nuts"] + if ref.empty: + continue + ref_path = ref.path.iloc[0] + for quantity, (rel, keys) in QUANTITIES.items(): + nuts = _read(ref_path, rel, keys) + if nuts is None: + continue + for _, arm in group[group.inference != "nuts"].iterrows(): + other = _read(arm.path, rel, keys) + if other is None: + continue + m = nuts.merge(other, on=keys, suffixes=("_nuts", "_arm")) + m = m[m.sd_nuts > 0] + width = (m.sd_arm / m.sd_nuts) + shift = (m["q0.5_arm"] - m["q0.5_nuts"]).abs() / m.sd_nuts + c68 = ((m["q0.159_arm"] <= m["q0.5_nuts"]) + & (m["q0.5_nuts"] <= m["q0.841_arm"])) + c95 = ((m["q0.025_arm"] <= m["q0.5_nuts"]) + & (m["q0.5_nuts"] <= m["q0.975_arm"])) + out.append(dict(seed=seed, fit=fit, inference=arm.inference, + quantity=quantity, n=len(m), + width_ratio=width.median(), + shift_z=shift.median(), + coverage_68=c68.mean(), + coverage_95=c95.mean())) + return pd.DataFrame(out) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0]) + parser.add_argument("grid_dir") + parser.add_argument("--out_prefix", default="compare_to_nuts") + args = parser.parse_args() + + per_run = compare(args.grid_dir) + if per_run.empty: + raise SystemExit("No (seed, fit) pairs with a NUTS run and another arm.") + os.makedirs(os.path.dirname(os.path.abspath(args.out_prefix)), exist_ok=True) + per_run.to_csv(f"{args.out_prefix}_per_run.csv", index=False) + + arms = (per_run.groupby(["fit", "inference", "quantity"]) + [["width_ratio", "shift_z", "coverage_68", "coverage_95"]] + .mean().reset_index()) + arms.to_csv(f"{args.out_prefix}_arms.csv", index=False) + with pd.option_context("display.width", 200, "display.max_rows", 200): + print(arms.round(3).to_string(index=False)) + print(f"Wrote {args.out_prefix}_per_run.csv and {args.out_prefix}_arms.csv") + + +if __name__ == "__main__": + main() diff --git a/planning/studies/svi-overconfidence/grid.yaml b/planning/studies/svi-overconfidence/grid.yaml new file mode 100644 index 00000000..5c8f4006 --- /dev/null +++ b/planning/studies/svi-overconfidence/grid.yaml @@ -0,0 +1,63 @@ +# --------------------------------------------------------------------------- +# SVI overconfidence: a NUTS reference on a small library +# (planning/studies/svi-overconfidence/README.md) +# +# tfs-setup-sim-grid grid.yaml --out_prefix svi_overconfidence +# for d in svi_overconfidence/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Every SVI arm of the relative-fit grid undercovered, worst for the +# best-measured genotypes, with growth_m 10-300 of its own SDs off truth. +# Is that the variational approximation (NUTS covers, the guides do not) or +# the model (NUTS undercovers too)? A library small enough for NUTS +# (singles and spikes, ~50 genotypes, ~600 latents) fit four ways on the +# same data, in the joint and the relative fit. +# +# Poisson noise only (no founder sampling): the overconfidence was worst +# there, and it keeps the question about the fit. +# +# 3 seeds x 2 fits x 4 inference arms = 24 runs. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "seed{{ seed }}__{{ fit }}__{{ inference }}" + +output_file: run.srun + + +simulate: + + - name: noise + variants: + - founder_sampling: false + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + - seed: 3 + + +template: + + - name: fit + variants: + - fit: joint + - fit: relative + + - name: inference + variants: + - inference: nuts + - inference: component + - inference: low_rank + - inference: map diff --git a/planning/studies/svi-overconfidence/hill_params.csv b/planning/studies/svi-overconfidence/hill_params.csv new file mode 100644 index 00000000..a3568471 --- /dev/null +++ b/planning/studies/svi-overconfidence/hill_params.csv @@ -0,0 +1,5 @@ +genotype,log_hill_K,hill_n,theta_high,theta_low +wt,-4.1,2,0.01,0.99 +M42I,-2.2104779610300698,1.5156149571654287,0.5054105302329879,0.9538933267956679 +H74A,-5.872705439673401,1.2001278450518955,0.05,0.7115380202706272 +K84L,-5.755115159475512,1.0593068151944411,0.1,0.856776050040223 diff --git a/planning/studies/svi-overconfidence/run.srun b/planning/studies/svi-overconfidence/run.srun new file mode 100644 index 00000000..eafa6537 --- /dev/null +++ b/planning/studies/svi-overconfidence/run.srun @@ -0,0 +1,122 @@ +#!/bin/bash -l +#SBATCH --account=harmslab +#SBATCH --job-name=svi_overconf +#SBATCH --output=run.out +#SBATCH --error=run.err +#SBATCH --partition=gpu +#SBATCH --time=00-06:00:00 +#SBATCH --nodes=1 +#SBATCH --cpus-per-task=8 +#SBATCH --gpus=1 +#SBATCH --ntasks-per-node=1 + +# SVI overconfidence study, one run (rendered by tfs-setup-sim-grid from +# planning/studies/svi-overconfidence/run.srun). Submit from the run directory: +# sbatch run.srun + +# Swap lines if on cluster (module load) or local (XLA_FLAGS to use CPU) +module load cuda/12.4.1 +#export XLA_FLAGS="--xla_force_host_platform_device_count=8" + +set -e + +# joint (hill_geno + binding + prefit) or relative (hill_relative, growth only) +FIT="{{ fit }}" +# Growth likelihood: counts (default; with a per-tube level offset, and no +# extra growth noise, which it refuses) or lncfu (with normal_kt growth +# noise). grid.yaml runs counts only. +LIKELIHOOD="{{ likelihood | default('counts') }}" +# component (mean-field component guide), low_rank (low-rank multivariate +# normal autoguide), map (MAP, then a Laplace posterior) or nuts +INFERENCE="{{ inference | default('component') }}" + +SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") + +# --------------------------------------------------------------------------- +# 1. Simulate +# --------------------------------------------------------------------------- +echo ">>> Simulate (seed=${SEED})" +tfs-simulate tfs_sim_config.yaml . --seed "${SEED}" + +# --------------------------------------------------------------------------- +# 2. Configure +# --------------------------------------------------------------------------- +if [[ "${LIKELIHOOD}" == "counts" ]]; then + LIKELIHOOD_ARGS=(--growth_likelihood counts --growth_noise_model zero + --sample_offset_model level) +else + LIKELIHOOD_ARGS=(--growth_likelihood lncfu --growth_noise_model normal_kt + --sample_offset_model zero) +fi + +if [[ "${FIT}" == "relative" ]]; then + FIT_ARGS=(--theta_model hill_relative) +else + FIT_ARGS=(--theta_model hill_geno + --binding_df tfs_sim_binding.csv + --binding_weight 1.0) +fi + +echo ">>> Configure (${FIT}, ${LIKELIHOOD})" +tfs-configure-model \ + --growth_df tfs_sim_growth.csv \ + --presplit_df tfs_sim_presplit.csv \ + --condition_growth_model linear \ + --growth_transition_model instant \ + --ln_cfu0_model hierarchical_factored \ + --dk_geno_model hierarchical_geno \ + --activity_model fixed \ + --theta_rescale_model passthrough \ + --theta_growth_noise_model zero \ + --theta_binding_noise_model zero \ + --transformation_model single \ + --library_config tfs_sim_config.yaml \ + --growth_shares_replicates \ + "${FIT_ARGS[@]}" \ + "${LIKELIHOOD_ARGS[@]}" + +# --------------------------------------------------------------------------- +# 3. Pre-fit calibration (joint only: it needs binding), fit, posterior +# --------------------------------------------------------------------------- +if [[ "${FIT}" == "joint" ]]; then + echo ">>> Pre-fit calibration" + tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" \ + --k_scale_ceiling 0.005 +fi + +case "${INFERENCE}" in + component) INFERENCE_ARGS=() ;; + low_rank) INFERENCE_ARGS=(--guide_type auto_low_rank_multivariate_normal) ;; + # a converged MAP took ~130,000 epochs on run 1's run 0002; Laplace + # needs it converged (a MAP stopped at a fixed step size had 9 negative + # Hessian eigenvalues and gave 95% intervals ~1e10 wide) + map) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; + # the reference posterior; chains start at the pre-MAP point + nuts) INFERENCE_ARGS=(--analysis_method nuts --nuts_num_warmup 1000 + --nuts_num_samples 1000 --nuts_num_chains 4) ;; + *) echo "unknown inference '${INFERENCE}'" >&2; exit 1 ;; +esac + +echo ">>> Fit model (${INFERENCE})" +tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" "${INFERENCE_ARGS[@]}" + +echo ">>> Sample posterior" +tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl + +# --------------------------------------------------------------------------- +# 4. Extract, predict, summarize +# --------------------------------------------------------------------------- +echo ">>> Extract parameters" +tfs-extract-params tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict theta" +tfs-predict-theta tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict growth" +tfs-predict-growth tfs_configure_config.yaml tfs_posterior.h5 \ + --num_marginal_samples=500 + +echo ">>> Summarize fit" +tfs-summarize-fit . + +echo ">>> Done" diff --git a/planning/studies/svi-overconfidence/simulate_config.yaml b/planning/studies/svi-overconfidence/simulate_config.yaml new file mode 100644 index 00000000..cc00136d --- /dev/null +++ b/planning/studies/svi-overconfidence/simulate_config.yaml @@ -0,0 +1,285 @@ +# Small-library simulate config for the SVI overconfidence study +# (planning/studies/svi-overconfidence/). Small enough for NUTS. Copied from +# ../congression-calibration/simulate_config.yaml with these changes: +# - singles and spikes only (tile_combos single-1, single-2; about 45 +# singles + 9 spikes); the doubles are dropped from tile_combos, +# transform_sizes and library_mixture; +# - total_num_reads scaled by 201/1201 so each single keeps its reads per +# tube from the full library (the doubles took 1000/1201 of the bulk); +# - cfu0 scaled the same way; +# - library_binding.num 5 (was 20; about the same fraction of the +# library as in the congression config's library). +# The congression config's notes follow. +# +# - library_mixture is the real design (single-1 100, single-2 100, +# double-1-2 1000, spiked 1), as in planning/studies/congression-estimator; +# - library_binding adds 20 in-library (bulk) binding anchors; +# - transformation_poisson_lambda and the dk_geno hyperparameters are set +# per run by grid.yaml; +# - from 2026-09-26, binding noise 0.025 (the experimental theta error; was +# 0.001) and a Hill coefficient limit of 4 (theta_sim_priors.max_hill_n). +# binding_data.spiked_binding.choose_by names hill_params.csv relative to this +# file; tfs-setup-sim-grid copies it into the grid's inputs/ directory. + + +# --------------------------------------------------------------------------- +# Library genetic information +# --------------------------------------------------------------------------- + +# Reading frame 0, 1, 2. No reverse (negative) strand allowed. +reading_frame: 0 + +# Amino acid residue number for the first in-frame residue of the amplicon. +first_amplicon_residue: 27 + +# Wildtype DNA sequence of the amplicon. +wt_seq: gccagccacgtttctgcgaaaacgcgggaaaaagtggaagcggcgatggcggagctgaattacattcccaaccgcgtggcacaacaactggcgggcaaacagtcgttgctgattggcgttgccacctccagtctggccctgcacgcgccgtcgcaaattgtcgcggcgattaaatctcgcgccgatcaactgggtgccagcgtggtggtgtcgatg + +# Degenerate codon pattern for library positions. '.' = wildtype; 'nnt' = NNT +# codon (encodes all 20 amino acids + stop with reduced synonymous redundancy). +# Must be the same length as wt_seq. +degen_sites: | + .............................................nnt.............................................................................................nnt...........................nnt.......................................... +# ......nntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnnt......nntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnntnnt + + +# tiles groups contiguous degenerate positions that were cloned together. +# '.' = wildtype; any other character defines a tile block. Blocks must +# be contiguous (......111... ok; ....11.1... not ok). +tiles: | + ......111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111......222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 + +# Flanking sequences immediately upstream and downstream of the amplicon. +expected_5p: cgcgtggtgaaccag +expected_3p: gtagaacgaagcggc + +# Which genotype classes to include in the library. 'single-x' = all +# single-mutation variants in tile x. 'double-x-y' = all pairwise +# combinations between tiles x and y. 'double-x-x' = internal +# doubles within tile x. +tile_combos: ["single-1", "single-2"] + +# Control sequences (e.g. known variants) added as spikes. Must be the same +# length as wt_seq. +spiked_seqs: +- ........................................................................................................................................................................................................................ # wt +- .............................................ata........................................................................................................................................................................ # m42i +- .............................................................................................................................................gcg........................................................................ # h74a +- ...........................................................................................................................................................................ctg.......................................... # k84l +- .............................................ata.............................................................................................gcg........................................................................ # m42i/h74a +- .............................................ata...........................................................................................................................ctg.......................................... # m42i/k84l +- .............................................................................................................................................gcg...........................ctg.......................................... # h74a/k84l +- .............................................ata.............................................................................................gcg...........................ctg.......................................... # m42i/h74a/k84l +- ........................................................................................................................................................................................cc.............................. # d88a + +# --------------------------------------------------------------------------- +# Phenotype calculation +# --------------------------------------------------------------------------- + +# Registered theta component name. Any key in model_registry["theta"] is +# valid except "_simple" (calibration-only). Examples: "hill_geno", "thermo.O2_C12_K5_U0_a.PK". +theta_component: "hill_mut" + +# Pairwise epistasis (regularized horseshoe; used when library has doubles): +theta_sim_priors: + epi_tau_scale: 0.1 # HalfCauchy scale for global sparsity τ + max_hill_n: 4.0 # physical upper limit on the Hill coefficient + +# Optional: path to structural/thermodynamic data file required by PnnC and +# PddG theta components. Omit (or set to null) for all other models. +# .h5 / .hdf5 → HDF5 structural ensemble (PnnC) +# .csv → per-mutation per-structure ddG prior means (PddG) +# thermo_data: null + +# Optional: overrides for the theta component's default hyperparameters. +# Any key returned by the component's get_hyperparameters() can be overridden. +# Omit this block to use all component defaults. +# theta_priors: +# theta_tf_total_M: 3.3e-7 + +# --------------------------------------------------------------------------- +# Conditions +# --------------------------------------------------------------------------- + +# Each block defines one set of growth conditions. The Cartesian product of +# titrant_conc × t_sel gives one sample per entry. condition_pre and +# condition_sel must also appear as keys in the 'growth' section below. +condition_blocks: + - library: "kanR" + titrant_name: "iptg" + titrant_conc: [0, 0.0001, 0.001, 0.003] + condition_pre: "kanR-kan" + t_pre: 30 + condition_sel: "kanR+kan" + t_sel: [160, 180, 200] + + - library: "kanR" + titrant_name: "iptg" + titrant_conc: [0.01, 0.03, 0.1, 1.0] + condition_pre: "kanR-kan" + t_pre: 30 + condition_sel: "kanR+kan" + t_sel: [145, 165, 180] + + - library: "kanR" + titrant_name: "iptg" + titrant_conc: [0, 1.0] + condition_pre: "kanR-kan" + t_pre: 30 + condition_sel: "kanR-kan" + t_sel: [160, 180, 200] + + - library: "pheS" + titrant_name: "iptg" + titrant_conc: [0, 0.0001, 0.001, 0.003, 0.01, 0.03, 0.1, 1.0] + condition_pre: "pheS-4CP" + t_pre: 30 + condition_sel: "pheS+4CP" + t_sel: [95, 110, 125] + + - library: "pheS" + titrant_name: "iptg" + titrant_conc: [0, 1.0] + condition_pre: "pheS-4CP" + t_pre: 30 + condition_sel: "pheS-4CP" + t_sel: [95, 110, 125] + +# --------------------------------------------------------------------------- +# Growth rate parameters +# --------------------------------------------------------------------------- + +# Linear mapping from operator occupancy (theta) to growth rate k for each +# condition: k = m * theta + b. Every condition_pre and condition_sel that +# appears in condition_blocks must have an entry here, and vice versa. +growth: + kanR+kan: {m: -0.009933, b: 0.010696} + kanR-kan: {m: 0.000808, b: 0.015366} + pheS+4CP: {m: 0.006226, b: 0.021437} + pheS-4CP: {m: -0.000344, b: 0.028558} + +# Per-genotype pleiotropic growth cost is sampled from a shifted lognormal: +# dk_geno = hyper_shift - exp(Normal(hyper_loc, hyper_scale)) +# Most variants are mildly deleterious; a short right tail (at most hyper_shift) +# allows beneficial mutations. Matches the hierarchical tfmodel inference prior. +dk_geno_hyper_loc: -3.5 +dk_geno_hyper_scale: 0.5 +dk_geno_hyper_shift: 0.02 +dk_geno_zero: false + +# Per-genotype TF activity (A) — a scalar that multiplies the theta contribution +# to growth: k = b + A * m * theta. The wild-type is fixed at activity_wt=1.0 +# by inference convention. Set activity_mut_scale > 0 to draw each mutant +# genotype's log(A) independently from Normal(log(activity_wt), activity_mut_scale). +# activity_mut_scale=0 (default) gives all genotypes identical activity, matching +# the 'fixed' activity inference component. +activity_wt: 1.0 +activity_mut_scale: 0.0 + +# --------------------------------------------------------------------------- +# Experimental simulation parameters +# --------------------------------------------------------------------------- + +# Number of transformants per tile combo. Keys must match the entries in +# tile_combos (e.g. 'single-1', 'double-1-2') plus 'spiked'. +transform_sizes: + single-1: 10_000 + single-2: 10_000 + spiked: 1000 + +# Mixing ratio of tile combos in the pooled library. Only the ratio matters. +library_mixture: + single-1: 100 + single-2: 100 + spiked: 1 + +# Sigma of the log-normal used to draw initial genotype frequencies. 0 = flat +# distribution; 1–2 is realistic for a typical transformation. +lib_assembly_skew_sigma: 1.25 + +# Each bacterium receives a number of plasmids drawn from a zero-truncated +# Poisson with this lambda. Set to 0 or null for exactly one plasmid per cell. +transformation_poisson_lambda: 0 + +# How a cell carrying several plasmids gets its growth rate. The cell's theta +# and TF activity come from congression_theta_rule ('max': the highest-theta +# plasmid sets both, at each condition); its dk_geno from congression_dk_rule +# ('dilution': share-weighted mean; also 'softmin' with congression_dk_alpha, +# or 'min'). Growth is then computed once from these cell-level values. The +# study keeps 'max' so its recorded grids stay reproducible (the default is +# now 'homodimer'); grids set the rules they test. +congression_theta_rule: max +congression_dk_rule: dilution + +# Colony-forming units per mL at the start of pre-growth. +cfu0: 1.09e7 + +# Per-tube environmental growth-rate noise (hr⁻¹). Each physical tube gets its +# own delta_k ~ Normal(0, tube_noise_sigma); the kt contribution per tube is +# delta_k * (t_pre + t_sel), shared by all genotypes in that tube. A value of +# ~0.001–0.002 hr⁻¹ is typical for well-controlled liquid cultures. +# Set to 0 or null to disable. +tube_noise_sigma: 0.002 + +# --------------------------------------------------------------------------- +# Growth transition model (optional) +# --------------------------------------------------------------------------- + +# Models the lag phase when bacteria switch from pre-selection to selection medium. +# Every condition_pre in condition_blocks must have an entry. Use model: "instant" +# for conditions with no detectable lag. Omit this block to use instant everywhere. +# +# "memory" model: tau = tau0 + k1 / (theta + k2) +# tau0 = baseline lag (minutes) +# k1 = occupancy-dependence of lag (higher = more effect) +# k2 = curvature constant (> 0; prevents division by zero) +growth_transition: + - condition_pre: "pheS-4CP" + model: "instant" + + - condition_pre: "kanR-kan" + model: "instant" + +# --------------------------------------------------------------------------- +# Data collection parameters +# --------------------------------------------------------------------------- + +# Total sequencing reads across all samples. +total_num_reads: 16_736_053 + +# Fraction of reads re-assigned to a randomly chosen genotype (index hopping). +# Set to 0 or null to disable. +prob_index_hop: 0.00 + +# Random seed for reproducibility. Set to null for a random seed each run. +seed: 12345 + +# --------------------------------------------------------------------------- +# Binding data simulation (optional) +# --------------------------------------------------------------------------- + +# If present, tfs-simulate also writes a binding CSV with per-genotype theta +# curves. + +binding_data: + # The binding assay (shared by both genotype sets). + titrant_name: iptg + titrant_conc: [0, 0.0001, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1.0] + noise: 0.025 # experimental theta error (user, 2026-09-26) + + # Clean, monoclonal (congression-free) controls. Pool = spiked_seqs. + # choose_by: | stratified | random + # num: optional [1, num_spiked], default all (forbidden with a file) + spiked_binding: + choose_by: hill_params.csv + + # In-library controls, drawn from the bulk (congression-affected growth). + # Pool = library genotypes NOT in spiked_seqs. Omit to disable. + # choose_by: stratified | random | + # num: required for stratified/random (forbidden with a file) + library_binding: + num: 5 + choose_by: stratified + +presplit_data: + noise: 0.00 diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index 62b46764..b928bcdd 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -2399,7 +2399,9 @@ def run_nuts(self, num_warmup=500, num_samples=500, num_chains=1, - target_accept_prob=0.9): + target_accept_prob=0.9, + init_values=None, + dense_mass=False): """ Run NUTS (No-U-Turn Sampler) MCMC on the full dataset. @@ -2413,6 +2415,15 @@ def run_nuts(self, Number of MCMC chains. target_accept_prob : float Target acceptance probability for step-size adaptation. + init_values : dict or None, optional + Constrained site values to start every chain at (``site_values``, + e.g. from a MAP warm-up). Sites without a value start at their + prior median. + dense_mass : bool, optional + Adapt a dense mass matrix instead of a diagonal one. It costs + O(D^2) memory and O(D^3) per adaptation window but follows + correlated posteriors (the relative fit's m*X ridge), where a + diagonal mass matrix leaves NUTS at its maximum tree depth. Returns ------- @@ -2420,30 +2431,30 @@ def run_nuts(self, The MCMC object after sampling. Call `.get_samples()` to get posterior samples as a dict of {site_name: jnp.array}. """ - from numpyro.infer import MCMC, NUTS, init_to_value, init_to_median - import numpyro.infer.util + from numpyro.infer import MCMC, NUTS main_key = random.PRNGKey(self._seed) + # The full data set as one batch, in library order (the path the + # Laplace posterior uses). + full_data = self.model.get_batch(self.model.data, + jnp.arange(self.model.data.num_genotype)) jax_model_kwargs = { "priors": self.model.priors, - "data": self.model.data, + "data": full_data, } - # Initialise from prior median — more robust than random for - # hierarchical models with constrained parameters. - init_params, _, _, _ = numpyro.infer.util.initialize_model( - main_key, - self.model.jax_model, - model_args=[], - model_kwargs=jax_model_kwargs, - init_strategy=init_to_median, - ) - init_strategy = init_to_value(values=init_params) + # Start at the given constrained site values, else at prior medians. + # (This used to hand initialize_model's ParamInfo tuple to + # init_to_value, which matched no site, so every chain started at + # init_to_uniform's draw in [-2, 2] on the unconstrained scale.) + init_strategy = _init_to_value_or(values=init_values, + fallback=init_to_median) kernel = NUTS(self.model.jax_model, init_strategy=init_strategy, - target_accept_prob=target_accept_prob) + target_accept_prob=target_accept_prob, + dense_mass=dense_mass) mcmc = MCMC(kernel, num_warmup=num_warmup, @@ -2460,4 +2471,31 @@ def run_nuts(self, total = num_samples * num_chains print(f"NUTS: {num_div} divergences out of {total} samples") + self._report_nuts_diagnostics(mcmc) + return mcmc + + @staticmethod + def _report_nuts_diagnostics(mcmc): + """Print the worst split R-hat and smallest effective sample size.""" + from numpyro.diagnostics import summary + + try: + stats = summary(mcmc.get_samples(group_by_chain=True)) + except Exception as err: # diagnostics must never sink a finished run + print(f"NUTS: diagnostics unavailable ({err})") + return + worst_rhat, worst_rhat_site = -np.inf, None + least_neff, least_neff_site = np.inf, None + for site, st in stats.items(): + # Constant deterministic sites (fixed values) give inf/NaN. + r_hat = np.asarray(st.get("r_hat", np.nan), dtype=float) + r_hat = r_hat[np.isfinite(r_hat)] + n_eff = np.asarray(st.get("n_eff", np.nan), dtype=float) + n_eff = n_eff[np.isfinite(n_eff)] + if r_hat.size and r_hat.max() > worst_rhat: + worst_rhat, worst_rhat_site = float(r_hat.max()), site + if n_eff.size and n_eff.min() < least_neff: + least_neff, least_neff_site = float(n_eff.min()), site + print(f"NUTS: max split R-hat {worst_rhat:.3f} ({worst_rhat_site}); " + f"min n_eff {least_neff:.0f} ({least_neff_site})", flush=True) diff --git a/src/tfscreen/tfmodel/scripts/fit_model_cli.py b/src/tfscreen/tfmodel/scripts/fit_model_cli.py index 706fd050..eb4851ff 100644 --- a/src/tfscreen/tfmodel/scripts/fit_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/fit_model_cli.py @@ -218,11 +218,13 @@ def _run_svi(ri, return svi_obj, svi_state, params, converged def _run_nuts(ri, + init_values=None, out_prefix="tfs", nuts_num_warmup=500, nuts_num_samples=500, nuts_num_chains=1, nuts_target_accept_prob=0.9, + nuts_dense_mass=False, forward_batch_size=512): """ Run NUTS (No-U-Turn Sampler) MCMC inference. @@ -231,6 +233,9 @@ def _run_nuts(ri, ---------- ri : RunInference RunInference object that manages model setup and MCMC routines. + init_values : dict or None, optional + Constrained site values to start the chains at (default: prior + medians). out_prefix : str, optional Output file root for checkpoints and results (default "tfs"). nuts_num_warmup : int, optional @@ -241,6 +246,8 @@ def _run_nuts(ri, Number of MCMC chains (default 1). nuts_target_accept_prob : float, optional Target acceptance probability for NUTS step-size adaptation (default 0.9). + nuts_dense_mass : bool, optional + Adapt a dense mass matrix (default False, diagonal). forward_batch_size : int, optional Number of genotypes to process per forward-model batch when computing posteriors (default 512). @@ -254,7 +261,9 @@ def _run_nuts(ri, mcmc = ri.run_nuts(num_warmup=nuts_num_warmup, num_samples=nuts_num_samples, num_chains=nuts_num_chains, - target_accept_prob=nuts_target_accept_prob) + target_accept_prob=nuts_target_accept_prob, + init_values=init_values, + dense_mass=nuts_dense_mass) mcmc_samples = mcmc.get_samples() @@ -318,6 +327,7 @@ def fit_model(config_file, nuts_num_samples=500, nuts_num_chains=1, nuts_target_accept_prob=0.9, + nuts_dense_mass=False, epoch_checkpoint_interval=1000): """ Fit the joint hierarchical model using a previously generated configuration file. @@ -411,9 +421,10 @@ def fit_model(config_file, When getting NUTS posteriors, calculate forward predictions in batches of this size (default 512). pre_map_num_epoch : int, optional - Maximum number of epochs of the MAP warm-up run before SVI (default - 10000; 0 skips it). The warm-up stops earlier when it converges. - Only used if analysis_method is 'svi'. + Maximum number of epochs of the MAP warm-up run before SVI or NUTS + (default 10000; 0 skips it). The warm-up stops earlier when it + converges. SVI's guide and NUTS's chains start at its point. Not + used by 'map'. init_param_jitter : float, optional Multiplicative jitter on the component guide's starting parameters (default 0, none). Not used by autoguides or MAP. Leave it off when @@ -431,6 +442,11 @@ def fit_model(config_file, nuts_target_accept_prob : float, optional Target acceptance probability for NUTS step-size adaptation (default 0.9). Only used if analysis_method is 'nuts'. + nuts_dense_mass : bool, optional + Adapt a dense mass matrix for NUTS instead of a diagonal one + (default False). Worth it for correlated posteriors of up to a few + thousand latents; with a diagonal one the relative fit ran at NUTS's + maximum tree depth. Only used if analysis_method is 'nuts'. epoch_checkpoint_interval : int or None, optional Frequency (in epochs) to write numbered epoch checkpoints to a ``checkpoints/`` subdirectory alongside ``out_prefix`` (default 1000). @@ -484,7 +500,7 @@ def fit_model(config_file, "the file or change out_prefix." ) - if analysis_method == "svi" and pre_map_num_epoch > 0: + if analysis_method in ("svi", "nuts") and pre_map_num_epoch > 0: premap_path = f"{out_prefix}_premap_checkpoint.pkl" if os.path.exists(premap_path): raise FileExistsError( @@ -583,12 +599,30 @@ def fit_model(config_file, epoch_checkpoint_interval=epoch_checkpoint_interval)) elif analysis_method == "nuts": + # Start the chains at the MAP warm-up's point, as SVI does: from + # prior medians warmup spends its adaptation getting to the mode. + init_values = ri.site_values(guesses) + if pre_map_num_epoch > 0: + _, map_params, _ = _run_map( + ri, + init_values=init_values, + out_prefix=f"{out_prefix}_premap", + label="Pre-MAP", + **optimizer_kwargs, + **_optimization_kwargs( + **convergence_kwargs, + checkpoint_interval=pre_map_num_epoch, + max_num_epochs=pre_map_num_epoch, + epoch_checkpoint_interval=None)) + init_values = {**init_values, **ri.site_values(map_params)} mcmc_samples = _run_nuts(ri, + init_values=init_values, out_prefix=out_prefix, nuts_num_warmup=nuts_num_warmup, nuts_num_samples=nuts_num_samples, nuts_num_chains=nuts_num_chains, nuts_target_accept_prob=nuts_target_accept_prob, + nuts_dense_mass=nuts_dense_mass, forward_batch_size=forward_batch_size) return None, mcmc_samples, True diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index 4bc2487f..8de57a36 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -1290,3 +1290,47 @@ def model(data, priors): assert float(out["s"]["map"]) == pytest.approx(np.e, rel=1e-5) assert float(out["s"]["sigma"]) == pytest.approx(np.e * 0.5, rel=1e-3) assert float(out["x"]["sigma"]) == pytest.approx(2.0, rel=1e-3) + + +def test_run_nuts_starts_at_given_values(mocker): + """ + run_nuts starts every chain at the given constrained site values and + falls back to prior medians (it once handed initialize_model's ParamInfo + tuple to init_to_value, which matched no site). + """ + from unittest.mock import MagicMock + + import numpyro.distributions as dist + + ri = RunInference.__new__(RunInference) + ri._seed = 0 + ri.model = MagicMock() + ri.model.data.num_genotype = 3 + nuts = mocker.patch("numpyro.infer.NUTS") + mcmc = mocker.patch("numpyro.infer.MCMC") + mcmc.return_value.get_extra_fields.return_value = {} + ri.run_nuts(num_warmup=1, num_samples=1, init_values={"a": 2.5}, + dense_mass=True) + assert nuts.call_args.kwargs["dense_mass"] is True + strategy = nuts.call_args.kwargs["init_strategy"] + site = {"type": "sample", "is_observed": False, "name": "a", + "fn": dist.Normal(0.0, 1.0), "value": None, "kwargs": {}} + assert float(strategy(site)) == 2.5 + # the full data set goes in as one batch + ri.model.get_batch.assert_called_once() + + +def test_report_nuts_diagnostics(capsys): + """Worst split R-hat and least n_eff, skipping constant sites.""" + from unittest.mock import MagicMock + + rng = np.random.default_rng(0) + mixed = rng.normal(size=(2, 200)) + stuck = np.stack([rng.normal(0, 1, 200), rng.normal(5, 1, 200)]) + mcmc = MagicMock() + mcmc.get_samples.return_value = {"good": mixed, "bad": stuck, + "fixed": np.zeros((2, 200))} + RunInference._report_nuts_diagnostics(mcmc) + out = capsys.readouterr().out + assert "max split R-hat" in out and "(bad)" in out + assert "inf" not in out diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py index f5e76776..755a090c 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py @@ -88,6 +88,9 @@ def _setup(self, mocker, tmp_path): ".fit_model_cli.RunInference", return_value=MagicMock(_iterations_per_epoch=1), ) + # NUTS starts from a MAP warm-up (pre_map_num_epoch > 0 by default) + mocker.patch("tfscreen.tfmodel.scripts.fit_model_cli._run_map", + return_value=(MagicMock(), {}, True)) fake_samples = {"param": [1.0]} run_nuts_mock = mocker.patch( "tfscreen.tfmodel.scripts" @@ -327,6 +330,31 @@ def test_autoguide_without_premap_starts_from_guesses(self, mocker): assert set(kwargs["init_values"]) == {"dk_geno_offset"} assert kwargs["init_params"] is None + def test_nuts_starts_from_premap_solution(self, mocker): + _patch_common(mocker) + self._patch_ri(mocker, guesses={"dk_geno_offset": jnp.zeros(3)}) + map_params = {"dk_geno_offset_auto_loc": jnp.ones(3)} + run_map_mock = mocker.patch(f"{_CLI}._run_map", + return_value=(MagicMock(), map_params, + True)) + run_nuts_mock = mocker.patch(f"{_CLI}._run_nuts", return_value={}) + fit_model(config_file="dummy.yaml", seed=1, analysis_method="nuts", + pre_map_num_epoch=5) + assert run_map_mock.call_args.kwargs["max_num_epochs"] == 5 + init_values = run_nuts_mock.call_args.kwargs["init_values"] + assert float(init_values["dk_geno_offset"][0]) == 1.0 + + def test_nuts_without_premap_starts_from_guesses(self, mocker): + _patch_common(mocker) + self._patch_ri(mocker, guesses={"dk_geno_offset": jnp.zeros(3)}) + run_map_mock = mocker.patch(f"{_CLI}._run_map") + run_nuts_mock = mocker.patch(f"{_CLI}._run_nuts", return_value={}) + fit_model(config_file="dummy.yaml", seed=1, analysis_method="nuts", + pre_map_num_epoch=0) + run_map_mock.assert_not_called() + init_values = run_nuts_mock.call_args.kwargs["init_values"] + assert float(init_values["dk_geno_offset"][0]) == 0.0 + @pytest.mark.parametrize("scale,expected", [(None, 1e-4), (0.02, 0.02)]) def test_component_guide_starts_from_premap(self, mocker, scale, expected): diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py index 5362f80e..a6e07dda 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_helpers.py @@ -171,9 +171,20 @@ def test_run_nuts_calls_run_nuts(mock_ri_for_nuts): num_samples=20, num_chains=2, target_accept_prob=0.8, + init_values=None, + dense_mass=False, ) +def test_run_nuts_passes_init_values(mock_ri_for_nuts): + """_run_nuts hands the starting site values to ri.run_nuts.""" + ri = mock_ri_for_nuts + values = {"dk_geno_offset": 1.0} + _run_nuts(ri, init_values=values, nuts_dense_mass=True) + assert ri.run_nuts.call_args.kwargs["init_values"] is values + assert ri.run_nuts.call_args.kwargs["dense_mass"] is True + + def test_run_nuts_calls_get_nuts_posteriors(tmp_path, mock_ri_for_nuts): """_run_nuts calls ri.get_nuts_posteriors with the samples and forward_batch_size.""" ri = mock_ri_for_nuts From 32a7ec12d2964518ecc85bdcc762e8c99182942e Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Mon, 28 Sep 2026 06:49:04 -0700 Subject: [PATCH 064/208] Non-centered ln_cfu0 tube offset, runaway-loss stop, SVI study results - hierarchical_factored: tube_offset = tube_scale * tube_offset_z. The centered Normal(0, tube_scale) over 4 offsets that trade against the genotype baselines had an unbounded density as the scale went to 0 (no MAP; pre-MAP scale 5e-5). Breaking for checkpoints and guesses. - Convergence monitor: a loss below -1000 x its starting magnitude ends the run as "diverged" (a full-covariance guide reached -8e23 and was called converged). - svi-overconfidence study: 60-run grid, guide diagnostics (PSIS), coverage by read depth, local runner. Result: the depth-dependent undercoverage in every study grid is mostly ln_cfu0 hierarchical_factored against the simulator's separate kanR/pheS transformations (seed-1 refit with hierarchical: X RMSE 0.10 -> 0.027, coverage above 1000 reads 0.09 -> 0.80). The guides still collapse k/m uncertainty. Full suite: 5236 passed, 15 skipped. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 16 ++ CLAUDE.md | 3 +- .../studies/svi-overconfidence/.gitignore | 2 + planning/studies/svi-overconfidence/README.md | 192 +++++++++++++++--- .../svi-overconfidence/compare_to_nuts.py | 120 ----------- .../svi-overconfidence/coverage_by_depth.py | 129 ++++++++++++ planning/studies/svi-overconfidence/grid.yaml | 28 ++- .../svi-overconfidence/guide_diagnostics.py | 188 +++++++++++++++++ planning/studies/svi-overconfidence/run.srun | 13 +- .../studies/svi-overconfidence/run_local.sh | 37 ++++ .../ln_cfu0/hierarchical_factored.py | 57 ++++-- src/tfscreen/tfmodel/inference/convergence.py | 31 ++- .../tfmodel/inference/run_inference.py | 10 + .../ln_cfu0/test_hierarchical_factored.py | 52 +++-- .../tfmodel/inference/test_convergence.py | 41 +++- 15 files changed, 724 insertions(+), 195 deletions(-) create mode 100644 planning/studies/svi-overconfidence/.gitignore delete mode 100644 planning/studies/svi-overconfidence/compare_to_nuts.py create mode 100644 planning/studies/svi-overconfidence/coverage_by_depth.py create mode 100644 planning/studies/svi-overconfidence/guide_diagnostics.py create mode 100755 planning/studies/svi-overconfidence/run_local.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 504e176b..f0290edf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,22 @@ fall into two kinds: ### Fixed +- **Breaking: `ln_cfu0: hierarchical_factored` has a non-centered tube + offset.** It used to draw `tube_offset ~ Normal(0, tube_scale)` directly. + The 4 offsets (replicate x pre-condition) trade against the genotype + baselines, so they could sit at 0. The joint density then grew without + bound as `tube_scale` went to 0, so no MAP existed: the pre-MAP put the + scale at 5e-5 against a prior median of 0.34. The component now samples + `tube_offset_z ~ N(0, 1)` and keeps `tube_offset = tube_scale * + tube_offset_z` as a deterministic site. The guide's parameters are now + `ln_cfu0_tube_offset_z_locs/scales`, so checkpoints and guesses files + written before do not load. Reconfigure and refit. +- **A runaway loss is no longer called converged.** The convergence monitor + records the run's starting loss. A window whose loss falls below -1000 + times its magnitude now ends the run as `diverged`, not converged + (`convergence.RUNAWAY_LOSS_FACTOR`). A full-covariance guide had run to a + loss of -8e23 and was reported as converged. + - **NUTS starts where it should.** `RunInference.run_nuts` passed `initialize_model`'s `ParamInfo` tuple to `init_to_value`. No site matched it, so every chain started at a uniform draw in [-2, 2] on the diff --git a/CLAUDE.md b/CLAUDE.md index cf6bad26..913da67d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -134,7 +134,7 @@ The hierarchical Bayesian inference engine. Key files: - `dk_geno/`: `fixed`, `hierarchical_geno`, `pinned` - `noise/` (theta observation noise; registry keys `theta_growth_noise`: `zero`/`beta`/`logit_normal`, `theta_binding_noise`: `zero`/`beta`) - `growth_noise/`: `zero`, `normal_kt` - - `ln_cfu0/`: `hierarchical`, `hierarchical_factored` + - `ln_cfu0/`: `hierarchical`, `hierarchical_factored` (tube offsets non-centered, `tube_offset = tube_scale * tube_offset_z`: the centered form had an unbounded density as `tube_scale` went to 0, since the 4 offsets trade against the genotype baselines) - `sample_offset/`: `zero`, `normal` (per-tube growth-rate offset, scaled by elapsed time), `level` (per-tube ln_cfu offset, constant prior) - **`generative/observe/`** — *not* under `components/`, and not swappable via YAML. Holds the four observation-likelihood layers (`binding`, `growth`, `presplit`, `base_growth`), registered under flat `model_registry` keys `observe_binding`/`observe_growth`/`observe_presplit`/`observe_base_growth`. `ModelOrchestrator` wires in `observe_binding` whenever binding data were supplied and (unless `binding_only`) the growth observer chosen by `growth_likelihood` (`lncfu` → `observe_growth`, Student-t on `ln_cfu`; `counts` → `observe_growth_counts`, see **Count likelihood** below), plus `observe_presplit`/`observe_base_growth` only when the corresponding data (`presplit_df`/`base_growth_df`) was supplied — these are parallel, independently-gated observers, not alternative choices for one axis. **Growth-only models** (`binding_df=None`, `tfs-configure-model` without `--binding_df`) have `data.binding = None`, `priors.binding = None`, no `theta_binding_noise` component and no binding sites in the model (`jax_model` gates them on `data.binding is not None`, static structure); the orchestrator refuses a `binding_weight` or a non-`zero` `theta_binding_noise` without binding, and `tfs-prefit-calibration` refuses a growth-only config. Absent prior groups are left out of the priors CSV (`configuration_io._extract_scalars` / `_update_dataclass` skip `None`), so they reload as `None`, not NaN. @@ -178,6 +178,7 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi - **Decisions** (`ConvergenceMonitor.end_window`): above the floor step size, `patience` consecutive windows without loss improvement → cut (`step_size_cut`, default 0.1), unless the stalls pooled are a descent: before a cut or a stop, `pooled_loss_trend` fits one line through the block medians of all `patience` stalled windows (same `z`/`loss_rtol`), and a significant drop resets the stall count (`pooled_loss_t` in the convergence CSV; the stalled windows' medians are kept in checkpoints). A single window misses a slow, noisy descent: on the count-likelihood v2 grid, 20 of 23 first cuts came during a descent that pooled to t = 4-14, one (run 0012) into a wrong optimum (`loss_traces/sim_svi_counts_noisy_descent_run0012.npy`). **Parameters and skew never block a cut**: some directions never settle (a horseshoe local scale's MAP drifts to 0 forever at ~no loss change) and holding the step size high for them only wastes time. At `final_step_size`, `patience` consecutive windows with no loss improvement, no parameter movement and no loss skew → converged; a still-moving parameter or a skewed loss keeps the run going and is named in the log, so a slide, degenerate direction or hidden penalty is reported, never called converged. `max_num_epochs` is only a cap. A hierarchical MAP generally has no finite optimum (hyper-scale funnel), so MAP/pre-MAP runs often end at the cap — the honest outcome. - **Optimizer** (`run_inference.adam_optimizer`): plain numpyro `Adam` by default; `adam_clip_norm` (every CLI and `setup_svi`) opts into `ClippedAdam`. **Do not re-enable clipping by default.** `ClippedAdam` clips each gradient *element* to ±`clip_norm`; these losses have gradients of 1e3–1e6 per element, so every element is clipped every step and Adam follows each draw's gradient *sign* — its fixed point is where the per-draw signs balance, not where the expected gradient is zero. With a heavy-tailed ELBO (step-like binding curve M42C/K84N, `hill_n` 24.6, measured with SD 0.001; a guide draw crossing it costs ~2.4e5 nats) that held 5–90% of draws in violation on every congression-calibration run (2026-09-25; the "blow-ups" were block medians flipping once the rate passed 50%, and step-size cuts cannot move a sign-balance point). Unclipped, the same fits drop to ~0 violations and converge (`planning/studies/congression-calibration/diagnosis/`). The two optimizers share their state, so old checkpoints resume unclipped. - **Step-size cuts** swap `svi.optim` for a new optimizer of the same kind (clipped or not, read off the current `svi.optim`) at the smaller constant step (the optimizer state is step-size independent) and re-trace the scan (a fresh closure, so no stale compiled step size). `setup_svi` records `_step_size`/`_adam_clip_norm` (the latter written to checkpoints); a step-size *schedule* is still accepted but refuses cuts. The old `optax.exponential_decay` over `max_num_epochs` is gone (it collapsed the pre-MAP's step size within its 1000 epochs and tied resumes to `max_num_epochs`). +- **Runaway loss** (`RUNAWAY_LOSS_FACTOR` = 1e3): a window whose loss falls below -1000 times the magnitude of the run's first block median ends the run as `diverged` (not converged; `monitor.diverged`, kept in checkpoints with `reference_loss`). It means the objective is unbounded: a hierarchical density singularity (the old centered `hierarchical_factored` tube offset), or float32 error in a dense guide's own log density (`auto_multivariate_normal` on the small SVI-overconfidence library, where `log q` of its own draws reached -4e22 through an ill-conditioned `scale_tril`). - **Records**: `{out_prefix}_convergence.csv` (one row per window: loss (median), drop ± SE, t, `loss_mean`/`loss_skew`/`loss_skewed`, worst param and its excess/drift, step size, plateau count, decision; a resume rewrites an older file under the current columns, `_migrate_convergence_columns`); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). **Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (`fit_model_cli.DEFAULT_GUIDE_INIT_SCALE`, 1e-4; also the autoguides' `init_scale` for a fresh fit). The scale is one number in every site's unconstrained units, so it must be small: at the old 0.1 (numpyro's autoguide default) an SD of 0.1 on a growth rate per minute is 17 ln units over a selection, SVI started ~1000x above the pre-MAP's loss and re-descended into other optima (mirror mode, halved m, the library shifted against wt; relative-fit grid, 2026-09-27). SVI widens the scales itself (about e-fold per 1000 steps at step size 1e-3). `init_param_jitter` defaults to 0 for the same reason (it is multiplicative, so 0.1 moves an ln_cfu0 location near 15 by ~1.5 ln units). `test_default_guide_start_stays_near_its_point` checks the start on a count model; a fit's first logged SVI loss should sit near its pre-MAP loss. `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. diff --git a/planning/studies/svi-overconfidence/.gitignore b/planning/studies/svi-overconfidence/.gitignore new file mode 100644 index 00000000..bd0a30d4 --- /dev/null +++ b/planning/studies/svi-overconfidence/.gitignore @@ -0,0 +1,2 @@ +calib +svi_overconfidence diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index cdf93d08..49d477ed 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -40,29 +40,38 @@ scaled so singles keep their full-library depth, and 5 in-library binding anchors are used. The relative fit has 575 latents and 6,140 observations. Poisson noise only. -[`grid.yaml`](grid.yaml): 3 seeds x 2 fits x 4 inference arms = 24 runs, +The first design used NUTS as the reference posterior, but NUTS did not mix +on this model (Results, NUTS pilot). The design now calibrates each arm +against truth over many simulations. MAP + Laplace is the arm with a +full covariance. + +[`grid.yaml`](grid.yaml): 10 seeds x 2 fits x 3 inference arms = 60 runs, on the count likelihood with `sample_offset: level`, as in `../relative-fit/`. | axis | levels | |---|---| | fit | `joint` (`hill_geno`, binding at weight 1, prefit); `relative` (`hill_relative`, growth only) | -| inference | `nuts` (the reference: 4 chains, 1000 warmup, 1000 draws, dense mass matrix, chains started at the pre-MAP point); `component`; `low_rank` (`auto_low_rank_multivariate_normal`); `map` (MAP + Laplace) | -| seed | 1, 2, 3 | +| inference | `component`; `low_rank` (`auto_low_rank_multivariate_normal`); `map` (MAP with `--max_num_epochs 200000`, then a Laplace posterior) | +| seed | 1-10 | Each run ([`run.srun`](run.srun)) simulates, configures, prefits (joint -only), fits, samples the posterior and summarizes. +only), fits, samples the posterior and summarizes. SVI runs also run +[`guide_diagnostics.py`](guide_diagnostics.py): the Pareto k-hat and +log-weight SD of importance weights `p(theta, y) / q(theta)` over 2000 +guide draws, and growth_k/growth_m under the guide and reweighted. Where +k-hat is small, the reweighted numbers are a reference. For mean-field +guides in ~600 dimensions it is not expected to be small, so it mainly +ranks the guides. -NUTS changes this study needed (2026-09-28): +NUTS changes made for the pilot, kept (2026-09-28): - **Start.** `run_nuts` used to start every chain at a uniform draw in [-2, 2] on the unconstrained scale. It handed `initialize_model`'s `ParamInfo` to `init_to_value`, and no site matched. It now starts at the pre-MAP point. - **Batch.** It passes the full batch through `get_batch`. - **Diagnostics.** It prints the worst split R-hat and the smallest n_eff. -- **Mass matrix.** `--nuts_dense_mass` is new. With a diagonal mass matrix - the relative fit ran at NUTS's maximum tree depth (1023 steps) through - warmup. +- **Mass matrix.** `--nuts_dense_mass` is new. ## How to run @@ -76,36 +85,41 @@ for d in svi_overconfidence/run_*/; do (cd "$d" && sbatch run.srun); done When the runs finish: ```bash -tfs-summarize-calibration svi_overconfidence --out_prefix calib/svi_overconfidence --baseline inference=nuts -python compare_to_nuts.py svi_overconfidence --out_prefix calib/compare_to_nuts +tfs-summarize-calibration svi_overconfidence --out_prefix calib/svi_overconfidence --baseline inference=map +python coverage_by_depth.py svi_overconfidence --out_prefix calib/svi_overconfidence ``` ## What to look at -- **NUTS against truth.** Does NUTS cover, overall and above 1000 reads - (`tfs-summarize-calibration`)? First check that its R-hat is at most - about 1.01, its n_eff is adequate and it has no divergences (`run.out`). - - If NUTS covers, the gap is the approximation. - - If NUTS undercovers the same way, the gap is the model or the - simulation-to-fit mismatch. -- **Each arm against NUTS** ([`compare_to_nuts.py`](compare_to_nuts.py)), - with no truth needed: - - `width_ratio`: the arm's 68% width over NUTS's. Below 1 means - overconfident. - - `shift_z`: the arm's median minus NUTS's, in NUTS SDs. - - Per quantity (`growth_k`, `growth_m`, `dk_geno`, `log_hill_K`, - `hill_n`, theta/X). The `growth_m` rows are the ones to watch. -- **Joint against relative.** Whether binding anchors change the picture. +[`coverage_by_depth.py`](coverage_by_depth.py) reports theta/X coverage by +each genotype's median reads per tube, k and m error in the arm's own SDs, +and the guide diagnostics. +- **Coverage by depth.** In `../relative-fit/relative_fit_v2`, 95% + coverage fell with depth in every arm: + - joint component: 0.75 at 5 reads or fewer, 0.37 above 1000 + - relative low-rank: 0.94 to 0.50 + - relative component: 0.85 to 0.05 + + If MAP + Laplace holds its coverage across depth here while the guides + do not, the gap is the approximation. If it falls too, the model is + (part of) the problem. +- **k and m.** In the same grid, the SVI arms sat a median 10-90 of their + own SDs off truth (95% coverage 0-0.29). MAP + Laplace sat at 0.2 SDs and + covered (0.96-1.0). +- **Guide diagnostics.** k-hat and log-weight SD, low-rank against + component, joint against relative. +- **Laplace robustness.** In the large-library grid Laplace blew up in 5 of + 6 runs. It needs to hold on this library before it can be the reference. ## Inputs `simulate_config.yaml`, `hill_params.csv` (copied from `../congression-calibration/`), `grid.yaml`, `run.srun`, -`compare_to_nuts.py`. Seeds fixed in the grid. +`guide_diagnostics.py`, `coverage_by_depth.py`. Seeds fixed in the grid. ## Commit -Not run on the cluster: NUTS does not mix on this model (below). +Not yet run on the cluster. ## Results @@ -136,3 +150,129 @@ many seeds, plus diagnostics of how well each SVI guide matches the posterior. The relative-fit grid already hints at the answer without a reference: Laplace intervals on `m` covered in every run, where SVI's missed by 10-300 SDs. + +**Reference pilots (2026-09-28, local, seed 1, relative fit).** The small +library reproduces the gap with the component guide. 95% X coverage is 1.0 +at 5 reads or fewer and 0.12 above 1000. growth_k and growth_m sit 20-100 +of their own SDs off truth. Both candidate references failed on it: + +- **MAP + Laplace.** The MAP hit its 200,000-epoch cap at step size 1e-5. + The Hessian had 5 negative eigenvalues, down to -66. The Laplace X + intervals came out about 4e10 wide, with 50% coverage 0-0.04 at every + depth. Its k/m intervals were sensible: |z| at most 0.6 for the + selective m, but up to 6.8 for the control conditions. +- **`auto_multivariate_normal` (full-covariance guide).** The loss + diverged to about -1e23 by epoch 5,000 and ended near -8e23. The + convergence monitor then called it converged, which is a bug in the + monitor. X intervals were about 0.01 wide, with 95% coverage 0.05-0.25. + +**The common cause is a model bug, not the references.** `hierarchical_factored` +draws `ln_cfu0_tube_offset ~ Normal(0, ln_cfu0_tube_scale)`, centered, over +only 4 offsets (replicate x pre-condition). The offsets trade against the +per-genotype baselines, so they can sit near 0. There the joint density +grows like `tube_scale^-4` as the scale goes to 0, and the HalfNormal prior +does not stop it. The posterior density is unbounded: +- no MAP exists (the pre-MAP puts the scale at 5e-5, against a prior median + of 0.34); +- a full-covariance guide chases it to -inf loss; +- NUTS started there sits in the funnel. + +The mean-field guide survives only because it is too rigid to follow. + +Next: a non-centered tube offset (`offset = tube_scale * z`, `z ~ N(0, 1)`) +removes the singularity. Then retry the full-covariance guide and +MAP + Laplace as the reference on this library. Separately, the convergence +monitor should refuse to call a run converged when its loss has run off to +about -1e23. + +**Fixes (2026-09-28), then the grid.** + +1. **Tube offset.** The `hierarchical_factored` tube offset is now + non-centered. On seed 1 the MAP's `ln_cfu0_tube_scale` is now 0.26 (was + 5e-5). A new test checks that the density stays bounded as the scale + goes to 0. +2. **Runaway loss.** The convergence monitor ends a run whose loss falls + below -1000 times its starting magnitude as `diverged`. +3. **Retried references (seed 1, relative), neither usable yet:** + - **Full-covariance guide.** Still ran away, to -2.8e22, and was stopped + at step 2000 as diverged. The model's log density at its draws is + finite (about -5e4). The runaway is the guide's own `log q` (-4.2e22): + its `scale_tril` is badly conditioned (all entries at most 6e-4), + and float32 triangular solves recover wrong standard-normal values + that the optimizer exploits. A numerical failure of the dense guide, + not a model singularity. + - **MAP + Laplace.** The MAP still ends at the 200,000-epoch cap, + improving (t = 17 at step size 1e-6), with 5 negative Hessian + eigenvalues. Laplace X is useless: widths about 2e10, mean error 5.7. + Its k and m intervals are sensible for the selective conditions + (|z| at most 0.4) but not the controls (|z| up to 9). + +The grid ran anyway (user, 2026-09-28): 60 runs locally, 3 at a time +([`run_local.sh`](run_local.sh)), on the fixed model. It measures the +component and low-rank guides' coverage by depth across 10 seeds. The MAP +arm is expected to fail on theta but give k and m. + +**Grid results (2026-09-28): 60 runs, all finished locally.** No divergences. +Pooled in `calib/` (not committed). 95% theta/X coverage fell with depth in +every arm: + +| arm | <=5 reads | 21-100 | 101-1000 | >1000 | +|---|---|---|---|---| +| joint component | 0.78 | 0.61 | 0.47 | 0.30 | +| joint low_rank | 0.80 | 0.66 | 0.49 | 0.27 | +| joint map | 0.80 | 0.73 | 0.54 | 0.43 | +| relative component | 0.84 | 0.62 | 0.43 | 0.30 | +| relative low_rank | 0.88 | 0.64 | 0.43 | 0.29 | +| relative map | 0.72 | 0.20 | 0.13 | 0.17 (Laplace blew up, as expected) | + +- **k and m.** SVI arms sat a median 13-62 of their own SDs off truth + (95% coverage 0-0.05). MAP + Laplace sat at 0.5-2.4 SDs (coverage + 0.48-0.78). +- **Guide diagnostics.** The low-rank guide is far closer to its posterior + than the component guide (log-weight SD 15 against 290; k-hat 4.4-4.5 + against 7.4-7.6) and covers no better. +- **The misses are per-genotype, not a shared scale.** Above 1000 reads the + relative fits are unbiased on average (slope 1.00, mean error +0.003). + Their RMSE of 0.042 is about 5 times the posterior SD, and the error is + nearly the same at every concentration of a genotype: a per-genotype + offset in X. + +**Cause: the ln_cfu0 model does not match the simulation.** Every study +grid (congression-calibration, count-likelihood, relative-fit, this one), +and `examples/simulate-and-analyze/run.sh`, fit with +`ln_cfu0: hierarchical_factored`. That model gives each genotype one +starting abundance shared by every pre-condition, plus one offset per +tube. The simulator transforms kanR and pheS as separate libraries, so each +genotype's starting abundance differs between them. Here the per-genotype +kanR minus pheS difference has SD 0.17-0.29 ln units, up to 0.9. The fit +has to put that difference into the growth rates, and so into a +per-genotype X offset it is confident about. + +Refitting seed 1 (relative, low-rank) with `ln_cfu0: hierarchical`, one +starting abundance per replicate x pre-condition x genotype and the +configure default, on the same data: + +| | factored | hierarchical | +|---|---|---| +| X RMSE | 0.101 | 0.027 | +| mean X error | -0.079 | -0.002 | +| 95% coverage, 101-1000 reads | 0.19 | 0.81 | +| 95% coverage, >1000 reads | 0.09 | 0.80 | +| growth_m median abs z | ~80 | ~9 | + +**Conclusions.** +1. **Most of the theta undercoverage in these grids is the ln_cfu0 + mismatch.** It is not the variational approximation. Whether real + data need `hierarchical` or `hierarchical_factored` depends on whether + kanR and pheS come from one stock (the factored model's assumption) or + from separate transformations (the simulator's). That is a protocol + question, and the choice matters a great deal. +2. **The guides do still collapse k and m.** On the `hierarchical` refit, + growth_k and growth_m remain 1-200 of their own SDs off truth with SDs + near 1e-5, and 95% theta coverage stays about 0.80 rather than 0.95. + That part is the approximation, and it is now small enough to study on + its own. + +Next: rerun this grid (or seed subsets) with `ln_cfu0: hierarchical` to +measure what remains, once the ln_cfu0 question is settled for the real +protocol. The earlier grids' calibration numbers carry the same mismatch. diff --git a/planning/studies/svi-overconfidence/compare_to_nuts.py b/planning/studies/svi-overconfidence/compare_to_nuts.py deleted file mode 100644 index 035a8e00..00000000 --- a/planning/studies/svi-overconfidence/compare_to_nuts.py +++ /dev/null @@ -1,120 +0,0 @@ -""" -Compare each inference arm's posterior marginals with NUTS on the same data. - -For every (seed, fit) the grid has a NUTS run and the other inference arms, -all on one simulated data set. Per quantity and arm this reports: - -- width_ratio: the arm's central 68% interval width over NUTS's, median - over the quantity's elements (1 = right width, < 1 = overconfident). -- shift_z: |arm median - NUTS median| in NUTS SDs (half the 68% width), - median over elements (0 = same center). -- coverage_68/95: how often the arm's 68%/95% interval holds the NUTS - median (a truth-free coverage; NUTS itself scores about 1.0/1.0). - -Truth-based coverage for every arm, NUTS included, comes from -tfs-summarize-calibration. - -Usage (from the study directory): - python compare_to_nuts.py svi_overconfidence --out_prefix calib/svi_overconfidence -""" - -import argparse -import glob -import json -import os - -import numpy as np -import pandas as pd - -# summary file -> key columns -QUANTITIES = { - "growth_k": ("summary/tfs_summarize_params_growth_k.csv", ["condition_rep"]), - "growth_m": ("summary/tfs_summarize_params_growth_m.csv", ["condition_rep"]), - "dk_geno": ("summary/tfs_summarize_params_dk_geno.csv", ["genotype"]), - "log_hill_K": ("summary/tfs_summarize_params_log_hill_K.csv", ["genotype"]), - "hill_n": ("summary/tfs_summarize_params_hill_n.csv", ["genotype"]), - "theta": ("summary/tfs_summarize_theta_corr_test.csv", - ["genotype", "titrant_name", "titrant_conc"]), -} - - -def _runs(grid_dir): - """One row per run: directory, seed, fit, inference.""" - with open(os.path.join(grid_dir, "grid_summary.json")) as f: - summary = json.load(f) - rows = [] - for run in summary["runs"]: - rows.append(dict(run=run["run"], - path=os.path.join(grid_dir, run["run"]), - seed=run["simulate"]["seed"], - fit=run["template"]["fit"], - inference=run["template"]["inference"])) - return pd.DataFrame(rows) - - -def _read(path, rel, keys): - f = os.path.join(path, rel) - if not os.path.exists(f): - return None - df = pd.read_csv(f) - df = df.drop_duplicates(keys) - df["sd"] = (df["q0.841"] - df["q0.159"]) / 2 - return df - - -def compare(grid_dir): - runs = _runs(grid_dir) - out = [] - for (seed, fit), group in runs.groupby(["seed", "fit"]): - ref = group[group.inference == "nuts"] - if ref.empty: - continue - ref_path = ref.path.iloc[0] - for quantity, (rel, keys) in QUANTITIES.items(): - nuts = _read(ref_path, rel, keys) - if nuts is None: - continue - for _, arm in group[group.inference != "nuts"].iterrows(): - other = _read(arm.path, rel, keys) - if other is None: - continue - m = nuts.merge(other, on=keys, suffixes=("_nuts", "_arm")) - m = m[m.sd_nuts > 0] - width = (m.sd_arm / m.sd_nuts) - shift = (m["q0.5_arm"] - m["q0.5_nuts"]).abs() / m.sd_nuts - c68 = ((m["q0.159_arm"] <= m["q0.5_nuts"]) - & (m["q0.5_nuts"] <= m["q0.841_arm"])) - c95 = ((m["q0.025_arm"] <= m["q0.5_nuts"]) - & (m["q0.5_nuts"] <= m["q0.975_arm"])) - out.append(dict(seed=seed, fit=fit, inference=arm.inference, - quantity=quantity, n=len(m), - width_ratio=width.median(), - shift_z=shift.median(), - coverage_68=c68.mean(), - coverage_95=c95.mean())) - return pd.DataFrame(out) - - -def main(): - parser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0]) - parser.add_argument("grid_dir") - parser.add_argument("--out_prefix", default="compare_to_nuts") - args = parser.parse_args() - - per_run = compare(args.grid_dir) - if per_run.empty: - raise SystemExit("No (seed, fit) pairs with a NUTS run and another arm.") - os.makedirs(os.path.dirname(os.path.abspath(args.out_prefix)), exist_ok=True) - per_run.to_csv(f"{args.out_prefix}_per_run.csv", index=False) - - arms = (per_run.groupby(["fit", "inference", "quantity"]) - [["width_ratio", "shift_z", "coverage_68", "coverage_95"]] - .mean().reset_index()) - arms.to_csv(f"{args.out_prefix}_arms.csv", index=False) - with pd.option_context("display.width", 200, "display.max_rows", 200): - print(arms.round(3).to_string(index=False)) - print(f"Wrote {args.out_prefix}_per_run.csv and {args.out_prefix}_arms.csv") - - -if __name__ == "__main__": - main() diff --git a/planning/studies/svi-overconfidence/coverage_by_depth.py b/planning/studies/svi-overconfidence/coverage_by_depth.py new file mode 100644 index 00000000..02c2e352 --- /dev/null +++ b/planning/studies/svi-overconfidence/coverage_by_depth.py @@ -0,0 +1,129 @@ +""" +Per-arm calibration against truth where the relative-fit grid showed the gap. + +For every run of the grid: + +- theta (X for the relative fit) test coverage at 50% and 95%, by the + genotype's median reads per tube (<= 5, 6-20, 21-100, 101-1000, > 1000). + A guide that leaves out shared uncertainty covers the low-read genotypes + and misses the high-read ones. +- growth_m and growth_k: error in the arm's own SDs (z) and the arm's SD, + per condition. +- the guide diagnostics (Pareto k-hat, log-weight SD), where present. + +Writes {out_prefix}_depth.csv, {out_prefix}_growth.csv and +{out_prefix}_guides.csv, and prints per-arm means. + +Usage (from the study directory): + python coverage_by_depth.py svi_overconfidence --out_prefix calib/svi_overconfidence +""" + +import argparse +import json +import os + +import numpy as np +import pandas as pd + +DEPTH_BINS = [-1, 5, 20, 100, 1000, np.inf] +DEPTH_LABELS = ["<=5", "6-20", "21-100", "101-1000", ">1000"] + + +def _runs(grid_dir): + with open(os.path.join(grid_dir, "grid_summary.json")) as f: + summary = json.load(f) + return [dict(run=r["run"], path=os.path.join(grid_dir, r["run"]), + seed=r["simulate"]["seed"], fit=r["template"]["fit"], + inference=r["template"]["inference"]) + for r in summary["runs"]] + + +def _depth(run): + theta = os.path.join(run["path"], "summary", + "tfs_summarize_theta_corr_test.csv") + growth = os.path.join(run["path"], "tfs_sim_growth.csv") + if not (os.path.exists(theta) and os.path.exists(growth)): + return None + d = pd.read_csv(theta) + reads = pd.read_csv(growth).groupby("genotype")["counts"].median() + d["reads"] = d["genotype"].map(reads) + d["depth"] = pd.cut(d["reads"], DEPTH_BINS, labels=DEPTH_LABELS) + d["c50"] = (d["q0.25"] <= d["ref"]) & (d["ref"] <= d["q0.75"]) + d["c95"] = (d["q0.025"] <= d["ref"]) & (d["ref"] <= d["q0.975"]) + out = (d.groupby("depth", observed=True) + .agg(n=("c95", "size"), coverage_50=("c50", "mean"), + coverage_95=("c95", "mean")) + .reset_index()) + return out.assign(**{k: run[k] for k in ("run", "seed", "fit", "inference")}) + + +def _growth(run): + rows = [] + for name in ("growth_k", "growth_m"): + f = os.path.join(run["path"], "summary", + f"tfs_summarize_params_{name}.csv") + if not os.path.exists(f): + continue + d = pd.read_csv(f) + sd = (d["q0.841"] - d["q0.159"]) / 2 + rows.append(pd.DataFrame(dict( + parameter=name, condition_rep=d["condition_rep"], + error=d["q0.5"] - d["ref"], sd=sd, + z=(d["q0.5"] - d["ref"]) / sd, + covered_95=(d["q0.025"] <= d["ref"]) & (d["ref"] <= d["q0.975"])))) + if not rows: + return None + return pd.concat(rows).assign( + **{k: run[k] for k in ("run", "seed", "fit", "inference")}) + + +def _guide(run): + f = os.path.join(run["path"], "tfs_guide_diagnostics.json") + if not os.path.exists(f): + return None + with open(f) as fh: + d = json.load(fh) + return dict(d, **{k: run[k] for k in ("run", "seed", "fit", "inference")}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0]) + parser.add_argument("grid_dir") + parser.add_argument("--out_prefix", default="coverage_by_depth") + args = parser.parse_args() + + runs = _runs(args.grid_dir) + depth = [x for x in map(_depth, runs) if x is not None] + growth = [x for x in map(_growth, runs) if x is not None] + guides = [x for x in map(_guide, runs) if x is not None] + if not depth: + raise SystemExit("No run has a theta test summary yet.") + + os.makedirs(os.path.dirname(os.path.abspath(args.out_prefix)), exist_ok=True) + depth = pd.concat(depth) + depth.to_csv(f"{args.out_prefix}_depth.csv", index=False) + arm = ["fit", "inference"] + with pd.option_context("display.width", 200, "display.max_rows", 200): + print("theta/X coverage by median reads per tube (mean over seeds):") + print(depth.groupby(arm + ["depth"], observed=True) + [["n", "coverage_50", "coverage_95"]].mean().round(3).to_string()) + if growth: + growth = pd.concat(growth) + growth.to_csv(f"{args.out_prefix}_growth.csv", index=False) + print("\ngrowth_k/growth_m: median |z| and 95% coverage over " + "seeds and conditions:") + print(growth.assign(abs_z=growth.z.abs()) + .groupby(arm + ["parameter"]) + .agg(median_abs_z=("abs_z", "median"), + coverage_95=("covered_95", "mean"), + median_sd=("sd", "median")).round(4).to_string()) + if guides: + guides = pd.DataFrame(guides) + guides.to_csv(f"{args.out_prefix}_guides.csv", index=False) + print("\nguide diagnostics (median over seeds):") + print(guides.groupby(arm)[["khat", "log_w_sd", "ess"]] + .median().round(2).to_string()) + + +if __name__ == "__main__": + main() diff --git a/planning/studies/svi-overconfidence/grid.yaml b/planning/studies/svi-overconfidence/grid.yaml index 5c8f4006..cfa3b7d1 100644 --- a/planning/studies/svi-overconfidence/grid.yaml +++ b/planning/studies/svi-overconfidence/grid.yaml @@ -1,5 +1,5 @@ # --------------------------------------------------------------------------- -# SVI overconfidence: a NUTS reference on a small library +# SVI overconfidence: repeated simulations on a small library # (planning/studies/svi-overconfidence/README.md) # # tfs-setup-sim-grid grid.yaml --out_prefix svi_overconfidence @@ -7,15 +7,18 @@ # # Every SVI arm of the relative-fit grid undercovered, worst for the # best-measured genotypes, with growth_m 10-300 of its own SDs off truth. -# Is that the variational approximation (NUTS covers, the guides do not) or -# the model (NUTS undercovers too)? A library small enough for NUTS -# (singles and spikes, ~50 genotypes, ~600 latents) fit four ways on the -# same data, in the joint and the relative fit. +# Is that the variational approximation or the model? NUTS gave no reference +# here (tree-depth ceiling, R-hat 3.5; README), so the reference is +# calibration against truth over many simulations: a small library +# (singles and spikes, ~50 genotypes, ~600 latents) fit three ways on the +# same data, in the joint and the relative fit, with a Laplace posterior at +# a converged MAP as the full-covariance comparison. Each SVI run also +# reports how far its guide is from the posterior (guide_diagnostics.py). # # Poisson noise only (no founder sampling): the overconfidence was worst # there, and it keeps the question about the fit. # -# 3 seeds x 2 fits x 4 inference arms = 24 runs. +# 10 seeds x 2 fits x 3 inference arms = 60 runs. # --------------------------------------------------------------------------- base_config: simulate_config.yaml @@ -46,6 +49,13 @@ simulate: - seed: 1 - seed: 2 - seed: 3 + - seed: 4 + - seed: 5 + - seed: 6 + - seed: 7 + - seed: 8 + - seed: 9 + - seed: 10 template: @@ -57,7 +67,11 @@ template: - name: inference variants: - - inference: nuts - inference: component - inference: low_rank - inference: map + + # copied into the grid's inputs/ and named from each run + - name: scripts + variants: + - diagnostics_script: guide_diagnostics.py diff --git a/planning/studies/svi-overconfidence/guide_diagnostics.py b/planning/studies/svi-overconfidence/guide_diagnostics.py new file mode 100644 index 00000000..e2067bc5 --- /dev/null +++ b/planning/studies/svi-overconfidence/guide_diagnostics.py @@ -0,0 +1,188 @@ +""" +How far an SVI guide is from the posterior it approximates (PSIS). + +Draws S samples from the fitted guide, computes the importance weights +w = p(theta, y) / q(theta) on the full data set, and reports: + +- khat: the Pareto shape of the largest weights (Vehtari et al. 2024, + "Pareto smoothed importance sampling"). Below 0.5 the guide is close to + the posterior; 0.5-0.7 importance sampling still works with more draws; + above 0.7 the guide misses mass the posterior has, and reweighted + estimates are unreliable. +- ess: the effective sample size of the smoothed weights. +- per condition, growth_k and growth_m under the guide and reweighted by + the smoothed weights (mean and SD), plus the simulated truth when the run + directory has it. Where khat is small the reweighted numbers are a + reference for the guide's own. + +Writes {out_prefix}.json and {out_prefix}_growth.csv. + +Usage, from a run directory holding tfs_configure_config.yaml and an SVI +checkpoint: + python guide_diagnostics.py tfs_fit_model_checkpoint.pkl --num_draws 2000 +""" + +import argparse +import json +import os + +import jax +import jax.numpy as jnp +import numpy as np +import pandas as pd +from numpyro.handlers import seed, substitute, trace +from numpyro.infer.util import log_density + +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.inference.run_inference import RunInference + + +# --------------------------------------------------------------------------- +# PSIS (after Vehtari, Simpson, Gelman, Yao and Gabry, the reference code) +# --------------------------------------------------------------------------- + +def _gpd_fit(x): + """Generalized Pareto (k, sigma) of exceedances x > 0 (Zhang and Stephens 2009).""" + x = np.sort(np.asarray(x, dtype=float)) + n = x.size + prior_bs, prior_k = 3, 10 + m = 30 + int(np.sqrt(n)) + bs = 1 - np.sqrt(m / (np.arange(1, m + 1) - 0.5)) + bs /= prior_bs * x[int(n / 4 + 0.5) - 1] + bs += 1 / x[-1] + ks = np.mean(np.log1p(-bs[:, None] * x), axis=1) + L = n * (np.log(-bs / ks) - ks - 1) + w = 1 / np.sum(np.exp(L[None, :] - L[:, None]), axis=1) + keep = w >= 10 * np.finfo(float).eps + w, bs = w[keep], bs[keep] + w /= w.sum() + b = np.sum(bs * w) + k = np.mean(np.log1p(-b * x)) + sigma = -k / b + k = (n * k + prior_k * 0.5) / (n + prior_k) # weak prior toward 0.5 + return k, sigma + + +def psis(log_w): + """Smoothed log weights, Pareto k-hat and ESS for one set of log weights.""" + log_w = np.asarray(log_w, dtype=float) + log_w = log_w - log_w.max() + S = log_w.size + M = int(min(0.2 * S, 3 * np.sqrt(S))) + order = np.argsort(log_w) + tail_idx = order[-M:] + cutoff = log_w[order[-M - 1]] + exceed = np.exp(log_w[tail_idx]) - np.exp(cutoff) + if np.all(exceed <= 0): + k = -np.inf + smoothed = log_w.copy() + else: + k, sigma = _gpd_fit(exceed) + p = (np.arange(1, M + 1) - 0.5) / M + # generalized Pareto quantiles, in units of sigma + if abs(k) < 1e-8: + q = -np.log1p(-p) + else: + q = ((1 - p) ** (-k) - 1) / k + smoothed_tail = np.log(np.exp(cutoff) + sigma * q) + smoothed = log_w.copy() + smoothed[tail_idx] = np.minimum(smoothed_tail, 0.0) + w = np.exp(smoothed - smoothed.max()) + w /= w.sum() + ess = 1.0 / np.sum(w ** 2) + return np.log(w), float(k), float(ess) + + +# --------------------------------------------------------------------------- + +def _weighted_mean_sd(x, w): + mean = np.sum(w[:, None] * x, axis=0) + sd = np.sqrt(np.sum(w[:, None] * (x - mean) ** 2, axis=0)) + return mean, sd + + +def main(): + parser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0]) + parser.add_argument("checkpoint_file") + parser.add_argument("--config_file", default="tfs_configure_config.yaml") + parser.add_argument("--num_draws", type=int, default=2000) + parser.add_argument("--chunk", type=int, default=100) + parser.add_argument("--seed", type=int, default=0) + parser.add_argument("--out_prefix", default="tfs_guide_diagnostics") + args = parser.parse_args() + + orchestrator, init_params = read_configuration(args.config_file) + ri = RunInference(orchestrator, args.seed) + svi, state = ri.restore_svi_from_checkpoint(args.checkpoint_file, + init_params=init_params) + params = jax.tree_util.tree_map(jnp.asarray, svi.get_params(state)) + data = orchestrator.get_batch(orchestrator.data, + jnp.arange(orchestrator.data.num_genotype)) + kwargs = dict(priors=orchestrator.priors, data=data) + guide = svi.guide + model = orchestrator.jax_model + + def one(key): + g = substitute(seed(guide, key), data=params) + log_q, g_trace = log_density(g, (), kwargs, {}) + latent = {n: s["value"] for n, s in g_trace.items() + if s["type"] == "sample" and not s.get("is_observed", False) + and not n.startswith("_")} + log_p, m_trace = log_density(model, (), kwargs, latent) + return (log_p - log_q, + m_trace["condition_growth_k"]["value"], + m_trace["condition_growth_m"]["value"]) + + one = jax.jit(jax.vmap(one)) + keys = jax.random.split(jax.random.PRNGKey(args.seed), args.num_draws) + log_w, ks, ms = [], [], [] + for i in range(0, args.num_draws, args.chunk): + lw, k, m = one(keys[i:i + args.chunk]) + log_w.append(np.asarray(lw)); ks.append(np.asarray(k)); ms.append(np.asarray(m)) + log_w = np.concatenate(log_w) + ks = np.concatenate(ks).reshape(args.num_draws, -1) + ms = np.concatenate(ms).reshape(args.num_draws, -1) + + finite = np.isfinite(log_w) + smoothed, khat, ess = psis(log_w[finite]) + w = np.exp(smoothed) + + # growth_k/growth_m are indexed in map_condition_rep order + cond_df = orchestrator.growth_tm.map_groups["condition_rep"] + conditions = list(cond_df.sort_values("map_condition_rep")["condition_rep"]) + rows = [] + for name, draws in (("growth_k", ks), ("growth_m", ms)): + d = draws[finite] + g_mean, g_sd = d.mean(0), d.std(0) + w_mean, w_sd = _weighted_mean_sd(d, w) + for j in range(d.shape[1]): + rows.append(dict(parameter=name, index=j, + condition_rep=(conditions[j] + if j < len(conditions) else None), + guide_mean=g_mean[j], guide_sd=g_sd[j], + reweighted_mean=w_mean[j], reweighted_sd=w_sd[j])) + table = pd.DataFrame(rows) + + summary_files = {"growth_k": "summary/tfs_summarize_params_growth_k.csv", + "growth_m": "summary/tfs_summarize_params_growth_m.csv"} + for name, f in summary_files.items(): + # the summary's ref column is truth on the fit's scale (X for relative) + if os.path.exists(f): + ref = pd.read_csv(f)[["condition_rep", "ref"]] + sel = table.parameter == name + table.loc[sel, "ref"] = table.loc[sel, "condition_rep"].map( + ref.set_index("condition_rep")["ref"]) + + out = dict(checkpoint=args.checkpoint_file, num_draws=args.num_draws, + num_finite=int(finite.sum()), khat=khat, ess=ess, + log_w_sd=float(np.std(log_w[finite]))) + with open(f"{args.out_prefix}.json", "w") as f: + json.dump(out, f, indent=2) + table.to_csv(f"{args.out_prefix}_growth.csv", index=False) + print(json.dumps(out, indent=2)) + with pd.option_context("display.width", 200): + print(table.round(6).to_string(index=False)) + + +if __name__ == "__main__": + main() diff --git a/planning/studies/svi-overconfidence/run.srun b/planning/studies/svi-overconfidence/run.srun index eafa6537..f3d163f3 100644 --- a/planning/studies/svi-overconfidence/run.srun +++ b/planning/studies/svi-overconfidence/run.srun @@ -27,7 +27,7 @@ FIT="{{ fit }}" # noise). grid.yaml runs counts only. LIKELIHOOD="{{ likelihood | default('counts') }}" # component (mean-field component guide), low_rank (low-rank multivariate -# normal autoguide), map (MAP, then a Laplace posterior) or nuts +# normal autoguide) or map (MAP, then a Laplace posterior) INFERENCE="{{ inference | default('component') }}" SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") @@ -91,15 +91,20 @@ case "${INFERENCE}" in # needs it converged (a MAP stopped at a fixed step size had 9 negative # Hessian eigenvalues and gave 95% intervals ~1e10 wide) map) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; - # the reference posterior; chains start at the pre-MAP point - nuts) INFERENCE_ARGS=(--analysis_method nuts --nuts_num_warmup 1000 - --nuts_num_samples 1000 --nuts_num_chains 4) ;; *) echo "unknown inference '${INFERENCE}'" >&2; exit 1 ;; esac echo ">>> Fit model (${INFERENCE})" tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" "${INFERENCE_ARGS[@]}" +if [[ "${INFERENCE}" != "map" ]]; then + echo ">>> Guide diagnostics" + # diagnostics only; never stops the run + python "{{ diagnostics_script }}" tfs_fit_model_checkpoint.pkl \ + --num_draws 2000 --out_prefix tfs_guide_diagnostics \ + || echo "guide diagnostics failed" >&2 +fi + echo ">>> Sample posterior" tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl diff --git a/planning/studies/svi-overconfidence/run_local.sh b/planning/studies/svi-overconfidence/run_local.sh new file mode 100755 index 00000000..d85f95d6 --- /dev/null +++ b/planning/studies/svi-overconfidence/run_local.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Run a rendered grid locally instead of through SLURM: each run's run.srun +# with the cluster's `module load` line dropped, JOBS runs at a time. +# +# bash run_local.sh svi_overconfidence [JOBS] [PYTHON_BIN_DIR] [TFSCREEN_SRC] +# +# PYTHON_BIN_DIR holds python and the tfs-* entry points (default +# ~/miniconda3/bin); TFSCREEN_SRC, if given, goes first on PYTHONPATH so the +# runs use that checkout. Each run logs to its run.out/run.err; a run that +# already finished (run.out ends with ">>> Done") is skipped, so the script +# can be restarted. + +set -u +GRID="$1" +JOBS="${2:-3}" +BIN="${3:-$HOME/miniconda3/bin}" +SRC="${4:-}" + +export PATH="${BIN}:${PATH}" +if [[ -n "${SRC}" ]]; then + export PYTHONPATH="${SRC}${PYTHONPATH:+:${PYTHONPATH}}" +fi +run_one() { + d="$1" + if [[ -f "$d/run.out" ]] && tail -1 "$d/run.out" | grep -q ">>> Done"; then + echo "skip $d (done)" + return 0 + fi + rm -rf "$d/checkpoints" "$d"/tfs_fit_model_* "$d"/tfs_prefit_* 2>/dev/null + echo "start $d $(date +%H:%M:%S)" + ( cd "$d" && sed '/^module load/d' run.srun | bash > run.out 2> run.err ) + status=$? + echo "end $d $(date +%H:%M:%S) status ${status}" +} +export -f run_one + +ls -d "${GRID}"/run_*/ | sed 's#/$##' | xargs -P "${JOBS}" -I{} bash -c 'run_one "$@"' _ {} diff --git a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py index b40dfd03..0b82885b 100644 --- a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py +++ b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py @@ -94,9 +94,16 @@ def define_model(name: str, ``hierarchical`` component (pooled Normal per library class, separate locations for spiked/wt genotypes) but without the condition_pre dimension — reflecting the biology that all tubes were split from the - same stock at the same OD600. ``tube_offset`` is a small centred Normal - per (replicate, condition_pre) pair that absorbs any remaining systematic - tube-to-tube dilution differences. + same stock at the same OD600. ``tube_offset`` is a small Normal per + (replicate, condition_pre) pair that absorbs any remaining systematic + tube-to-tube dilution differences. It is non-centred, + ``tube_offset = tube_scale * tube_offset_z`` with ``tube_offset_z ~ + N(0, 1)``: the offsets trade against the genotype baselines, so the + data let them sit at 0, and the centred form ``Normal(0, tube_scale)`` + then has a joint density that grows without bound as ``tube_scale`` + goes to 0 (about ``tube_scale^-4`` for 4 offsets). No MAP existed, and a + full-covariance guide followed the scale to a loss near -1e23 + (``planning/studies/svi-overconfidence/``, 2026-09-28). Parameters ---------- @@ -159,13 +166,13 @@ def define_model(name: str, if offset_geno.shape[-1] == data.num_genotype: offset_geno = offset_geno[..., data.batch_idx] - # Per-(replicate, condition_pre) tube offsets — shape (R, C) + # Per-(replicate, condition_pre) tube offsets, non-centred — shape (R, C) with pyro.plate(f"{name}_tube_replicate", data.num_replicate, dim=-2): with pyro.plate(f"{name}_condition_pre", data.num_condition_pre, dim=-1): - tube_offset = pyro.sample( - f"{name}_tube_offset", - dist.Normal(0.0, tube_scale) - ) + tube_offset_z = pyro.sample(f"{name}_tube_offset_z", + dist.Normal(0.0, 1.0)) + tube_offset = pyro.deterministic(f"{name}_tube_offset", + tube_scale * tube_offset_z) per_geno_loc, per_geno_scale = _per_geno_loc_scale( data, priors, @@ -192,7 +199,8 @@ def guide(name: str, Variational parameters: - ``{name}_offset_geno_locs/scales``: shape ``(num_replicate, num_genotype)`` - - ``{name}_tube_offset_locs/scales``: shape ``(num_replicate, num_condition_pre)`` + - ``{name}_tube_offset_z_locs/scales``: shape ``(num_replicate, num_condition_pre)``, + the non-centred tube offsets (``tube_offset = tube_scale * tube_offset_z``) - Per-class hyper_loc/hyper_scale variational params (skipped when pinned) - ``{name}_tube_scale``: LogNormal variational posterior for positive scalar """ @@ -259,7 +267,8 @@ def guide(name: str, ts_loc = pyro.param(f"{name}_tube_scale_loc", jnp.array(-1.0)) ts_scale = pyro.param(f"{name}_tube_scale_scale", jnp.array(0.1), constraint=dist.constraints.greater_than(1e-4)) - pyro.sample(f"{name}_tube_scale", dist.LogNormal(ts_loc, ts_scale)) + tube_scale = pyro.sample(f"{name}_tube_scale", + dist.LogNormal(ts_loc, ts_scale)) # Per-(replicate, genotype) offset variational params — shape (R, G) geno_param_shape = (data.num_replicate, data.num_genotype) @@ -279,18 +288,20 @@ def guide(name: str, if offset_geno.shape[-1] == data.num_genotype: offset_geno = offset_geno[..., data.batch_idx] - # Per-(replicate, condition_pre) tube offset variational params — shape (R, C) + # Per-(replicate, condition_pre) non-centred tube offsets — shape (R, C) tube_param_shape = (data.num_replicate, data.num_condition_pre) - tube_offset_locs = pyro.param(f"{name}_tube_offset_locs", - jnp.zeros(tube_param_shape, dtype=float)) - tube_offset_scales = pyro.param(f"{name}_tube_offset_scales", - jnp.full(tube_param_shape, 0.1, dtype=float), - constraint=dist.constraints.positive) + tube_offset_z_locs = pyro.param(f"{name}_tube_offset_z_locs", + jnp.zeros(tube_param_shape, dtype=float)) + tube_offset_z_scales = pyro.param(f"{name}_tube_offset_z_scales", + jnp.ones(tube_param_shape, dtype=float), + constraint=dist.constraints.positive) with pyro.plate(f"{name}_tube_replicate", data.num_replicate, dim=-2): with pyro.plate(f"{name}_condition_pre", data.num_condition_pre, dim=-1): - tube_offset = pyro.sample(f"{name}_tube_offset", - dist.Normal(tube_offset_locs, tube_offset_scales)) + tube_offset_z = pyro.sample( + f"{name}_tube_offset_z", + dist.Normal(tube_offset_z_locs, tube_offset_z_scales)) + tube_offset = tube_scale * tube_offset_z per_geno_loc, per_geno_scale = _per_geno_loc_scale( data, priors, @@ -359,8 +370,9 @@ def get_guesses(name: str, data: GrowthData, median across condition_pre, unless a direct pre-split measurement is available (see ``presplit``), in which case it is preferred wherever valid. The tube offset is the per-(replicate, condition_pre) median - residual after subtracting that baseline. The tube scale is estimated - from the MAD of the tube offsets. + residual after subtracting that baseline, given as ``tube_offset_z`` = + offset / tube scale. The tube scale is estimated from the MAD of the + tube offsets. Falls back to hard-coded defaults for any group or dimension with no valid observations. @@ -384,7 +396,7 @@ def get_guesses(name: str, data: GrowthData, f"{name}_tube_scale": _FALLBACK_TUBE_SCALE, f"{name}_offset_geno": jnp.zeros( (data.num_replicate, data.num_genotype), dtype=float), - f"{name}_tube_offset": jnp.zeros( + f"{name}_tube_offset_z": jnp.zeros( (data.num_replicate, data.num_condition_pre), dtype=float), } for i in range(num_classes): @@ -442,7 +454,8 @@ def get_guesses(name: str, data: GrowthData, f"{name}_wt_loc": float(estimates["wt_loc"]), f"{name}_tube_scale": float(tube_scale_est), f"{name}_offset_geno": jnp.array(offset_geno, dtype=float), - f"{name}_tube_offset": jnp.array(tube_offset_est, dtype=float), + f"{name}_tube_offset_z": jnp.array(tube_offset_est / tube_scale_est, + dtype=float), } for i in range(len(class_masks)): guesses[f"{name}_hyper_loc_{i}"] = float(estimates["hyper_locs"][i]) diff --git a/src/tfscreen/tfmodel/inference/convergence.py b/src/tfscreen/tfmodel/inference/convergence.py index 3370daec..07435bb9 100644 --- a/src/tfscreen/tfmodel/inference/convergence.py +++ b/src/tfscreen/tfmodel/inference/convergence.py @@ -117,10 +117,19 @@ # windows with rare large penalties reach 17-150. MAX_LOSS_SKEW = 3.0 +# A window whose loss (block median) falls below -RUNAWAY_LOSS_FACTOR times +# the magnitude of the run's first block median is a runaway: the posterior +# density is unbounded along some direction (a hierarchical scale collapsing +# onto its offsets), so there is no optimum to converge to. A full-covariance +# guide on a centred tube offset reached -8e23 from +4e4 and was called +# converged (planning/studies/svi-overconfidence/, 2026-09-28). +RUNAWAY_LOSS_FACTOR = 1e3 + # Convergence decisions returned by ConvergenceMonitor.end_window. CONTINUE = "continue" CUT = "cut" CONVERGED = "converged" +DIVERGED = "diverged" def _line_fit(y, t): @@ -401,6 +410,10 @@ def __init__(self, self.plateau_count = 0 self.num_cuts = 0 self.converged = False + self.diverged = False + # |loss| at the start of the run (first block median), the scale + # for the runaway check. + self.reference_loss = None self.last = None # loss_trend results of the current run of stalled windows, for the # pooled check before a cut or a stop. @@ -448,6 +461,15 @@ def end_window(self, step, loss_stats, param_excess=None, param_drift=None): param_excess = dict(param_excess or {}) param_drift = dict(param_drift or {}) + if self.reference_loss is None: + medians = loss_stats.get("medians") + start = (float(np.asarray(medians)[0]) + if medians is not None and np.size(medians) + else float(loss_stats["level"])) + self.reference_loss = abs(start) + runaway = (float(loss_stats["level"]) + < -RUNAWAY_LOSS_FACTOR * max(self.reference_loss, 1.0)) + loss_improving = self.loss_improving(loss_stats) worst_param, worst_excess = None, 0.0 @@ -490,7 +512,10 @@ def end_window(self, step, loss_stats, param_excess=None, param_drift=None): decision = CONTINUE step_size = self.step_size - if self.plateau_count >= self.patience: + if runaway: + decision = DIVERGED + self.diverged = True + elif self.plateau_count >= self.patience: if at_floor: decision = CONVERGED self.converged = True @@ -559,6 +584,8 @@ def state_dict(self): "plateau_count": self.plateau_count, "num_cuts": self.num_cuts, "converged": self.converged, + "diverged": self.diverged, + "reference_loss": self.reference_loss, "last": self.last, "stalls": [{"medians": w["medians"].tolist(), "width": w["width"]} for w in self._stalls]} @@ -573,6 +600,8 @@ def load_state_dict(self, state): self.plateau_count = int(state.get("plateau_count", 0)) self.num_cuts = int(state.get("num_cuts", 0)) self.converged = bool(state.get("converged", False)) + self.diverged = bool(state.get("diverged", False)) + self.reference_loss = state.get("reference_loss") self.last = state.get("last") self._stalls = [{"medians": np.asarray(w["medians"], dtype=float), "width": float(w["width"])} diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index b928bcdd..567eca81 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -693,6 +693,9 @@ def build_scan(): # Final checkpoint before exiting self._write_checkpoint(svi_state, out_prefix) break + if decision == conv.DIVERGED: + self._write_checkpoint(svi_state, out_prefix) + break # Write a final checkpoint when the loop exits by reaching max_num_epochs # (convergence already writes its own checkpoint via the break path above). @@ -705,6 +708,13 @@ def build_scan(): f"{monitor.step_size:.3g}, {monitor.num_cuts} cut(s)): " f"no significant loss improvement, parameter movement " f"or loss skew for {patience} windows.", flush=True) + elif monitor.diverged: + print(f"Stopped at step {self._current_step}: the loss ran " + f"away (below -{conv.RUNAWAY_LOSS_FACTOR:g} x its " + f"starting magnitude {monitor.reference_loss:.4g}), so " + f"the posterior density is unbounded along some " + f"direction and there is no optimum. Not converged. " + f"Last window: {monitor.describe()}", flush=True) else: print(f"Stopped at step {self._current_step} " f"(max_num_epochs) without converging. Last window: " diff --git a/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py b/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py index 4069724c..1defceb2 100644 --- a/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py +++ b/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical_factored.py @@ -166,8 +166,9 @@ def _default_subs(name, data, priors, *, offset_geno=None, tube_offset=None): f"{name}_tube_scale": jnp.array(0.5), f"{name}_offset_geno": offset_geno if offset_geno is not None else jnp.zeros((R, B), dtype=float), - f"{name}_tube_offset": tube_offset if tube_offset is not None - else jnp.zeros((R, C), dtype=float), + # non-centred: tube_offset = tube_scale (0.5) * tube_offset_z + f"{name}_tube_offset_z": tube_offset / 0.5 if tube_offset is not None + else jnp.zeros((R, C), dtype=float), } for i in range(num_classes): subs[f"{name}_hyper_loc_{i}"] = jnp.array(float(guesses[f"{name}_hyper_loc_{i}"])) @@ -262,8 +263,8 @@ def test_get_guesses_offset_geno_shape(mock_data): def test_get_guesses_tube_offset_shape(mock_data): R, C = mock_data.num_replicate, mock_data.num_condition_pre guesses = get_guesses("x", mock_data) - assert f"x_tube_offset" in guesses - assert guesses["x_tube_offset"].shape == (R, C) + assert f"x_tube_offset_z" in guesses + assert guesses["x_tube_offset_z"].shape == (R, C) def test_get_guesses_tube_scale_present(mock_data): @@ -276,7 +277,7 @@ def test_get_guesses_uniform_data_offsets_zero(mock_data): """All genotypes at same ln_cfu → zero offsets and zero tube offsets.""" guesses = get_guesses("x", mock_data) assert jnp.allclose(guesses["x_offset_geno"], 0.0) - assert jnp.allclose(guesses["x_tube_offset"], 0.0) + assert jnp.allclose(guesses["x_tube_offset_z"], 0.0) def test_get_guesses_tube_offset_from_condition_shift(mock_data_varied): @@ -286,7 +287,9 @@ def test_get_guesses_tube_offset_from_condition_shift(mock_data_varied): tube_offset[:, 0] ≈ −0.25 (median-centred within each replicate). """ guesses = get_guesses("x", mock_data_varied) - tube_offset = np.array(guesses["x_tube_offset"]) # (R, C) + # non-centred: offset = tube_scale * z + tube_offset = (np.array(guesses["x_tube_offset_z"]) + * float(guesses["x_tube_scale"])) # (R, C) # The two conditions differ by exactly 0.5; after centering on the # per-genotype median, their residuals are ±0.25. @@ -393,7 +396,7 @@ def test_define_model_offset_geno_zero_gives_hyper_loc_plus_tube(mock_data): f"{name}_wt_loc": jnp.array(12.0), f"{name}_tube_scale": jnp.array(0.5), f"{name}_offset_geno": jnp.zeros((R, B)), - f"{name}_tube_offset": known_tube, + f"{name}_tube_offset_z": known_tube / 0.5, } model = substitute(define_model, data=subs) @@ -513,7 +516,7 @@ def test_define_model_two_classes_separate_locs(mock_data_two_classes): f"{name}_wt_loc": jnp.array(13.0), f"{name}_tube_scale": jnp.array(0.5), f"{name}_offset_geno": jnp.zeros((R, B)), - f"{name}_tube_offset": jnp.zeros((R, C)), + f"{name}_tube_offset_z": jnp.zeros((R, C)), } tr = trace(substitute(define_model, data=subs)).get_trace( @@ -569,9 +572,9 @@ def test_guide_tube_offset_param_shape(mock_data): with seed(rng_seed=0): tr = trace(guide).get_trace(name=name, data=mock_data, priors=priors) - assert f"{name}_tube_offset_locs" in tr - assert tr[f"{name}_tube_offset_locs"]["value"].shape == (R, C) - assert tr[f"{name}_tube_offset_scales"]["value"].shape == (R, C) + assert f"{name}_tube_offset_z_locs" in tr + assert tr[f"{name}_tube_offset_z_locs"]["value"].shape == (R, C) + assert tr[f"{name}_tube_offset_z_scales"]["value"].shape == (R, C) def test_guide_has_tube_scale_sample_site(mock_data): @@ -607,7 +610,7 @@ def test_guide_tube_offset_sample_shape(mock_data): with seed(rng_seed=0): tr = trace(guide).get_trace(name=name, data=mock_data, priors=priors) - assert tr[f"{name}_tube_offset"]["value"].shape == (R, C) + assert tr[f"{name}_tube_offset_z"]["value"].shape == (R, C) def test_guide_two_classes_has_per_class_params(mock_data_two_classes): @@ -722,7 +725,7 @@ def test_guide_pinned_drops_variational_params(mock_data): # Other sites intact assert f"{name}_tube_scale" in tr assert f"{name}_offset_geno" in tr - assert f"{name}_tube_offset" in tr + assert f"{name}_tube_offset_z" in tr def test_model_and_guide_compatible_under_pinning(mock_data): @@ -749,3 +752,26 @@ def test_model_and_guide_compatible_under_pinning(mock_data): f"model only: {model_samples - guide_samples}\n" f"guide only: {guide_samples - model_samples}" ) + + +def test_tube_offset_density_bounded_as_scale_collapses(mock_data): + """ + With the tube offsets at 0 the joint density stays bounded as tube_scale + goes to 0 (non-centred). The centred form Normal(0, tube_scale) grew + like tube_scale^-(R*C) there, so no MAP existed. + """ + from numpyro.infer.util import log_density + + name = "x" + priors = get_priors() + R, C = mock_data.num_replicate, mock_data.num_condition_pre + + def log_p(scale): + subs = _default_subs(name, mock_data, priors) + subs[f"{name}_tube_scale"] = jnp.array(scale) + subs[f"{name}_tube_offset_z"] = jnp.zeros((R, C)) + lp, _ = log_density(define_model, (), + dict(name=name, data=mock_data, priors=priors), subs) + return float(lp) + + assert log_p(1e-8) - log_p(1e-2) < 1.0 diff --git a/tests/tfscreen/tfmodel/inference/test_convergence.py b/tests/tfscreen/tfmodel/inference/test_convergence.py index 3f7d8a85..eb33ff16 100644 --- a/tests/tfscreen/tfmodel/inference/test_convergence.py +++ b/tests/tfscreen/tfmodel/inference/test_convergence.py @@ -34,7 +34,7 @@ def _feed(monitor, trace, window=WINDOW, param_excess=None): for step, losses in _windows(trace, window): decisions.append(monitor.end_window(step, loss_trend(losses), param_excess)) - if decisions[-1] == conv.CONVERGED: + if decisions[-1] in (conv.CONVERGED, conv.DIVERGED): break return decisions @@ -596,3 +596,42 @@ def test_recorded_count_likelihood_descent_is_not_cut(): m = ConvergenceMonitor(1e-3, 1e-6, patience=3) decisions = _feed(m, trace) assert conv.CUT not in decisions + + +# ----------------------------------------------------------------------------- +# runaway loss +# ----------------------------------------------------------------------------- + +def test_runaway_loss_is_diverged_not_converged(): + """ + A loss that runs off toward -inf (an unbounded posterior density) stops + the run as diverged, where it used to plateau at ~-8e23 and converge. + """ + rng = np.random.default_rng(0) + start = 4e4 + rng.normal(0, 100, WINDOW) + runaway = -8e23 * (1 + 0.1 * rng.normal(size=6 * WINDOW)) + m = ConvergenceMonitor(1e-3, None, patience=3) + decisions = _feed(m, np.concatenate([start, runaway])) + assert decisions[-1] == conv.DIVERGED + assert m.diverged and not m.converged + assert m.reference_loss == pytest.approx(4e4, rel=0.05) + + +def test_negative_but_bounded_loss_is_not_runaway(): + """A loss that settles below zero, far above the runaway line, is fine.""" + rng = np.random.default_rng(1) + trace = np.concatenate([1e4 - np.linspace(0, 1.2e4, 4 * WINDOW), + -2e3 + rng.normal(0, 1, 8 * WINDOW)]) + m = ConvergenceMonitor(1e-3, None, patience=3) + decisions = _feed(m, trace) + assert conv.DIVERGED not in decisions + assert decisions[-1] == conv.CONVERGED + + +def test_reference_loss_survives_checkpoint(): + m = ConvergenceMonitor(1e-3, 1e-6) + m.end_window(WINDOW, loss_trend(np.full(WINDOW, 5e3) + + np.random.default_rng(2).normal(0, 1, WINDOW))) + resumed = ConvergenceMonitor(1e-3, 1e-6) + resumed.load_state_dict(m.state_dict()) + assert resumed.reference_loss == pytest.approx(m.reference_loss) From 722393cf8faaf3c4baa9fea517e3b6eb40c6ebd6 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Mon, 28 Sep 2026 08:51:58 -0700 Subject: [PATCH 065/208] Refuse factored ln_cfu0 across libraries; rerun grids with hierarchical hierarchical_factored shares each genotype's starting abundance across every pre-condition of a replicate. kanR and pheS are transformed and grown up separately, so that is wrong for them: on simulations the fit pushed the per-genotype difference into a confident theta error (95% coverage above 1000 reads 0.09, against 0.80 with hierarchical). - model_orchestrator._check_factored_ln_cfu0 refuses the factored model when a replicate's pre-conditions come from different libraries. - All study templates and the simulate-and-analyze example use ln_cfu0 hierarchical. - Registry-wide and smoke tests exercise the factored model on a one-library copy of the smoke data; unit tests for the guard. - count-likelihood (v4), relative-fit (v3) and svi-overconfidence (v2) set up for cluster reruns, with notes on why. Full suite: 5238 passed, 15 skipped; smoke model tests: 24 passed. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 11 ++++++ CLAUDE.md | 2 +- docs/source/analysis.rst | 10 ++++- examples/simulate-and-analyze/run.sh | 2 +- .../studies/congression-calibration/run.srun | 2 +- planning/studies/count-likelihood/README.md | 18 +++++++-- planning/studies/count-likelihood/run.srun | 2 +- planning/studies/relative-fit/.gitignore | 1 + planning/studies/relative-fit/README.md | 18 +++++++-- planning/studies/relative-fit/run.srun | 2 +- .../studies/svi-overconfidence/.gitignore | 1 + planning/studies/svi-overconfidence/README.md | 20 ++++++++-- planning/studies/svi-overconfidence/run.srun | 2 +- src/tfscreen/tfmodel/model_orchestrator.py | 37 +++++++++++++++++++ .../tfmodel/scripts/configure_model_cli.py | 4 +- tests/smoke-tests/test_model_smoke.py | 13 ++++++- .../tfmodel/inference/test_batch_safety.py | 29 ++++++++++++--- .../tfmodel/inference/test_initialization.py | 3 +- .../tfmodel/test_model_orchestrator.py | 29 +++++++++++++++ 19 files changed, 177 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0290edf..e6f9c4fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,17 @@ fall into two kinds: ### Fixed +- **Breaking: `ln_cfu0: hierarchical_factored` is refused across libraries.** + It shares each genotype's starting abundance across every pre-condition of + a replicate. kanR and pheS are transformed and grown up separately, so + that is wrong for them. On simulations the fit pushed the per-genotype + difference, SD 0.17-0.29 ln units, into a confident per-genotype theta + error: 95% coverage above 1000 reads was 0.09, against 0.80 with + `hierarchical`. The orchestrator now refuses the factored model when a + replicate's pre-conditions come from different libraries. The study grids + and `examples/simulate-and-analyze/run.sh` now use `hierarchical`, and + their earlier calibration numbers carry the mismatch. + - **Breaking: `ln_cfu0: hierarchical_factored` has a non-centered tube offset.** It used to draw `tube_offset ~ Normal(0, tube_scale)` directly. The 4 offsets (replicate x pre-condition) trade against the genotype diff --git a/CLAUDE.md b/CLAUDE.md index 913da67d..65b1b86f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -134,7 +134,7 @@ The hierarchical Bayesian inference engine. Key files: - `dk_geno/`: `fixed`, `hierarchical_geno`, `pinned` - `noise/` (theta observation noise; registry keys `theta_growth_noise`: `zero`/`beta`/`logit_normal`, `theta_binding_noise`: `zero`/`beta`) - `growth_noise/`: `zero`, `normal_kt` - - `ln_cfu0/`: `hierarchical`, `hierarchical_factored` (tube offsets non-centered, `tube_offset = tube_scale * tube_offset_z`: the centered form had an unbounded density as `tube_scale` went to 0, since the 4 offsets trade against the genotype baselines) + - `ln_cfu0/`: `hierarchical` (one starting abundance per replicate x pre-condition x genotype; use this), `hierarchical_factored` (one genotype baseline per replicate shared by every pre-condition, plus a per-tube offset; tube offsets non-centered, `tube_offset = tube_scale * tube_offset_z`, because the centered form had an unbounded density as `tube_scale` went to 0). The orchestrator refuses `hierarchical_factored` when a replicate's pre-conditions come from different libraries (`_check_factored_ln_cfu0`): kanR and pheS are transformed and grown up separately (user, 2026-09-28), so their starting abundances differ per genotype. On simulations the fit pushed that difference into a confident per-genotype theta error: 95% coverage 0.09 above 1000 reads, against 0.80 with `hierarchical` (`planning/studies/svi-overconfidence/`). Every study grid used the factored model until then. - `sample_offset/`: `zero`, `normal` (per-tube growth-rate offset, scaled by elapsed time), `level` (per-tube ln_cfu offset, constant prior) - **`generative/observe/`** — *not* under `components/`, and not swappable via YAML. Holds the four observation-likelihood layers (`binding`, `growth`, `presplit`, `base_growth`), registered under flat `model_registry` keys `observe_binding`/`observe_growth`/`observe_presplit`/`observe_base_growth`. `ModelOrchestrator` wires in `observe_binding` whenever binding data were supplied and (unless `binding_only`) the growth observer chosen by `growth_likelihood` (`lncfu` → `observe_growth`, Student-t on `ln_cfu`; `counts` → `observe_growth_counts`, see **Count likelihood** below), plus `observe_presplit`/`observe_base_growth` only when the corresponding data (`presplit_df`/`base_growth_df`) was supplied — these are parallel, independently-gated observers, not alternative choices for one axis. **Growth-only models** (`binding_df=None`, `tfs-configure-model` without `--binding_df`) have `data.binding = None`, `priors.binding = None`, no `theta_binding_noise` component and no binding sites in the model (`jax_model` gates them on `data.binding is not None`, static structure); the orchestrator refuses a `binding_weight` or a non-`zero` `theta_binding_noise` without binding, and `tfs-prefit-calibration` refuses a growth-only config. Absent prior groups are left out of the priors CSV (`configuration_io._extract_scalars` / `_update_dataclass` skip `None`), so they reload as `None`, not NaN. diff --git a/docs/source/analysis.rst b/docs/source/analysis.rst index 4f3ad0e6..2a8030f5 100644 --- a/docs/source/analysis.rst +++ b/docs/source/analysis.rst @@ -377,8 +377,14 @@ Initial Population (``--ln_cfu0_model``) Models the starting genotype frequencies in each replicate. -* **hierarchical** (default) — shared global prior on ln(CFU\ :sub:`0`) -* **hierarchical_factored** — factored hierarchical prior +* **hierarchical** (default) — shared global prior on ln(CFU\ :sub:`0`), one + starting abundance per replicate, pre-condition and genotype +* **hierarchical_factored** — factored hierarchical prior: one genotype + baseline per replicate, shared by every pre-condition, plus one offset per + tube. Only valid when the pre-conditions are split from one culture. When + they come from separately grown libraries, as kanR and pheS do, each + genotype's starting abundance differs between them and the fit pushes the + difference into its growth rates. The orchestrator refuses it then. Pleiotropic Growth Effect (``--dk_geno_model``) ------------------------------------------------ diff --git a/examples/simulate-and-analyze/run.sh b/examples/simulate-and-analyze/run.sh index a5f7ad0f..744c544d 100644 --- a/examples/simulate-and-analyze/run.sh +++ b/examples/simulate-and-analyze/run.sh @@ -62,7 +62,7 @@ tfs-configure-model \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ --growth_transition_model instant \ - --ln_cfu0_model hierarchical_factored \ + --ln_cfu0_model hierarchical \ --dk_geno_model hierarchical_geno \ --activity_model fixed \ --theta_model hill_mut \ diff --git a/planning/studies/congression-calibration/run.srun b/planning/studies/congression-calibration/run.srun index 8e9cbf42..d7be6a8e 100644 --- a/planning/studies/congression-calibration/run.srun +++ b/planning/studies/congression-calibration/run.srun @@ -117,7 +117,7 @@ tfs-configure-model \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ --growth_transition_model instant \ - --ln_cfu0_model hierarchical_factored \ + --ln_cfu0_model hierarchical \ --dk_geno_model hierarchical_geno \ --activity_model fixed \ --theta_model hill_mut \ diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md index 2c7c9114..d3240ed4 100644 --- a/planning/studies/count-likelihood/README.md +++ b/planning/studies/count-likelihood/README.md @@ -39,14 +39,14 @@ with `--growth_likelihood` and `--sample_offset_model` from the fit arm. On the cluster, from a scratch directory, with this repository checked out: ```bash -tfs-setup-sim-grid grid.yaml --out_prefix count_likelihood -for d in count_likelihood/run_*/; do (cd "$d" && sbatch run.srun); done +tfs-setup-sim-grid grid.yaml --out_prefix count_likelihood_v4 +for d in count_likelihood_v4/run_*/; do (cd "$d" && sbatch run.srun); done ``` When the runs finish: ```bash -tfs-summarize-calibration count_likelihood --out_prefix calib/count_likelihood \ +tfs-summarize-calibration count_likelihood_v4 --out_prefix calib/count_likelihood_v4 \ --baseline likelihood=lncfu sample_offset=zero fit=single \ --facet_by founder_sampling ``` @@ -78,6 +78,18 @@ Second run: commit c65390aa (2026-09-27), results in `count_likelihood_v2/` ## Results +**Fourth run (pending, 2026-09-28): rerun with `ln_cfu0: hierarchical`.** +Every earlier run fit `ln_cfu0: hierarchical_factored`. That model shares each +genotype's starting abundance across the kanR and pheS pre-conditions, +but the simulator (like the real experiment) grows those libraries up +separately. The fit pushed the difference into a confident per-genotype +theta error, which made coverage fall with read depth +(`../svi-overconfidence/`: 95% coverage above 1000 reads 0.09 with the +factored model, 0.80 with `hierarchical`). The earlier runs' absolute +coverage and RMSE carry that mismatch. Their between-arm comparisons were +made under the same handicap. `run.srun` now uses `hierarchical`; outputs go +to `count_likelihood_v4/`. + **Third run (`count_likelihood_v3`, commit 740ebc19, 2026-09-27): the answer.** All 24 runs finished; no NaN, no wrong optimum (run_0012's theta RMSE is 0.035, was 0.51). 16 stopped on the convergence rule. 8 reached diff --git a/planning/studies/count-likelihood/run.srun b/planning/studies/count-likelihood/run.srun index d8c6f22a..e825a1dd 100644 --- a/planning/studies/count-likelihood/run.srun +++ b/planning/studies/count-likelihood/run.srun @@ -129,7 +129,7 @@ tfs-configure-model \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ --growth_transition_model instant \ - --ln_cfu0_model hierarchical_factored \ + --ln_cfu0_model hierarchical \ --dk_geno_model hierarchical_geno \ --activity_model fixed \ --theta_model hill_mut \ diff --git a/planning/studies/relative-fit/.gitignore b/planning/studies/relative-fit/.gitignore index 4697a981..4559a948 100644 --- a/planning/studies/relative-fit/.gitignore +++ b/planning/studies/relative-fit/.gitignore @@ -1,3 +1,4 @@ calib relative_fit relative_fit_v2 +relative_fit_v3 diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index ad5f3d6b..d56bfd7e 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -47,14 +47,14 @@ samples the posterior and summarizes. On the cluster, from a scratch directory, with this repository checked out: ```bash -tfs-setup-sim-grid grid.yaml --out_prefix relative_fit_v2 -for d in relative_fit_v2/run_*/; do (cd "$d" && sbatch run.srun); done +tfs-setup-sim-grid grid.yaml --out_prefix relative_fit_v3 +for d in relative_fit_v3/run_*/; do (cd "$d" && sbatch run.srun); done ``` When the runs finish: ```bash -tfs-summarize-calibration relative_fit_v2 --out_prefix calib/relative_fit_v2 \ +tfs-summarize-calibration relative_fit_v3 --out_prefix calib/relative_fit_v3 \ --baseline fit=joint inference=component --facet_by founder_sampling ``` @@ -106,6 +106,18 @@ not results. ## Results +**Run 3 (pending, 2026-09-28): rerun with `ln_cfu0: hierarchical`.** +Every earlier run fit `ln_cfu0: hierarchical_factored`. That model shares each +genotype's starting abundance across the kanR and pheS pre-conditions, +but the simulator (like the real experiment) grows those libraries up +separately. The fit pushed the difference into a confident per-genotype +theta error, which made coverage fall with read depth +(`../svi-overconfidence/`: 95% coverage above 1000 reads 0.09 with the +factored model, 0.80 with `hierarchical`). The earlier runs' absolute +coverage and RMSE carry that mismatch. Their between-arm comparisons were +made under the same handicap. `run.srun` now uses `hierarchical`; outputs go +to `relative_fit_v3/`. + **Run 1 (2026-09-27): inconclusive; the SVI start is broken.** All 12 runs finished. Three hit the 100,000-epoch cap (0002, 0003, 0004). run_0011's summary came down incomplete, so we regenerated it locally from the run's diff --git a/planning/studies/relative-fit/run.srun b/planning/studies/relative-fit/run.srun index fe1462db..dfc98275 100644 --- a/planning/studies/relative-fit/run.srun +++ b/planning/studies/relative-fit/run.srun @@ -63,7 +63,7 @@ tfs-configure-model \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ --growth_transition_model instant \ - --ln_cfu0_model hierarchical_factored \ + --ln_cfu0_model hierarchical \ --dk_geno_model hierarchical_geno \ --activity_model fixed \ --theta_rescale_model passthrough \ diff --git a/planning/studies/svi-overconfidence/.gitignore b/planning/studies/svi-overconfidence/.gitignore index bd0a30d4..d43ec9ea 100644 --- a/planning/studies/svi-overconfidence/.gitignore +++ b/planning/studies/svi-overconfidence/.gitignore @@ -1,2 +1,3 @@ calib svi_overconfidence +svi_overconfidence_v2 diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index 49d477ed..e1072c9a 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -78,15 +78,15 @@ NUTS changes made for the pilot, kept (2026-09-28): On the cluster, from this directory: ```bash -tfs-setup-sim-grid grid.yaml --out_prefix svi_overconfidence -for d in svi_overconfidence/run_*/; do (cd "$d" && sbatch run.srun); done +tfs-setup-sim-grid grid.yaml --out_prefix svi_overconfidence_v2 +for d in svi_overconfidence_v2/run_*/; do (cd "$d" && sbatch run.srun); done ``` When the runs finish: ```bash -tfs-summarize-calibration svi_overconfidence --out_prefix calib/svi_overconfidence --baseline inference=map -python coverage_by_depth.py svi_overconfidence --out_prefix calib/svi_overconfidence +tfs-summarize-calibration svi_overconfidence_v2 --out_prefix calib/svi_overconfidence_v2 --baseline inference=map +python coverage_by_depth.py svi_overconfidence_v2 --out_prefix calib/svi_overconfidence_v2 ``` ## What to look at @@ -123,6 +123,18 @@ Not yet run on the cluster. ## Results +**Run 2 on the cluster (pending, 2026-09-28): rerun with `ln_cfu0: hierarchical`.** +Every earlier run fit `ln_cfu0: hierarchical_factored`. That model shares each +genotype's starting abundance across the kanR and pheS pre-conditions, +but the simulator (like the real experiment) grows those libraries up +separately. The fit pushed the difference into a confident per-genotype +theta error, which made coverage fall with read depth +(`../svi-overconfidence/`: 95% coverage above 1000 reads 0.09 with the +factored model, 0.80 with `hierarchical`). The earlier runs' absolute +coverage and RMSE carry that mismatch. Their between-arm comparisons were +made under the same handicap. `run.srun` now uses `hierarchical`; outputs go +to `svi_overconfidence_v2/`. + **NUTS pilot (2026-09-28, local, seed 1, relative fit): no usable reference yet.** Every attempt ran at the maximum tree depth (1023 leapfrog steps) with a step size of 1e-6 to 1e-3. Over 500 warmup and 500 diff --git a/planning/studies/svi-overconfidence/run.srun b/planning/studies/svi-overconfidence/run.srun index f3d163f3..9cc85a27 100644 --- a/planning/studies/svi-overconfidence/run.srun +++ b/planning/studies/svi-overconfidence/run.srun @@ -63,7 +63,7 @@ tfs-configure-model \ --presplit_df tfs_sim_presplit.csv \ --condition_growth_model linear \ --growth_transition_model instant \ - --ln_cfu0_model hierarchical_factored \ + --ln_cfu0_model hierarchical \ --dk_geno_model hierarchical_geno \ --activity_model fixed \ --theta_rescale_model passthrough \ diff --git a/src/tfscreen/tfmodel/model_orchestrator.py b/src/tfscreen/tfmodel/model_orchestrator.py index 37e6a202..c6d4d87a 100644 --- a/src/tfscreen/tfmodel/model_orchestrator.py +++ b/src/tfscreen/tfmodel/model_orchestrator.py @@ -852,6 +852,42 @@ def _check_relative_theta(theta, has_binding, activity, theta_rescale, return gauge +def _check_factored_ln_cfu0(ln_cfu0, growth_df): + """ + Refuse ``ln_cfu0: hierarchical_factored`` when it would share a + genotype's starting abundance across separately grown libraries. + + The factored model gives each genotype one baseline per replicate, shared + by every ``condition_pre``, plus one offset per tube. That holds when the + pre-conditions are split from one culture. When a replicate's + pre-conditions come from different libraries (kanR and pheS are + transformed and grown up separately, user 2026-09-28), each genotype's + starting abundance differs between them and the fit pushes the + difference into its growth rates: on simulations with separate libraries + it gave a confident per-genotype theta error, 95% coverage 0.09 above + 1000 reads against 0.80 with ``hierarchical`` + (planning/studies/svi-overconfidence/). Data without a ``library`` + column are not checked. + """ + if ln_cfu0 != "hierarchical_factored" or growth_df is None: + return + if "library" not in growth_df.columns: + return + per_rep = (growth_df[["replicate", "condition_pre", "library"]] + .drop_duplicates() + .groupby("replicate", observed=True)["library"].nunique()) + mixed = per_rep[per_rep > 1] + if len(mixed): + pairs = (growth_df[["condition_pre", "library"]].drop_duplicates() + .astype(str).agg(" from ".join, axis=1).tolist()) + raise ValueError( + "ln_cfu0='hierarchical_factored' shares each genotype's starting " + "abundance across every condition_pre of a replicate, but these " + f"pre-conditions come from different libraries ({', '.join(pairs)}), " + "which are grown up separately. Use ln_cfu0='hierarchical' (one " + "starting abundance per replicate, condition_pre and genotype).") + + def _check_congression_sets(congression_sets): """ Validate ``congression_sets``: a non-empty sequence of non-negative @@ -1215,6 +1251,7 @@ def _initialize_data(self): # the theta (titrant_conc,theta_group) tensor. self.growth_df = _read_growth_df(self._ln_cfu_df, growth_likelihood=self._growth_likelihood) + _check_factored_ln_cfu0(self._ln_cfu0, self.growth_df) self.growth_tm = _build_growth_tm(self.growth_df, self._growth_shares_replicates, growth_likelihood=self._growth_likelihood) diff --git a/src/tfscreen/tfmodel/scripts/configure_model_cli.py b/src/tfscreen/tfmodel/scripts/configure_model_cli.py index 58e5253a..5f61c74a 100644 --- a/src/tfscreen/tfmodel/scripts/configure_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/configure_model_cli.py @@ -206,7 +206,9 @@ def configure_model(binding_df=None, ln_cfu0_model : str, optional Model to use to describe ln_cfu0, the initial populations of genotypes in each replicate. Allowed values are 'hierarchical' (default) or - 'hierarchical_factored'. + 'hierarchical_factored'. The latter shares each genotype's baseline + across pre-conditions and is refused when they come from different + libraries (kanR and pheS are grown up separately). dk_geno_model : str, optional Model to use to describe dk_geno, the pleiotropic effect of a genotype on growth, independent of occupancy. Allowed values are diff --git a/tests/smoke-tests/test_model_smoke.py b/tests/smoke-tests/test_model_smoke.py index 2d44c76d..58b1393c 100644 --- a/tests/smoke-tests/test_model_smoke.py +++ b/tests/smoke-tests/test_model_smoke.py @@ -123,10 +123,19 @@ def test_model_svi_smoke(growth_smoke_csv, initialized and a few steps of optimization can be performed without error. """ out_prefix = os.path.join(tmpdir, "smoke_test") - + + # hierarchical_factored shares a genotype's baseline across condition_pre, + # which the orchestrator refuses when they come from different libraries + # (the smoke data's kanR and pheS): run it on a one-library copy. + growth = growth_smoke_csv + if config.get("ln_cfu0") == "hierarchical_factored": + import pandas as pd + growth = pd.read_csv(growth_smoke_csv) + growth["library"] = "kanR" + # Initialize ModelOrchestrator model = ModelOrchestrator( - growth_df=growth_smoke_csv, + growth_df=growth, binding_df=binding_smoke_csv, batch_size=None, # Use all data for smoke test **config diff --git a/tests/tfscreen/tfmodel/inference/test_batch_safety.py b/tests/tfscreen/tfmodel/inference/test_batch_safety.py index 6aa717c6..86bfd6f5 100644 --- a/tests/tfscreen/tfmodel/inference/test_batch_safety.py +++ b/tests/tfscreen/tfmodel/inference/test_batch_safety.py @@ -183,9 +183,28 @@ def test_equal_length_index_sets_rejected(): } +def _single_library_growth(): + """ + The smoke growth data as one library. hierarchical_factored shares a + genotype's baseline across condition_pre, which the orchestrator refuses + when the pre-conditions come from different libraries (the smoke data's + kanR and pheS), so it is exercised on a one-library copy. + """ + import pandas as pd + df = pd.read_csv(_GROWTH_CSV) + df["library"] = "kanR" + return df + + def _variant_kwargs(axis, variant): - """Constructor arguments for one variant (binding data unless refused).""" - return {"binding_df": _BINDING_CSV, axis: variant, + """ + Constructor arguments for one variant, growth data included (binding + data unless refused). + """ + growth = (_single_library_growth() + if (axis, variant) == ("ln_cfu0", "hierarchical_factored") + else _GROWTH_CSV) + return {"growth_df": growth, "binding_df": _BINDING_CSV, axis: variant, **_VARIANT_KWARGS.get((axis, variant), {})} @@ -202,8 +221,7 @@ def _owned_by(axis, site_name): @pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) def test_component_latents_are_batch_safe(axis, variant): - orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, - batch_size=6, + orchestrator = ModelOrchestrator(batch_size=6, **_variant_kwargs(axis, variant)) found = find_orchestrator_batch_dependent_latents(orchestrator) found = {k: v for k, v in found.items() if _owned_by(axis, k)} @@ -310,8 +328,7 @@ def test_order_check_needs_reorderings(): # beta *growth* theta noise is the documented exception (tested below). @pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) def test_component_predictions_follow_batch_order(axis, variant): - orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, - **_variant_kwargs(axis, variant)) + orchestrator = ModelOrchestrator(**_variant_kwargs(axis, variant)) found = find_orchestrator_batch_order_mismatches(orchestrator) assert found == {}, ( f"{axis}={variant}: predictions do not follow a reordered full " diff --git a/tests/tfscreen/tfmodel/inference/test_initialization.py b/tests/tfscreen/tfmodel/inference/test_initialization.py index a30c3463..18fbde81 100644 --- a/tests/tfscreen/tfmodel/inference/test_initialization.py +++ b/tests/tfscreen/tfmodel/inference/test_initialization.py @@ -160,8 +160,7 @@ def test_site_unconstrained_prior_sds(): @pytest.mark.parametrize("axis,variant", _SAFE_VARIANTS) def test_component_guides_follow_loc_scale_convention(axis, variant): - orchestrator = ModelOrchestrator(growth_df=_GROWTH_CSV, - batch_size=None, + orchestrator = ModelOrchestrator(batch_size=None, **_variant_kwargs(axis, variant)) ri = RunInference(orchestrator, seed=0) mapping, unmatched, _ = component_guide_map(orchestrator.jax_model_guide, diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index b615301f..81293f98 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -2376,3 +2376,32 @@ def _populate_side_effect(target_dataclass, sources): ) assert model_no_base_growth._priors.growth.base_growth is None + + +# --------------------------------------------------------------------------- +# hierarchical_factored ln_cfu0 across libraries +# --------------------------------------------------------------------------- + +def _factored_df(libraries): + """Two pre-conditions per replicate, from the given libraries.""" + return pd.DataFrame({ + "replicate": [1, 1, 2, 2], + "condition_pre": ["kanR-kan", "pheS-4CP"] * 2, + "library": libraries * 2, + }) + + +def test_factored_ln_cfu0_refused_across_libraries(): + from tfscreen.tfmodel.model_orchestrator import _check_factored_ln_cfu0 + with pytest.raises(ValueError, match="different libraries"): + _check_factored_ln_cfu0("hierarchical_factored", + _factored_df(["kanR", "pheS"])) + + +def test_factored_ln_cfu0_allowed_within_one_library(): + from tfscreen.tfmodel.model_orchestrator import _check_factored_ln_cfu0 + _check_factored_ln_cfu0("hierarchical_factored", _factored_df(["kanR", "kanR"])) + # other ln_cfu0 models and data without a library column are not checked + _check_factored_ln_cfu0("hierarchical", _factored_df(["kanR", "pheS"])) + _check_factored_ln_cfu0("hierarchical_factored", + _factored_df(["kanR", "pheS"]).drop(columns="library")) From 5103d40ef5783abf02d8061fcbb78e84573e76b5 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Mon, 28 Sep 2026 16:26:45 -0700 Subject: [PATCH 066/208] Record reruns with ln_cfu0 hierarchical (count-likelihood, relative-fit, SVI) - count_likelihood_v4: counts now beats lncfu on coverage too (theta 95% coverage 0.83/0.84 at RMSE 0.035/0.072, poisson/realistic). - relative_fit_v3: little change on the large low-read library; the low-rank relative fit covers 0.78; the component guide got worse. - svi_overconfidence_v2: theta RMSE halved in the joint fit, but coverage still falls with read depth, tracking the guides' collapse of k/m uncertainty (SVI 5-125 SDs off; Laplace covers 0.95-1.0). Co-Authored-By: Claude Opus 5.5 --- planning/studies/count-likelihood/README.md | 41 ++++++++++++++----- planning/studies/relative-fit/README.md | 35 +++++++++++----- planning/studies/svi-overconfidence/README.md | 41 ++++++++++++++----- 3 files changed, 84 insertions(+), 33 deletions(-) diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md index d3240ed4..899e7da0 100644 --- a/planning/studies/count-likelihood/README.md +++ b/planning/studies/count-likelihood/README.md @@ -78,17 +78,36 @@ Second run: commit c65390aa (2026-09-27), results in `count_likelihood_v2/` ## Results -**Fourth run (pending, 2026-09-28): rerun with `ln_cfu0: hierarchical`.** -Every earlier run fit `ln_cfu0: hierarchical_factored`. That model shares each -genotype's starting abundance across the kanR and pheS pre-conditions, -but the simulator (like the real experiment) grows those libraries up -separately. The fit pushed the difference into a confident per-genotype -theta error, which made coverage fall with read depth -(`../svi-overconfidence/`: 95% coverage above 1000 reads 0.09 with the -factored model, 0.80 with `hierarchical`). The earlier runs' absolute -coverage and RMSE carry that mismatch. Their between-arm comparisons were -made under the same handicap. `run.srun` now uses `hierarchical`; outputs go -to `count_likelihood_v4/`. +**Fourth run (`count_likelihood_v4`, 2026-09-28): `ln_cfu0: hierarchical`.** +All 24 runs finished. This is the first run after the SVI start fix +(`../relative-fit/`) and the ln_cfu0 fix (`../svi-overconfidence/`). Every +earlier run fit `hierarchical_factored`, which shares each genotype's +starting abundance across the separately grown kanR and pheS libraries. + +Pooled theta (test genotypes), mean over 3 seeds, 95% coverage / RMSE, with +the third run's numbers for comparison: + +| noise | fit | v4 | v3 | +|---|---|---|---| +| poisson | lncfu / zero | 0.72 / 0.100 | 0.76 / 0.101 | +| poisson | lncfu / level | 0.74 / 0.100 | 0.56 / 0.100 | +| poisson | counts / level / single | 0.83 / 0.035 | 0.65 / 0.041 | +| poisson | counts / level / mixture | 0.82 / 0.037 | 0.65 / 0.043 | +| realistic | lncfu / zero | 0.83 / 0.109 | 0.82 / 0.113 | +| realistic | lncfu / level | 0.76 / 0.109 | 0.69 / 0.110 | +| realistic | counts / level / single | 0.84 / 0.072 | 0.79 / 0.073 | +| realistic | counts / level / mixture | 0.84 / 0.073 | 0.78 / 0.074 | + +- **Counts now wins on coverage as well as accuracy.** Under Poisson noise + it covers 0.83 against 0.72 for `lncfu`/`zero`, at a third of the RMSE. + Its coverage gain over v3 came from the two fixes. RMSE barely moved. +- **dk_geno:** counts/single covers 0.86 (poisson) and 0.71 (realistic), + against 0.53-0.55 for `lncfu`/`zero`. +- **k and m are still overconfident in every arm:** `growth_m` 95% + coverage is 0-0.58. This is the guides' shared-parameter collapse + (`../svi-overconfidence/`). +- **Lambda at a true 0** is unchanged: 0.019-0.028 (poisson), 0.056-0.063 + (realistic), with intervals that exclude 0. **Third run (`count_likelihood_v3`, commit 740ebc19, 2026-09-27): the answer.** All 24 runs finished; no NaN, no wrong optimum (run_0012's theta diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index d56bfd7e..e28ec57e 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -106,17 +106,30 @@ not results. ## Results -**Run 3 (pending, 2026-09-28): rerun with `ln_cfu0: hierarchical`.** -Every earlier run fit `ln_cfu0: hierarchical_factored`. That model shares each -genotype's starting abundance across the kanR and pheS pre-conditions, -but the simulator (like the real experiment) grows those libraries up -separately. The fit pushed the difference into a confident per-genotype -theta error, which made coverage fall with read depth -(`../svi-overconfidence/`: 95% coverage above 1000 reads 0.09 with the -factored model, 0.80 with `hierarchical`). The earlier runs' absolute -coverage and RMSE carry that mismatch. Their between-arm comparisons were -made under the same handicap. `run.srun` now uses `hierarchical`; outputs go -to `relative_fit_v3/`. +**Run 3 (`relative_fit_v3`, 2026-09-28): `ln_cfu0: hierarchical`.** All +24 runs finished. Theta/X test set, 95% coverage / RMSE, mean over 3 seeds +(run 2 in brackets): + +| noise | arm | run 3 | run 2 | +|---|---|---|---| +| poisson | joint component | 0.36 / 0.071 | 0.43 / 0.068 | +| poisson | relative component | 0.07 / 0.254 | 0.17 / 0.130 | +| poisson | relative low_rank | 0.78 / 0.065 | 0.64 / 0.057 | +| realistic | joint component | 0.61 / 0.094 | 0.58 / 0.097 | +| realistic | relative component | 0.38 / 0.288 | 0.43 / 0.270 | +| realistic | relative low_rank | 0.78 / 0.122 | 0.78 / 0.115 | + +- **This library barely moved, unlike the small one.** Most of its + genotypes are low-read doubles (median 3-5 reads per tube), where the + ln_cfu0 mismatch was never the main error. The low-rank relative fit + gained coverage under Poisson noise (0.64 to 0.78). +- **The relative component guide got worse** (RMSE 0.13 to 0.25 under + Poisson noise). The per-library ln_cfu0 adds free parameters per + genotype, which flattens the m·X ridge the mean-field guide already + slides along. The low-rank guide is unaffected, which keeps the + recommendation. +- **MAP + Laplace:** m covers in every run (1.0). Theta is still unusable + because of the Laplace blowups. **Run 1 (2026-09-27): inconclusive; the SVI start is broken.** All 12 runs finished. Three hit the 100,000-epoch cap (0002, 0003, 0004). run_0011's diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index e1072c9a..b0a9fdf2 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -123,17 +123,36 @@ Not yet run on the cluster. ## Results -**Run 2 on the cluster (pending, 2026-09-28): rerun with `ln_cfu0: hierarchical`.** -Every earlier run fit `ln_cfu0: hierarchical_factored`. That model shares each -genotype's starting abundance across the kanR and pheS pre-conditions, -but the simulator (like the real experiment) grows those libraries up -separately. The fit pushed the difference into a confident per-genotype -theta error, which made coverage fall with read depth -(`../svi-overconfidence/`: 95% coverage above 1000 reads 0.09 with the -factored model, 0.80 with `hierarchical`). The earlier runs' absolute -coverage and RMSE carry that mismatch. Their between-arm comparisons were -made under the same handicap. `run.srun` now uses `hierarchical`; outputs go -to `svi_overconfidence_v2/`. +**Run 2 (`svi_overconfidence_v2`, cluster, 2026-09-28): +`ln_cfu0: hierarchical`.** All 60 runs finished. 95% theta/X coverage by +median reads per tube, mean over 10 seeds (run 1 in brackets): + +| arm | <=5 | 21-100 | 101-1000 | >1000 | RMSE | +|---|---|---|---|---|---| +| joint component | 0.84 (0.78) | 0.81 (0.61) | 0.63 (0.47) | 0.36 (0.30) | 0.029 (0.052) | +| joint low_rank | 0.88 (0.80) | 0.87 (0.65) | 0.75 (0.49) | 0.31 (0.27) | 0.027 (0.053) | +| relative component | 0.86 (0.84) | 0.81 (0.62) | 0.75 (0.43) | 0.55 (0.30) | 0.060 (0.080) | +| relative low_rank | 0.90 (0.88) | 0.81 (0.64) | 0.77 (0.43) | 0.63 (0.29) | 0.057 (0.078) | + +- **The ln_cfu0 fix halved the joint fit's RMSE** and lifted coverage at + every depth. It was less than the seed-1 refit suggested (0.80 above 1000 + reads there, 0.31-0.63 across 10 seeds here). +- **The depth gradient remains, and it tracks k and m.** SVI arms sit a + median 5-125 of their own SDs off truth on k and m (95% coverage + 0-0.25). MAP + Laplace sits at 0.3-0.5 SDs and covers (0.95-1.0). With + the model mismatch gone, what remains is the guides dropping the shared + parameters' uncertainty. It matters most for genotypes whose own counts + are precise. The low-rank guide is closer to its posterior (log-weight SD + 21-22 against 750-780 for the component guide) but still collapses k and + m. +- **MAP + Laplace on theta is still unusable in the relative fit** + (Laplace blowups). In the joint fit it covers 0.53 above 1000 reads, the + best of any arm there. + +Next: carry k and m uncertainty into the per-genotype posteriors. Options: +a guide that pairs the per-condition k and m with the genotype parameters +(block structure), or a two-stage approach that samples k and m from their +Laplace posterior and fits the rest conditionally. **NUTS pilot (2026-09-28, local, seed 1, relative fit): no usable reference yet.** Every attempt ran at the maximum tree depth (1023 From beaab7bb011479eaabf98b9a69fae0d2c2fdb92d Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Mon, 28 Sep 2026 19:46:27 -0700 Subject: [PATCH 067/208] Add a two-stage fit that carries k/m uncertainty to genotypes The SVI guides collapse the uncertainty on the per-condition k and m, so genotypes with precise counts undercover. A Laplace posterior at the MAP covers k and m. The two-stage fit takes Laplace draws of (k, m), refits everything else by SVI at each draw, and pools the conditional posteriors. - linear growth: k_pinned, like m_pinned (conditional fits only). - svi-overconfidence: two_stage.py, a two_stage arm in run.srun, and grid_two_stage.yaml (20 runs on the same simulations as v2). - Local test (seed 1, relative, 2 draws): 95% coverage above 1000 reads 0.91, against 0.60 (component) and 0.79 (low-rank); X RMSE 0.027. Full suite: 5240 passed, 15 skipped. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 9 ++ CLAUDE.md | 2 +- .../studies/svi-overconfidence/.gitignore | 1 + planning/studies/svi-overconfidence/README.md | 42 +++++ .../svi-overconfidence/grid_two_stage.yaml | 88 +++++++++++ planning/studies/svi-overconfidence/run.srun | 18 ++- .../studies/svi-overconfidence/two_stage.py | 147 ++++++++++++++++++ .../generative/components/growth/linear.py | 38 +++-- .../components/growth/test_linear.py | 41 +++++ 9 files changed, 371 insertions(+), 15 deletions(-) create mode 100644 planning/studies/svi-overconfidence/grid_two_stage.yaml create mode 100644 planning/studies/svi-overconfidence/two_stage.py diff --git a/CHANGELOG.md b/CHANGELOG.md index e6f9c4fd..906ed98f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,15 @@ fall into two kinds: ## [Unreleased] +### Added + +- **`linear` growth takes `k_pinned`.** Like `m_pinned`, it holds the + per-condition baseline k at `k_loc` (a deterministic site with no guide + parameters), set by `condition_growth.k_pinned` in the priors CSV. It is + for conditional fits at a fixed draw of k and m, such as the two-stage fit + in `planning/studies/svi-overconfidence/`. It is not meant for production + fits. + ### Fixed - **Breaking: `ln_cfu0: hierarchical_factored` is refused across libraries.** diff --git a/CLAUDE.md b/CLAUDE.md index 65b1b86f..948b7a6a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -197,7 +197,7 @@ Mechanism, spanning three files: Net flow: `configure` (scalar) → `prefit` (per-condition `k_loc` indexed rows + tight scalar `k_scale`) → `fit` (loads per-condition priors that hold the baselines, closing the slide). This is the primary mechanism; the `base_growth_data`/`k_ref` anchor (below) is complementary but insufficient alone because `k_ref` is itself free to slide. -**Hard clamp on `m` (`tfs-prefit-calibration --pin_m`).** A soft Normal prior on the slope `m` — however tight — is only a KL penalty in SVI, and the growth likelihood over many observations can override it (empirically m walked ~5σ off even a 0.0005-scale pin). `linear`'s `ModelPriors.m_pinned` (bool, static) makes `m` a `deterministic` site clamped to its per-condition `m_loc` instead of a sampled site (guide drops the `m` variational params); `--pin_m` sets `condition_growth.m_pinned=1` in the priors CSV. `m` is safe to clamp because its calibration MAP loc is unbiased (dk_geno is uncorrelated with θ). **`k` is intentionally never clamped this way**: it carries real per-experiment tube-noise variance (`tube_noise_sigma`; mirrored by `k_scale_floor`) and sits in the additive k/dk_geno slide, so it keeps a floored soft prior — pin its loc, not its scale. +**Hard clamp on `m` (`tfs-prefit-calibration --pin_m`).** A soft Normal prior on the slope `m` — however tight — is only a KL penalty in SVI, and the growth likelihood over many observations can override it (empirically m walked ~5σ off even a 0.0005-scale pin). `linear`'s `ModelPriors.m_pinned` (bool, static) makes `m` a `deterministic` site clamped to its per-condition `m_loc` instead of a sampled site (guide drops the `m` variational params); `--pin_m` sets `condition_growth.m_pinned=1` in the priors CSV. `m` is safe to clamp because its calibration MAP loc is unbiased (dk_geno is uncorrelated with θ). **`k` is not clamped this way in production fits**: it carries real per-experiment tube-noise variance (`tube_noise_sigma`; mirrored by `k_scale_floor`) and sits in the additive k/dk_geno slide, so it keeps a floored soft prior — pin its loc, not its scale. `ModelPriors.k_pinned` exists for conditional fits at a fixed draw of (k, m): the two-stage fit (`planning/studies/svi-overconfidence/two_stage.py`) refits everything else by SVI at Laplace draws of k and m and pools the conditional posteriors, which carries the k/m uncertainty the guides collapse into each genotype's interval. ### Key Abstractions diff --git a/planning/studies/svi-overconfidence/.gitignore b/planning/studies/svi-overconfidence/.gitignore index d43ec9ea..0983bc24 100644 --- a/planning/studies/svi-overconfidence/.gitignore +++ b/planning/studies/svi-overconfidence/.gitignore @@ -1,3 +1,4 @@ calib svi_overconfidence svi_overconfidence_v2 +svi_overconfidence_two_stage diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index b0a9fdf2..837a75d8 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -307,3 +307,45 @@ configure default, on the same data: Next: rerun this grid (or seed subsets) with `ln_cfu0: hierarchical` to measure what remains, once the ln_cfu0 question is settled for the real protocol. The earlier grids' calibration numbers carry the same mismatch. + +**Two-stage fit (2026-09-28).** The SVI guides collapse the uncertainty on +the per-condition k and m, and Laplace at the MAP covers them. So the +`two_stage` arm ([`two_stage.py`](two_stage.py)) works in two stages: +- **Stage 1.** Fit the MAP and take a Laplace posterior. +- **Stage 2.** Take 10 draws of (k, m) from it. For each, refit everything + else by SVI with k and m pinned at the draw (`linear`'s new `k_pinned` + and the existing `m_pinned`). +- **Pool.** Combine the 10 conditional posteriors with equal weight. With + the draws from p(k, m | y), the pool approximates the marginal posterior + of the genotype parameters, and their intervals carry the k/m + uncertainty. + +Local test, seed 1, relative fit, only 2 draws (same data as v2): + +| | two-stage | v2 component | v2 low_rank | +|---|---|---|---| +| X RMSE | 0.027 | 0.030 | 0.027 | +| 95% coverage, 101-1000 reads | 0.88 | 0.70 | 0.81 | +| 95% coverage, >1000 reads | 0.91 | 0.60 | 0.79 | +| growth_m abs z | 0.2-1.1 | 0.8-7.4 | 0.9-29 | + +With 2 draws growth_k is still 2-19 SDs off; the grid uses 10. Each +conditional fit took about 5 minutes locally. Each conditional SVI fit +ended at its 100,000-epoch cap, because the parameter test reads an +infinite drift on `dk_geno_hyper_loc_scale`. That is a monitor quirk to fix +separately. + +[`grid_two_stage.yaml`](grid_two_stage.yaml): the same simulations as +`grid.yaml` (same seeds), `two_stage` only, 20 runs. On the cluster: + +```bash +tfs-setup-sim-grid grid_two_stage.yaml --out_prefix svi_overconfidence_two_stage +for d in svi_overconfidence_two_stage/run_*/; do (cd "$d" && sbatch run.srun); done +``` + +When they finish, pool and compare with `svi_overconfidence_v2`: + +```bash +tfs-summarize-calibration svi_overconfidence_two_stage --out_prefix calib/svi_overconfidence_two_stage +python coverage_by_depth.py svi_overconfidence_two_stage --out_prefix calib/svi_overconfidence_two_stage +``` diff --git a/planning/studies/svi-overconfidence/grid_two_stage.yaml b/planning/studies/svi-overconfidence/grid_two_stage.yaml new file mode 100644 index 00000000..bafc915f --- /dev/null +++ b/planning/studies/svi-overconfidence/grid_two_stage.yaml @@ -0,0 +1,88 @@ +# --------------------------------------------------------------------------- +# SVI overconfidence, two-stage arm (planning/studies/svi-overconfidence/) +# +# tfs-setup-sim-grid grid_two_stage.yaml --out_prefix svi_overconfidence_two_stage +# for d in svi_overconfidence_two_stage/run_*/; do (cd "$d" && sbatch run.srun); done +# +# The same simulations as grid.yaml (same seeds, noise, library) with one +# inference arm, two_stage: MAP + Laplace, then SVI refits at 10 Laplace +# draws of the per-condition k and m (two_stage.py), pooled. Compare with +# svi_overconfidence_v2, which fit the same data with component, low_rank +# and map. +# +# 10 seeds x 2 fits = 20 runs. +# +# Original grid.yaml header follows. +# +# +# tfs-setup-sim-grid grid.yaml --out_prefix svi_overconfidence +# for d in svi_overconfidence/run_*/; do (cd "$d" && sbatch run.srun); done +# +# Every SVI arm of the relative-fit grid undercovered, worst for the +# best-measured genotypes, with growth_m 10-300 of its own SDs off truth. +# Is that the variational approximation or the model? NUTS gave no reference +# here (tree-depth ceiling, R-hat 3.5; README), so the reference is +# calibration against truth over many simulations: a small library +# (singles and spikes, ~50 genotypes, ~600 latents) fit three ways on the +# same data, in the joint and the relative fit, with a Laplace posterior at +# a converged MAP as the full-covariance comparison. Each SVI run also +# reports how far its guide is from the posterior (guide_diagnostics.py). +# +# Poisson noise only (no founder sampling): the overconfidence was worst +# there, and it keeps the question about the fit. +# +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "seed{{ seed }}__{{ fit }}__{{ inference }}" + +output_file: run.srun + + +simulate: + + - name: noise + variants: + - founder_sampling: false + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + - seed: 3 + - seed: 4 + - seed: 5 + - seed: 6 + - seed: 7 + - seed: 8 + - seed: 9 + - seed: 10 + + +template: + + - name: fit + variants: + - fit: joint + - fit: relative + + - name: inference + variants: + - inference: two_stage + + # copied into the grid's inputs/ and named from each run + - name: scripts + variants: + - diagnostics_script: guide_diagnostics.py + two_stage_script: two_stage.py diff --git a/planning/studies/svi-overconfidence/run.srun b/planning/studies/svi-overconfidence/run.srun index 9cc85a27..437a2819 100644 --- a/planning/studies/svi-overconfidence/run.srun +++ b/planning/studies/svi-overconfidence/run.srun @@ -91,13 +91,15 @@ case "${INFERENCE}" in # needs it converged (a MAP stopped at a fixed step size had 9 negative # Hessian eigenvalues and gave 95% intervals ~1e10 wide) map) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; + # MAP as for map, then two_stage.py: SVI refits at Laplace draws of k, m + two_stage) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; *) echo "unknown inference '${INFERENCE}'" >&2; exit 1 ;; esac echo ">>> Fit model (${INFERENCE})" tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" "${INFERENCE_ARGS[@]}" -if [[ "${INFERENCE}" != "map" ]]; then +if [[ "${INFERENCE}" != "map" && "${INFERENCE}" != "two_stage" ]]; then echo ">>> Guide diagnostics" # diagnostics only; never stops the run python "{{ diagnostics_script }}" tfs_fit_model_checkpoint.pkl \ @@ -105,8 +107,18 @@ if [[ "${INFERENCE}" != "map" ]]; then || echo "guide diagnostics failed" >&2 fi -echo ">>> Sample posterior" -tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl +if [[ "${INFERENCE}" == "two_stage" ]]; then + echo ">>> Laplace posterior (stage 1)" + tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl \ + --out_prefix tfs_laplace + echo ">>> Conditional fits at Laplace draws of k, m (stage 2)" + python "{{ two_stage_script | default('two_stage.py') }}" \ + --laplace_file tfs_laplace.h5 --num_draws 10 --samples_per_draw 1000 \ + --seed "${SEED}" --out_prefix tfs_posterior +else + echo ">>> Sample posterior" + tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl +fi # --------------------------------------------------------------------------- # 4. Extract, predict, summarize diff --git a/planning/studies/svi-overconfidence/two_stage.py b/planning/studies/svi-overconfidence/two_stage.py new file mode 100644 index 00000000..cf9ff911 --- /dev/null +++ b/planning/studies/svi-overconfidence/two_stage.py @@ -0,0 +1,147 @@ +""" +Two-stage fit: carry the per-condition k and m uncertainty into every +genotype's posterior. + +The SVI guides collapse the uncertainty on the shared growth parameters +(k, m sit 5-125 of their own SDs off truth), and genotypes whose own counts +are precise then undercover. A Laplace posterior at the MAP covers k and m. +So: + +1. Stage 1 (done before this script): MAP, then a Laplace posterior + (`tfs-sample-posterior` on the MAP checkpoint), written to + ``--laplace_file``. +2. Stage 2 (this script): take ``--num_draws`` draws of (k, m) from it; for + each, refit everything else by SVI with k and m pinned at the draw + (`linear`'s ``k_pinned``/``m_pinned``), and sample that conditional + posterior. +3. Pool the conditional posteriors with equal weight into one posterior + file (``--out_prefix``.h5, the layout `tfs-sample-posterior` writes), so + `tfs-extract-params`, `tfs-predict-theta` and `tfs-summarize-fit` run on + it unchanged. With the draws from p(k, m | y), the pool approximates the + marginal posterior of everything else. + +Run from a run directory holding ``tfs_configure_config.yaml``: + + python two_stage.py --laplace_file tfs_laplace.h5 --num_draws 10 +""" + +import argparse +import os +import shutil + +import h5py +import numpy as np +import pandas as pd +import yaml + +from tfscreen.tfmodel.configuration_io import read_configuration +from tfscreen.tfmodel.scripts.fit_model_cli import fit_model +from tfscreen.tfmodel.scripts.prefit_calibration_cli import ( + _apply_priors_updates, + _condition_rep_labels, + _csv_row_name, +) +from tfscreen.tfmodel.scripts.sample_posterior_cli import sample_posterior + + +def draw_config(config_file, draw_dir, k, m, cond_labels): + """Config + priors CSV with k and m pinned at one draw; returns the config path.""" + os.makedirs(draw_dir, exist_ok=True) + with open(config_file) as f: + config = yaml.safe_load(f) + base = os.path.dirname(os.path.abspath(config_file)) + + priors_src = os.path.join(base, config["priors_file"]) + priors_dst = os.path.join(draw_dir, "priors.csv") + shutil.copy(priors_src, priors_dst) + _apply_priors_updates(priors_dst, { + _csv_row_name("condition_growth", "k_loc"): np.asarray(k, dtype=float), + _csv_row_name("condition_growth", "m_loc"): np.asarray(m, dtype=float), + _csv_row_name("condition_growth", "k_pinned"): 1.0, + _csv_row_name("condition_growth", "m_pinned"): 1.0, + }, cond_rep_labels=cond_labels) + + # the other sibling files stay where they are + config["priors_file"] = os.path.relpath(priors_dst, draw_dir) + for key in ("guesses_file", "library_file"): + if config.get(key): + config[key] = os.path.relpath(os.path.join(base, config[key]), draw_dir) + out = os.path.join(draw_dir, "config.yaml") + with open(out, "w") as f: + yaml.safe_dump(config, f, sort_keys=False) + return out + + +def pool(files, out_file): + """Concatenate posterior files draw-wise (same keys and trailing shapes).""" + handles = [h5py.File(f, "r") for f in files] + try: + keys = set(handles[0].keys()) + for h in handles[1:]: + keys &= set(h.keys()) + dropped = sorted(set().union(*[set(h.keys()) for h in handles]) - keys) + if dropped: + print(f"pool: sites missing from some draws, left out: {dropped}") + with h5py.File(out_file, "w") as out: + total = 0 + for k in sorted(keys): + arr = np.concatenate([np.asarray(h[k]) for h in handles], axis=0) + out.create_dataset(k, data=arr) + total = arr.shape[0] + out.attrs["num_samples"] = total + out.attrs["two_stage_draws"] = len(files) + finally: + for h in handles: + h.close() + + +def main(): + parser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0]) + parser.add_argument("--config_file", default="tfs_configure_config.yaml") + parser.add_argument("--laplace_file", default="tfs_laplace.h5") + parser.add_argument("--num_draws", type=int, default=10) + parser.add_argument("--samples_per_draw", type=int, default=1000) + parser.add_argument("--guide_type", default="component") + parser.add_argument("--seed", type=int, default=0) + parser.add_argument("--work_dir", default="two_stage") + parser.add_argument("--out_prefix", default="tfs_posterior") + args = parser.parse_args() + + with h5py.File(args.laplace_file, "r") as f: + k_all = np.asarray(f["condition_growth_k"]) + m_all = np.asarray(f["condition_growth_m"]) + rng = np.random.default_rng(args.seed) + idx = rng.choice(len(k_all), size=args.num_draws, replace=False) + + orchestrator, _ = read_configuration(args.config_file) + cond_labels = _condition_rep_labels(orchestrator) + del orchestrator + + records, posteriors = [], [] + for d, i in enumerate(idx): + draw_dir = os.path.join(args.work_dir, f"draw{d:02d}") + k, m = k_all[i], m_all[i] + cfg = draw_config(args.config_file, draw_dir, k, m, cond_labels) + prefix = os.path.join(draw_dir, "fit") + print(f">>> two-stage draw {d + 1}/{args.num_draws}: k={np.round(k, 5)} " + f"m={np.round(m, 5)}", flush=True) + fit_model(cfg, seed=args.seed + 1 + d, out_prefix=prefix, + guide_type=args.guide_type, epoch_checkpoint_interval=None) + post = os.path.join(draw_dir, "posterior") + sample_posterior(cfg, f"{prefix}_checkpoint.pkl", out_prefix=post, + seed=args.seed + 1 + d, + num_posterior_samples=args.samples_per_draw) + posteriors.append(f"{post}.h5") + records.append(dict(draw=d, laplace_index=int(i), + **{f"k_{j}": float(v) for j, v in enumerate(k)}, + **{f"m_{j}": float(v) for j, v in enumerate(m)})) + + pd.DataFrame(records).to_csv(os.path.join(args.work_dir, "draws.csv"), + index=False) + pool(posteriors, f"{args.out_prefix}.h5") + print(f"Pooled {len(posteriors)} conditional posteriors into " + f"{args.out_prefix}.h5", flush=True) + + +if __name__ == "__main__": + main() diff --git a/src/tfscreen/tfmodel/generative/components/growth/linear.py b/src/tfscreen/tfmodel/generative/components/growth/linear.py index 468b64ad..959a54de 100644 --- a/src/tfscreen/tfmodel/generative/components/growth/linear.py +++ b/src/tfscreen/tfmodel/generative/components/growth/linear.py @@ -65,9 +65,14 @@ class ModelPriors: likelihood cannot inflate it away from the calibration-pinned value. A soft Normal prior — however tight — is only a KL penalty in SVI and the likelihood over many observations can override it; this is a hard - clamp. ``k`` is intentionally never clamped this way: it carries real - per-experiment (tube-noise) variance and sits in the additive + clamp. ``k`` is not clamped this way in production fits: it carries + real per-experiment (tube-noise) variance and sits in the additive k/dk_geno slide, so it keeps a floored soft prior. Default ``False``. + k_pinned : bool + When ``True``, ``k`` is clamped to ``k_loc`` the same way. For + conditional fits at a fixed draw of (k, m), such as the two-stage fit + of ``planning/studies/svi-overconfidence/``, not for production. + Default ``False``. """ k_loc: float k_scale: float @@ -77,6 +82,7 @@ class ModelPriors: m_scale_plus: float m_is_selection: tuple = field(pytree_node=False, default=None) m_pinned: bool = field(pytree_node=False, default=False) + k_pinned: bool = field(pytree_node=False, default=False) # --------------------------------------------------------------------------- @@ -174,10 +180,12 @@ def define_model(name: str, m_loc_arr = jnp.broadcast_to(jnp.asarray(priors.m_loc, dtype=float), (num_cr,)) m_pinned = bool(priors.m_pinned) + k_pinned = bool(priors.k_pinned) with pyro.plate(f"{name}_condition_parameters", num_cr) as idx: - growth_k = pyro.sample(f"{name}_k", - dist.Normal(k_loc_arr[idx], k_scale_arr[idx])) + if not k_pinned: + growth_k = pyro.sample(f"{name}_k", + dist.Normal(k_loc_arr[idx], k_scale_arr[idx])) if not m_pinned: growth_m = pyro.sample(f"{name}_m", dist.Normal(m_loc_arr[idx], m_scale_arr[idx])) @@ -187,6 +195,8 @@ def define_model(name: str, # than sampling it. Registered as a site so extraction / posterior # sampling still find "{name}_m". growth_m = pyro.deterministic(f"{name}_m", m_loc_arr) + if k_pinned: + growth_k = pyro.deterministic(f"{name}_k", k_loc_arr) k_pre = growth_k[data.map_condition_pre] m_pre = growth_m[data.map_condition_pre] @@ -206,11 +216,13 @@ def guide(name: str, """ num_cr = data.num_condition_rep m_pinned = bool(priors.m_pinned) - k_locs = pyro.param(f"{name}_k_locs", - jnp.broadcast_to(jnp.asarray(priors.k_loc, dtype=float), (num_cr,))) - k_scales = pyro.param(f"{name}_k_scales", - jnp.broadcast_to(jnp.asarray(priors.k_scale, dtype=float), (num_cr,)), - constraint=dist.constraints.positive) + k_pinned = bool(priors.k_pinned) + if not k_pinned: + k_locs = pyro.param(f"{name}_k_locs", + jnp.broadcast_to(jnp.asarray(priors.k_loc, dtype=float), (num_cr,))) + k_scales = pyro.param(f"{name}_k_scales", + jnp.broadcast_to(jnp.asarray(priors.k_scale, dtype=float), (num_cr,)), + constraint=dist.constraints.positive) if not m_pinned: m_locs = pyro.param(f"{name}_m_locs", jnp.broadcast_to(jnp.asarray(priors.m_loc, dtype=float), (num_cr,))) @@ -219,8 +231,9 @@ def guide(name: str, constraint=dist.constraints.positive) with pyro.plate(f"{name}_condition_parameters", data.num_condition_rep) as idx: - growth_k = pyro.sample(f"{name}_k", - dist.Normal(k_locs[..., idx], k_scales[..., idx])) + if not k_pinned: + growth_k = pyro.sample(f"{name}_k", + dist.Normal(k_locs[..., idx], k_scales[..., idx])) if not m_pinned: growth_m = pyro.sample(f"{name}_m", dist.Normal(m_locs[..., idx], m_scales[..., idx])) @@ -228,6 +241,8 @@ def guide(name: str, if m_pinned: # Clamped in the model (deterministic); no variational site here. growth_m = jnp.broadcast_to(jnp.asarray(priors.m_loc, dtype=float), (num_cr,)) + if k_pinned: + growth_k = jnp.broadcast_to(jnp.asarray(priors.k_loc, dtype=float), (num_cr,)) k_pre = growth_k[data.map_condition_pre] m_pre = growth_m[data.map_condition_pre] @@ -280,6 +295,7 @@ def get_hyperparameters(): parameters["m_scale_minus"] = 0.001 # tight prior for '-' control conditions parameters["m_scale_plus"] = 0.01 # normal prior for '+' selection conditions parameters["m_pinned"] = False # hard-clamp m to m_loc when True + parameters["k_pinned"] = False # hard-clamp k to k_loc when True return parameters diff --git a/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py b/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py index 84de4525..103dbcd2 100644 --- a/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py +++ b/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py @@ -701,3 +701,44 @@ def test_baseline_floor_tight(self): assert bounds["k"]["floor"] <= 0.002 assert bounds["k"]["scale_field"] == "k_scale" assert bounds["m"]["scale_field"] == "m_scale_plus" + + +# --- k_pinned (hard clamp, for conditional fits) --- + +def test_k_and_m_pinned_clamp_both(mock_data): + """With k_pinned and m_pinned, both are deterministic at their locs and + the guide has no variational site for either.""" + name = "pin" + k_loc = jnp.array([0.01, 0.02, 0.03]) + m_loc = jnp.array([0.1, 0.2, 0.3]) + priors = get_priors().replace(k_loc=k_loc, m_loc=m_loc, + k_pinned=True, m_pinned=True) + + with seed(rng_seed=0): + model_trace = trace(define_model).get_trace( + name=name, data=mock_data, priors=priors) + with seed(rng_seed=0): + guide_trace = trace(guide).get_trace( + name=name, data=mock_data, priors=priors) + + assert model_trace[f"{name}_k"]["type"] == "deterministic" + np.testing.assert_allclose(np.asarray(model_trace[f"{name}_k"]["value"]), + np.asarray(k_loc)) + assert f"{name}_k_locs" not in guide_trace + assert f"{name}_k" not in guide_trace + + with seed(rng_seed=0): + params = guide(name=name, data=mock_data, priors=priors) + np.testing.assert_allclose(np.asarray(params.k_sel), + np.asarray(k_loc[mock_data.map_condition_sel])) + + +def test_k_pinned_alone_keeps_m_sampled(mock_data): + name = "pin" + priors = get_priors().replace(k_loc=jnp.array([0.01, 0.02, 0.03]), + k_pinned=True) + with seed(rng_seed=0): + model_trace = trace(define_model).get_trace( + name=name, data=mock_data, priors=priors) + assert model_trace[f"{name}_k"]["type"] == "deterministic" + assert model_trace[f"{name}_m"]["type"] == "sample" From f21e9ccb847adca2bf97b308c7790b50c83b439f Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Mon, 28 Sep 2026 21:13:09 -0700 Subject: [PATCH 068/208] adding gitignore to make sure pilot data does not end up in repo --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 103b692c..8fc8c063 100644 --- a/.gitignore +++ b/.gitignore @@ -209,3 +209,6 @@ __marimo__/ # Local test/lint/coverage output from run_all_tests.sh reports/ docs/badges/ + +# Lab data for development; never committed (C10) +planning/dev-data/ From 9db28286a603b13ad7536db47ca1895b67ebf19c Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Tue, 29 Sep 2026 07:00:45 -0700 Subject: [PATCH 069/208] Unfreeze SVI hyper scales; floor Laplace at prior curvature The component guide's hyperparameter scales are constrained greater_than(1e-4), and the guide start capped every scale at guide_init_scale, also 1e-4. They started on the bound, -inf in unconstrained space, and never moved: every component-guide SVI fit since 2026-09-27 kept each hyperparameter's guide SD at 1e-4. The convergence monitor saw an infinite drift, so conditional fits ran to their cap. component_guide_init now starts a bounded scale at least init_scale above its bound (component_guide_map records the bound). get_laplace_posteriors floored Hessian eigenvalues at 1e-3. A MAP stopped at its epoch cap always has a few negative eigenvalues, and where they touched the growth slopes the Laplace draws of m spread 50x (two-stage grid, seed 8: SD 0.018). Eigenvalues are now floored at the prior's curvature along each eigenvector (laplace_eigenvalue_floor), so no direction is wider than the prior; seed 8's m SD is 0.0005. SVI-overconfidence study: two-stage grid results in the README; two_stage.py records each conditional fit's final loss and takes --max_num_epochs; run.srun gains a two_stage_low_rank arm and a 12 h limit; grid_fix.yaml reruns the joint fit on seeds 1, 3, 7 and 8 with component, two_stage and two_stage_low_rank. Tests: guide start inside every param's constraint (fails without the fix), bounded-scale start, Laplace floor. tfmodel suite: 3466 passed. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 22 ++++ CLAUDE.md | 4 +- .../studies/svi-overconfidence/.gitignore | 1 + planning/studies/svi-overconfidence/README.md | 87 +++++++++++++ .../studies/svi-overconfidence/grid_fix.yaml | 75 ++++++++++++ planning/studies/svi-overconfidence/run.srun | 21 +++- .../studies/svi-overconfidence/two_stage.py | 28 ++++- .../tfmodel/inference/initialization.py | 28 ++++- .../tfmodel/inference/run_inference.py | 114 +++++++++++++++++- .../tfmodel/inference/test_initialization.py | 43 +++++++ .../tfmodel/inference/test_run_inference.py | 47 ++++++++ 11 files changed, 449 insertions(+), 21 deletions(-) create mode 100644 planning/studies/svi-overconfidence/grid_fix.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 906ed98f..dbf2728f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,28 @@ fall into two kinds: ### Fixed +- **SVI hyperparameter scales no longer start frozen.** The component + guide's hyperparameter scales are constrained `greater_than(1e-4)`, and + the guide start capped every scale at `guide_init_scale`, also 1e-4. They + started on the bound, `-inf` in unconstrained space, and never moved: in + every component-guide SVI fit since 2026-09-27 each hyperparameter's guide + SD stayed at 1e-4. The convergence monitor reported them as an infinite + drift, so conditional fits never stopped before their cap. + `initialization.component_guide_init` now starts a bounded scale at least + `init_scale` above its bound (`component_guide_map` records the bound). + Study grids fit with the component guide since then (count-likelihood v4, + relative-fit v3, SVI-overconfidence v2 and two-stage) carry the bug. +- **Laplace posteriors no longer blow up along a MAP's negative-curvature + directions.** `get_laplace_posteriors` floored Hessian eigenvalues at + 1e-3, a variance of 1000 in unconstrained units. A MAP stopped short of + its optimum always has a few negative eigenvalues, and where they touched + the growth slopes m the Laplace draws of m spread 50x wider than their + posterior. Eigenvalues are now floored at the prior's curvature along + each eigenvector (`laplace_eigenvalue_floor`, prior SDs from + `site_unconstrained_prior_sds` at the MAP), so no direction is wider than + the prior. On seed 8 of the two-stage grid the SD of m fell from 0.018 to + 0.0005. + - **Breaking: `ln_cfu0: hierarchical_factored` is refused across libraries.** It shares each genotype's starting abundance across every pre-condition of a replicate. kanR and pheS are transformed and grown up separately, so diff --git a/CLAUDE.md b/CLAUDE.md index 948b7a6a..077a5a6a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -181,10 +181,12 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi - **Runaway loss** (`RUNAWAY_LOSS_FACTOR` = 1e3): a window whose loss falls below -1000 times the magnitude of the run's first block median ends the run as `diverged` (not converged; `monitor.diverged`, kept in checkpoints with `reference_loss`). It means the objective is unbounded: a hierarchical density singularity (the old centered `hierarchical_factored` tube offset), or float32 error in a dense guide's own log density (`auto_multivariate_normal` on the small SVI-overconfidence library, where `log q` of its own draws reached -4e22 through an ill-conditioned `scale_tril`). - **Records**: `{out_prefix}_convergence.csv` (one row per window: loss (median), drop ± SE, t, `loss_mean`/`loss_skew`/`loss_skewed`, worst param and its excess/drift, step size, plateau count, decision; a resume rewrites an older file under the current columns, `_migrate_convergence_columns`); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). -**Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (`fit_model_cli.DEFAULT_GUIDE_INIT_SCALE`, 1e-4; also the autoguides' `init_scale` for a fresh fit). The scale is one number in every site's unconstrained units, so it must be small: at the old 0.1 (numpyro's autoguide default) an SD of 0.1 on a growth rate per minute is 17 ln units over a selection, SVI started ~1000x above the pre-MAP's loss and re-descended into other optima (mirror mode, halved m, the library shifted against wt; relative-fit grid, 2026-09-27). SVI widens the scales itself (about e-fold per 1000 steps at step size 1e-3). `init_param_jitter` defaults to 0 for the same reason (it is multiplicative, so 0.1 moves an ln_cfu0 location near 15 by ~1.5 ln units). `test_default_guide_start_stays_near_its_point` checks the start on a count model; a fit's first logged SVI loss should sit near its pre-MAP loss. `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. +**Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (`fit_model_cli.DEFAULT_GUIDE_INIT_SCALE`, 1e-4; also the autoguides' `init_scale` for a fresh fit). A scale param with a lower-bounded constraint (the hyperparameter scales' `greater_than(1e-4)`) starts at least `guide_init_scale` above the bound: starting on it is `-inf` unconstrained, and the param never moves (every hyperparameter scale stayed frozen at 1e-4 from 2026-09-27 to 2026-09-29). The scale is one number in every site's unconstrained units, so it must be small: at the old 0.1 (numpyro's autoguide default) an SD of 0.1 on a growth rate per minute is 17 ln units over a selection, SVI started ~1000x above the pre-MAP's loss and re-descended into other optima (mirror mode, halved m, the library shifted against wt; relative-fit grid, 2026-09-27). SVI widens the scales itself (about e-fold per 1000 steps at step size 1e-3). `init_param_jitter` defaults to 0 for the same reason (it is multiplicative, so 0.1 moves an ln_cfu0 location near 15 by ~1.5 ln units). `test_default_guide_start_stays_near_its_point` checks the start on a count model; a fit's first logged SVI loss should sit near its pre-MAP loss. `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. **MAP values: constrained or not.** AutoDelta's `svi.get_params(state)` (what `run_optimization` returns and `write_params` saves) is *constrained*; `svi.optim.get_params(state.optim_state)` (what `tfs-sample-posterior`, `tfs-extract-params` and `checkpoint_io` read from checkpoints) is *unconstrained*. `compute_hessian_sigmas` takes the former, `get_laplace_posteriors`/`get_map_posteriors`/`_map_params_to_constrained` the latter. Mixing them up silently evaluates positive sites at `exp(value)` (the pre-fit did until 2026-09-27). +**Laplace floor.** `get_laplace_posteriors` floors each Hessian eigenvalue at the prior's curvature along its eigenvector (`laplace_eigenvalue_floor`; prior SDs from `site_unconstrained_prior_sds` with the MAP substituted; `LAPLACE_MIN_EIGENVALUE` = 1e-3 where no prior SD is usable), so no direction of the Laplace is wider than the prior. The old flat 1e-3 floor turned a MAP's negative eigenvalues (a hierarchical MAP stopped at its epoch cap always has a few) into variances of 1000 that leaked into whatever they touched: on the two-stage grid the draws of the growth slope m spread 50x (seed 8). + ### Per-condition growth priors The `condition_growth` components (`linear`/`power`/`saturation`) carry a per-condition **additive baseline** (`k` for linear/power, `min` for saturation) that is only jointly identified with the shared per-genotype `dk_geno`: the growth likelihood `g = k_condition + dk_geno + A·m·θ` is invariant to `k += C, dk_geno −= C`. With only weak/rare anchors (wt's pinned `dk_geno=0`, `base_growth`) the whole system slides by a global constant `C`, inflating all condition baselines and `k_ref` and making genotypes with constrained `dk_geno` (notably wt) badly mis-fit their `ln_cfu`. The fix is to pin each condition baseline with a per-condition prior — a prior on the 4 baseline params acts at full strength, unlike the abundance-diluted genotype anchors. diff --git a/planning/studies/svi-overconfidence/.gitignore b/planning/studies/svi-overconfidence/.gitignore index 0983bc24..7d8d0ab4 100644 --- a/planning/studies/svi-overconfidence/.gitignore +++ b/planning/studies/svi-overconfidence/.gitignore @@ -2,3 +2,4 @@ calib svi_overconfidence svi_overconfidence_v2 svi_overconfidence_two_stage +svi_overconfidence_fix diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index 837a75d8..02a1fcee 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -349,3 +349,90 @@ When they finish, pool and compare with `svi_overconfidence_v2`: tfs-summarize-calibration svi_overconfidence_two_stage --out_prefix calib/svi_overconfidence_two_stage python coverage_by_depth.py svi_overconfidence_two_stage --out_prefix calib/svi_overconfidence_two_stage ``` + +### Two-stage grid (2026-09-28) + +`svi_overconfidence_two_stage`: 20 runs, the v2 simulations, 10 Laplace +draws per run. All 20 finished. Pooled with the commands above; compared +with `svi_overconfidence_v2`. + +Theta (joint) or X (relative), mean over 10 seeds: + +| fit | inference | 95% coverage | >1000 reads | 95% width | RMSE | +|---|---|---|---|---|---| +| joint | component | 0.57 | 0.36 | 0.062 | 0.037 | +| joint | low_rank | 0.59 | 0.31 | 0.057 | 0.034 | +| joint | two_stage | 0.86 | 0.81 | 0.136 | 0.046 | +| relative | component | 0.68 | 0.55 | 0.10 | 0.071 | +| relative | low_rank | 0.74 | 0.63 | 0.11 | 0.072 | +| relative | two_stage | 0.94 | 0.97 | 0.52 | 0.071 | + +growth_k and growth_m 95% coverage rose from 0-0.25 under the guides to +0.78-1.0, median |z| 0.4-0.7. dk_geno coverage rose from 0.85-0.86 to +0.92-0.94 and log_hill_K from 0.76-0.88 to 0.91-0.93. + +The averages hide a split by seed. Every MAP hit its 200,000-epoch cap, +and every Laplace Hessian had 2-7 negative eigenvalues, clamped to 1e-3. +Where the clamped directions touch m, the Laplace draws of m spread widely +(seed 8 joint: m for kanR+kan from -0.049 to +0.017, SD 0.018, truth +-0.010), and the conditional fits' final losses differ by thousands of +nats. So the loss range across a run's draws flags a broken Laplace: + +- Joint seeds with a sound Laplace (loss range under 170 nats; seeds 1, 6, + 7, 10): k and m are covered (|z| at most 1.9), but theta above 1000 + reads still covers only 0.44-0.63, and widths stay at 0.04-0.10. +- Joint seeds with a broken Laplace (range 440-7,600 nats): coverage + 0.93-1.0, bought with widths of 0.10-0.30. Seed 8's RMSE tripled + (0.033 to 0.113). +- Relative: coverage above 1000 reads is 0.83-1.0 in every seed, sound + Laplace or not. Seeds 3 and 5 have broken Laplaces and X widths of 2.7 + and 1.2. Seed 2's RMSE of 0.22 matches every other method on that seed. + +Reading: for the relative fit, carrying k and m uncertainty closes the +coverage gap. For the joint fit it does not: with k and m honestly +covered, the conditional fit still undercovers theta at high depth, so +something inside the conditional component-guide fit collapses too. The +Laplace stage is fragile everywhere, because the MAP never converges. + +Each conditional fit again ran to its 100,000-epoch cap on the +`dk_geno_hyper_loc_scale` infinite-drift quirk. + +### Fixes after the two-stage grid, and the fix grid (2026-09-29) + +Two bugs, both fixed in the code: + +- **Frozen hyperparameter scales.** The component guide's hyperparameter + scales are constrained `greater_than(1e-4)`, and the guide start capped + every scale at 1e-4, so they started on the bound, `-inf` unconstrained, + and never moved. Every component-guide SVI fit since 2026-09-27 kept each + hyperparameter's guide SD at 1e-4, v2 and the two-stage grid included. + The conditional fits' "infinite drift" on `dk_geno_hyper_loc_scale` was + this, not a monitor quirk. It may explain part of the joint fit's + undercoverage. +- **Laplace floor.** The 1e-3 eigenvalue floor is now the prior's + curvature along each eigenvector. Rerun locally on the grid's own MAPs, + the Laplace SD of m fell from 0.018 to 0.0005 on seed 8 joint, and m + and k now sit within about 3 SD of truth on seeds 1, 3 and 8 joint and + 3 and 5 relative. The MAPs still stop at the cap with 4-7 negative + eigenvalues. + +`two_stage.py` now records each conditional fit's final loss in +`draws.csv` and prints their span, and takes `--max_num_epochs`. +`run.srun` has a `two_stage_low_rank` arm: the same pipeline with the +low-rank autoguide in the conditional fits. + +[`grid_fix.yaml`](grid_fix.yaml): joint fit, seeds 1 and 7 (sound +Laplace, still undercovered) and 3 and 8 (broken Laplace), each with +`component`, `two_stage` and `two_stage_low_rank`. 12 runs. + +```bash +tfs-setup-sim-grid grid_fix.yaml --out_prefix svi_overconfidence_fix +for d in svi_overconfidence_fix/run_*/; do (cd "$d" && sbatch run.srun); done +``` + +Then: + +```bash +tfs-summarize-calibration svi_overconfidence_fix --out_prefix calib/svi_overconfidence_fix +python coverage_by_depth.py svi_overconfidence_fix --out_prefix calib/svi_overconfidence_fix +``` diff --git a/planning/studies/svi-overconfidence/grid_fix.yaml b/planning/studies/svi-overconfidence/grid_fix.yaml new file mode 100644 index 00000000..c13b9f1f --- /dev/null +++ b/planning/studies/svi-overconfidence/grid_fix.yaml @@ -0,0 +1,75 @@ +# --------------------------------------------------------------------------- +# SVI overconfidence, fix grid (planning/studies/svi-overconfidence/) +# +# tfs-setup-sim-grid grid_fix.yaml --out_prefix svi_overconfidence_fix +# for d in svi_overconfidence_fix/run_*/; do (cd "$d" && sbatch run.srun); done +# +# After the two-stage grid (2026-09-28), with two fixes in the code: +# +# - Laplace eigenvalues are floored at the prior's curvature along each +# eigenvector, not at 1e-3. The flat floor let the MAP's negative +# eigenvalues spread the Laplace draws of m 50x (seeds 3 and 8). +# - Component-guide scales with a greater_than(1e-4) constraint start +# above the bound. They had started on it, -inf unconstrained, and every +# hyperparameter scale stayed frozen at 1e-4 in every SVI fit since +# 2026-09-27 (the conditional fits' "infinite drift"). +# +# Joint fit only, four seeds of grid.yaml: 1 and 7 (sound Laplace, joint +# still undercovered at high depth), 3 and 8 (broken Laplace). +# +# - component: plain SVI, to see what the scale fix alone does +# - two_stage: MAP, floored Laplace, conditional component-guide fits +# - two_stage_low_rank: the same, conditional low-rank autoguide fits +# +# 4 seeds x 3 = 12 runs. Compare with svi_overconfidence_v2 and +# svi_overconfidence_two_stage on the same seeds. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "seed{{ seed }}__{{ fit }}__{{ inference }}" + +output_file: run.srun + + +simulate: + + - name: noise + variants: + - founder_sampling: false + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 3 + - seed: 7 + - seed: 8 + + +template: + + - name: fit + variants: + - fit: joint + + - name: inference + variants: + - inference: component + - inference: two_stage + - inference: two_stage_low_rank + + # copied into the grid's inputs/ and named from each run + - name: scripts + variants: + - diagnostics_script: guide_diagnostics.py + two_stage_script: two_stage.py diff --git a/planning/studies/svi-overconfidence/run.srun b/planning/studies/svi-overconfidence/run.srun index 437a2819..1af059ce 100644 --- a/planning/studies/svi-overconfidence/run.srun +++ b/planning/studies/svi-overconfidence/run.srun @@ -4,7 +4,7 @@ #SBATCH --output=run.out #SBATCH --error=run.err #SBATCH --partition=gpu -#SBATCH --time=00-06:00:00 +#SBATCH --time=00-12:00:00 #SBATCH --nodes=1 #SBATCH --cpus-per-task=8 #SBATCH --gpus=1 @@ -27,7 +27,8 @@ FIT="{{ fit }}" # noise). grid.yaml runs counts only. LIKELIHOOD="{{ likelihood | default('counts') }}" # component (mean-field component guide), low_rank (low-rank multivariate -# normal autoguide) or map (MAP, then a Laplace posterior) +# normal autoguide), map (MAP, then a Laplace posterior), or two_stage / +# two_stage_low_rank (MAP, Laplace, then conditional SVI refits) INFERENCE="{{ inference | default('component') }}" SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") @@ -92,14 +93,17 @@ case "${INFERENCE}" in # Hessian eigenvalues and gave 95% intervals ~1e10 wide) map) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; # MAP as for map, then two_stage.py: SVI refits at Laplace draws of k, m - two_stage) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; + # with the component guide (two_stage) or the low-rank autoguide + # (two_stage_low_rank) + two_stage|two_stage_low_rank) + INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; *) echo "unknown inference '${INFERENCE}'" >&2; exit 1 ;; esac echo ">>> Fit model (${INFERENCE})" tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" "${INFERENCE_ARGS[@]}" -if [[ "${INFERENCE}" != "map" && "${INFERENCE}" != "two_stage" ]]; then +if [[ "${INFERENCE}" != "map" && "${INFERENCE}" != two_stage* ]]; then echo ">>> Guide diagnostics" # diagnostics only; never stops the run python "{{ diagnostics_script }}" tfs_fit_model_checkpoint.pkl \ @@ -107,14 +111,19 @@ if [[ "${INFERENCE}" != "map" && "${INFERENCE}" != "two_stage" ]]; then || echo "guide diagnostics failed" >&2 fi -if [[ "${INFERENCE}" == "two_stage" ]]; then +if [[ "${INFERENCE}" == two_stage* ]]; then + if [[ "${INFERENCE}" == "two_stage_low_rank" ]]; then + GUIDE=auto_low_rank_multivariate_normal + else + GUIDE=component + fi echo ">>> Laplace posterior (stage 1)" tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl \ --out_prefix tfs_laplace echo ">>> Conditional fits at Laplace draws of k, m (stage 2)" python "{{ two_stage_script | default('two_stage.py') }}" \ --laplace_file tfs_laplace.h5 --num_draws 10 --samples_per_draw 1000 \ - --seed "${SEED}" --out_prefix tfs_posterior + --seed "${SEED}" --guide_type "${GUIDE}" --out_prefix tfs_posterior else echo ">>> Sample posterior" tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl diff --git a/planning/studies/svi-overconfidence/two_stage.py b/planning/studies/svi-overconfidence/two_stage.py index cf9ff911..4c425351 100644 --- a/planning/studies/svi-overconfidence/two_stage.py +++ b/planning/studies/svi-overconfidence/two_stage.py @@ -72,6 +72,15 @@ def draw_config(config_file, draw_dir, k, m, cond_labels): return out +def final_loss(prefix): + """Last logged loss (block median) of a fit, or NaN.""" + try: + lines = open(f"{prefix}_losses.txt").read().strip().splitlines() + return float(lines[-1].split(",")[1]) + except (OSError, IndexError, ValueError): + return float("nan") + + def pool(files, out_file): """Concatenate posterior files draw-wise (same keys and trailing shapes).""" handles = [h5py.File(f, "r") for f in files] @@ -105,6 +114,9 @@ def main(): parser.add_argument("--seed", type=int, default=0) parser.add_argument("--work_dir", default="two_stage") parser.add_argument("--out_prefix", default="tfs_posterior") + parser.add_argument("--max_num_epochs", type=int, default=None, + help="cap on each conditional fit (default: " + "tfs-fit-model's)") args = parser.parse_args() with h5py.File(args.laplace_file, "r") as f: @@ -125,19 +137,29 @@ def main(): prefix = os.path.join(draw_dir, "fit") print(f">>> two-stage draw {d + 1}/{args.num_draws}: k={np.round(k, 5)} " f"m={np.round(m, 5)}", flush=True) + fit_kwargs = {} + if args.max_num_epochs is not None: + fit_kwargs["max_num_epochs"] = args.max_num_epochs fit_model(cfg, seed=args.seed + 1 + d, out_prefix=prefix, - guide_type=args.guide_type, epoch_checkpoint_interval=None) + guide_type=args.guide_type, epoch_checkpoint_interval=None, + **fit_kwargs) post = os.path.join(draw_dir, "posterior") sample_posterior(cfg, f"{prefix}_checkpoint.pkl", out_prefix=post, seed=args.seed + 1 + d, num_posterior_samples=args.samples_per_draw) posteriors.append(f"{post}.h5") records.append(dict(draw=d, laplace_index=int(i), + final_loss=final_loss(prefix), **{f"k_{j}": float(v) for j, v in enumerate(k)}, **{f"m_{j}": float(v) for j, v in enumerate(m)})) - pd.DataFrame(records).to_csv(os.path.join(args.work_dir, "draws.csv"), - index=False) + draws = pd.DataFrame(records) + draws.to_csv(os.path.join(args.work_dir, "draws.csv"), index=False) + spread = draws["final_loss"].max() - draws["final_loss"].min() + print(f"Conditional fits' final losses span {spread:.0f} nats " + f"(min {draws['final_loss'].min():.0f}). A span of hundreds to " + f"thousands of nats flags Laplace draws of k, m far outside their " + f"posterior (two-stage grid, 2026-09-28).", flush=True) pool(posteriors, f"{args.out_prefix}.h5") print(f"Pooled {len(posteriors)} conditional posteriors into " f"{args.out_prefix}.h5", flush=True) diff --git a/src/tfscreen/tfmodel/inference/initialization.py b/src/tfscreen/tfmodel/inference/initialization.py index 7b04c3e4..e683e3fb 100644 --- a/src/tfscreen/tfmodel/inference/initialization.py +++ b/src/tfscreen/tfmodel/inference/initialization.py @@ -105,7 +105,9 @@ def component_guide_map(guide, priors, data, seed=0): ------- mapping : dict ``{site: {"kind": "normal"|"lognormal", "loc": param name, - "scale": param name or None, "shape": site shape}}``. + "scale": param name or None, "shape": site shape, + "scale_lower_bound": the scale param's constraint lower bound or + None}}``. unmatched : list of str Guide sample sites whose location parameter could not be identified (not Normal/LogNormal, or not following the naming convention). @@ -117,6 +119,14 @@ def component_guide_map(guide, priors, data, seed=0): data=data) params = {name: site["value"] for name, site in tr.items() if site["type"] == "param"} + lower_bounds = {} + for name, site in tr.items(): + if site["type"] != "param": + continue + bound = getattr(site.get("kwargs", {}).get("constraint"), + "lower_bound", None) + if bound is not None: + lower_bounds[name] = bound mapping = {} unmatched = [] @@ -141,7 +151,8 @@ def component_guide_map(guide, priors, data, seed=0): scale = _matching_param(name, ("_scale", "_scales"), params, jnp.asarray(fn.scale), shape) mapping[name] = {"kind": kind, "loc": loc, "scale": scale, - "shape": shape} + "shape": shape, + "scale_lower_bound": lower_bounds.get(scale)} return mapping, sorted(unmatched), params @@ -217,6 +228,10 @@ def component_guide_init(values, guide_map, defaults, init_scale=None): init_scale : float or None, optional Upper bound for every mapped scale param: each starts at ``min(default, init_scale)``. None leaves scales at their defaults. + A scale whose constraint has a lower bound (``greater_than(1e-4)`` + on the hyperparameter scales) starts at least ``init_scale`` above + that bound: a param starting on its bound is ``-inf`` in + unconstrained space and never moves. Returns ------- @@ -243,9 +258,12 @@ def component_guide_init(values, guide_map, defaults, init_scale=None): scale = entry["scale"] if init_scale is not None and scale is not None and scale in defaults: - params[scale] = jnp.minimum(jnp.asarray(defaults[scale], - dtype=float), - init_scale) + start = jnp.minimum(jnp.asarray(defaults[scale], dtype=float), + init_scale) + bound = entry.get("scale_lower_bound") + if bound is not None: + start = jnp.maximum(start, jnp.asarray(bound) + init_scale) + params[scale] = start return params, sorted(skipped) diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index 567eca81..a28c46c1 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -38,6 +38,47 @@ trace_model_sites, ) +# Smallest Hessian eigenvalue the Laplace posterior keeps, for elements with +# no usable prior SD (see laplace_eigenvalue_floor). +LAPLACE_MIN_EIGENVALUE = 1e-3 + + +def laplace_eigenvalue_floor(eigenvalues, eigenvectors, prior_precision): + """ + Floor Hessian eigenvalues at the prior's curvature along each eigenvector. + + At an optimum the Hessian of the negative log joint is the prior's + curvature plus the likelihood's, and a log-concave likelihood only adds + to it, so no direction should be flatter than the prior alone. An + eigenvalue below ``v^T diag(prior_precision) v`` (negative ones + included, from a MAP stopped short of its optimum) is raised to it: + the posterior is never wider than the prior along that direction. + + Parameters + ---------- + eigenvalues : numpy.ndarray + Shape ``(D,)``. + eigenvectors : numpy.ndarray + Shape ``(D, D)``, columns are eigenvectors (``numpy.linalg.eigh``). + prior_precision : numpy.ndarray + Shape ``(D,)``, positive prior precision per element. + + Returns + ------- + floored : numpy.ndarray + Eigenvalues, each at least its direction's prior curvature and at + least ``LAPLACE_MIN_EIGENVALUE``. + num_floored : int + How many eigenvalues were raised. + """ + + curvature = np.einsum("ij,i,ij->j", eigenvectors, prior_precision, + eigenvectors) + floor = np.maximum(curvature, LAPLACE_MIN_EIGENVALUE) + floored = np.maximum(eigenvalues, floor) + return floored, int(np.sum(eigenvalues < floor)) + + # The convergence window is split into this many blocks for the parameter # test (each block's parameter mean is accumulated on the device), and the # loop hands control back to the host once per block. @@ -2145,6 +2186,56 @@ def _get_site_names(self,target_sites="deterministic"): return site_names + def _laplace_prior_precision(self, unconstrained, model_kwargs, D): + """ + Prior precision of each flattened unconstrained MAP element. + + The prior SD comes from ``site_unconstrained_prior_sds`` with the MAP + values substituted, so a hierarchical latent's prior is conditional + on the MAP's hyperparameters. Elements without a finite, positive + prior SD get ``LAPLACE_MIN_EIGENVALUE``. Returns a length-``D`` + numpy array in the order of ``ravel_pytree(unconstrained)``. + """ + import jax.flatten_util + from numpyro.distributions.transforms import biject_to + + fallback = np.full(D, LAPLACE_MIN_EIGENVALUE) + try: + sites = trace_model_sites(self.model.jax_model, + model_kwargs["priors"], + model_kwargs["data"]) + constrained = { + k: biject_to(sites[k]["fn"].support)(v) + for k, v in unconstrained.items() if k in sites + } + sites = trace_model_sites(self.model.jax_model, + model_kwargs["priors"], + model_kwargs["data"], + substitutions=constrained) + sds = site_unconstrained_prior_sds(sites) + except Exception as err: # pragma: no cover - defensive + print(f" Could not compute prior SDs for the Laplace floor " + f"({err}); using {LAPLACE_MIN_EIGENVALUE}.", flush=True) + return fallback + + prec = {} + for k, v in unconstrained.items(): + p = np.full(np.shape(v), np.nan) + if k in sds: + try: + p = 1.0 / np.broadcast_to(np.asarray(sds[k], float), + np.shape(v)) ** 2 + except ValueError: + pass + prec[k] = jnp.asarray(p) + flat, _ = jax.flatten_util.ravel_pytree(prec) + flat = np.asarray(flat, dtype=float) + if flat.shape[0] != D: # pragma: no cover - defensive + return fallback + bad = ~np.isfinite(flat) | (flat <= 0) + flat[bad] = LAPLACE_MIN_EIGENVALUE + return flat + def get_laplace_posteriors(self, map_params, out_prefix, @@ -2242,17 +2333,28 @@ def pe_fn(flat_p): # 3. jax.random.multivariate_normal uses Cholesky internally; if the # covariance is not PD the Cholesky fails → NaN samples. # - # Fix: do the eigendecomposition and Cholesky in numpy float64, clamp - # negative eigenvalues to 1e-3 (caps max variance per direction at 1000), - # then sample as mean + L @ z where z ~ N(0,I) in float32. + # Fix: do the eigendecomposition and Cholesky in numpy float64, floor + # each eigenvalue at the prior's curvature along its eigenvector + # (``laplace_eigenvalue_floor``), then sample as mean + L @ z where + # z ~ N(0,I) in float32. The old flat floor of 1e-3 gave a direction + # with a negative eigenvalue a variance of 1000 in unconstrained + # units; a MAP stopped short of its optimum always has a few, and + # where they touched the growth slopes m, Laplace draws of m spread + # 50x wider than its posterior (SVI-overconfidence two-stage grid, + # seed 8: m from -0.049 to +0.017, truth -0.010). print("Projecting Hessian to PD cone and computing Cholesky ...", flush=True) eigenvalues_np, eigenvectors_np = np.linalg.eigh(H_np) n_negative = int(np.sum(eigenvalues_np < 0)) + prior_precision = self._laplace_prior_precision(unconstrained, + model_kwargs, D) + eigenvalues_pd, n_floored = laplace_eigenvalue_floor( + eigenvalues_np, eigenvectors_np, prior_precision) if n_negative > 0: print(f" Warning: {n_negative} negative Hessian eigenvalues " - f"(min={eigenvalues_np.min():.3e}); clamping to 1e-3.", - flush=True) - eigenvalues_pd = np.maximum(eigenvalues_np, 1e-3) + f"(min={eigenvalues_np.min():.3e}); the MAP is not at an " + f"optimum.", flush=True) + print(f" {n_floored} of {D} eigenvalues raised to the prior's " + f"curvature along their eigenvector.", flush=True) cov_np = eigenvectors_np @ np.diag(1.0 / eigenvalues_pd) @ eigenvectors_np.T # Cholesky in float64; cast factor to float32 for the forward pass L_np = np.linalg.cholesky(cov_np) diff --git a/tests/tfscreen/tfmodel/inference/test_initialization.py b/tests/tfscreen/tfmodel/inference/test_initialization.py index 18fbde81..07e077a0 100644 --- a/tests/tfscreen/tfmodel/inference/test_initialization.py +++ b/tests/tfscreen/tfmodel/inference/test_initialization.py @@ -101,6 +101,36 @@ def test_component_guide_init(): assert params == {} +def _bounded_guide(data=None, priors=None): + numpyro.sample("e", dist.Normal( + numpyro.param("e_loc", 0.0), + numpyro.param("e_scale", 1.0, + constraint=dist.constraints.greater_than(1e-4)))) + + +def test_component_guide_init_stays_inside_scale_bound(): + """ + A capped scale never starts on its constraint's lower bound. + + With the cap equal to the bound (both 1e-4 for the hyperparameter + scales), the param started at the bound, -inf in unconstrained space, + and never moved (two-stage grid, 2026-09-29). + """ + from numpyro.distributions.transforms import biject_to + + mapping, _, defaults = component_guide_map(_bounded_guide, None, None) + assert mapping["e"]["scale_lower_bound"] == pytest.approx(1e-4) + params, _ = component_guide_init({}, mapping, defaults, init_scale=1e-4) + assert float(params["e_scale"]) == pytest.approx(2e-4) + u = biject_to(dist.constraints.greater_than(1e-4)).inv(params["e_scale"]) + assert np.isfinite(float(u)) + # unbounded scales are unchanged + mapping, _, defaults = component_guide_map(_guide, None, None) + assert mapping["a"]["scale_lower_bound"] is None + params, _ = component_guide_init({}, mapping, defaults, init_scale=0.2) + assert float(params["a_scale"]) == pytest.approx(0.2) + + def test_site_prior_sds(): sds = site_prior_sds(trace_model_sites(_model, None, None, substitutions={"a": 0.0})) @@ -237,5 +267,18 @@ def excess(scale): return np.median([neg_log_joint(params, k) for k in range(8)]) - at_point assert excess(DEFAULT_GUIDE_INIT_SCALE) < 0.01 * abs(at_point) + + # every guide param starts strictly inside its constraint, so none is + # stuck at -inf in unconstrained space + from numpyro.distributions.transforms import biject_to + guide_trace = trace(seed(orchestrator.jax_model_guide, 0)).get_trace( + data=data, priors=orchestrator.priors) + params = start(DEFAULT_GUIDE_INIT_SCALE) + for name, value in params.items(): + constraint = guide_trace[name]["kwargs"].get("constraint") + if constraint is None: + continue + u = biject_to(constraint).inv(jnp.asarray(value)) + assert np.all(np.isfinite(np.asarray(u))), name # the test can fail: the old default started far from the point assert excess(0.1) > abs(at_point) diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index 8de57a36..96e756fb 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -7,7 +7,9 @@ import numpyro.distributions as dist import h5py from tfscreen.tfmodel.inference.run_inference import ( + LAPLACE_MIN_EIGENVALUE, RunInference, + laplace_eigenvalue_floor, resolve_guide_type, ) import os @@ -1334,3 +1336,48 @@ def test_report_nuts_diagnostics(capsys): out = capsys.readouterr().out assert "max split R-hat" in out and "(bad)" in out assert "inf" not in out + + +# --------------------------------------------------------------------------- +# laplace_eigenvalue_floor +# --------------------------------------------------------------------------- + +def test_laplace_eigenvalue_floor_uses_prior_curvature(): + """A direction flatter than the prior (or negative) gets the prior's curvature.""" + rng = np.random.default_rng(0) + q, _ = np.linalg.qr(rng.normal(size=(3, 3))) + prior_precision = np.array([4.0, 100.0, 1.0]) + curvature = np.einsum("ij,i,ij->j", q, prior_precision, q) + eigenvalues = np.array([-50.0, 1e6, 0.5 * curvature[2]]) + floored, n = laplace_eigenvalue_floor(eigenvalues, q, prior_precision) + assert n == 2 + assert floored[0] == pytest.approx(curvature[0]) + assert floored[1] == pytest.approx(1e6) # well-determined: kept + assert floored[2] == pytest.approx(curvature[2]) + + +def test_laplace_eigenvalue_floor_bounds_leak_into_other_elements(): + """ + A negative eigenvalue no longer inflates every element it touches. + + The old flat floor of 1e-3 gave such a direction a variance of 1000, so + an element with a 3% share of it (the growth slope m, seed 8 of the + two-stage grid) had an SD near 1. + """ + theta = 0.03 + v = np.array([[np.cos(theta), -np.sin(theta)], + [np.sin(theta), np.cos(theta)]]) + eigenvalues = np.array([-10.0, 1e6]) # direction 0 mostly element 0 + prior_precision = np.array([1.0, 1e4]) + floored, _ = laplace_eigenvalue_floor(eigenvalues, v, prior_precision) + cov = v @ np.diag(1.0 / floored) @ v.T + old = v @ np.diag(1.0 / np.maximum(eigenvalues, 1e-3)) @ v.T + assert np.sqrt(old[1, 1]) > 0.5 + assert np.sqrt(cov[1, 1]) < 0.05 + + +def test_laplace_eigenvalue_floor_minimum(): + floored, n = laplace_eigenvalue_floor(np.array([-1.0]), np.eye(1), + np.array([0.0])) + assert floored[0] == pytest.approx(LAPLACE_MIN_EIGENVALUE) + assert n == 1 From 6e2903d5b9015b86c61fa8d34a32a6d3817348bb Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Tue, 29 Sep 2026 10:16:04 -0700 Subject: [PATCH 070/208] Stop clipping simulated binding observations to [0, 1] generate_binding_df and generate_library_binding_df clipped noisy theta_obs to [0, 1], but the fit's binding likelihood is an unclipped Normal, so clipped anchors near 0 and 1 were biased (8-14 of 81 observations per run in the SVI-overconfidence grids). Noise is now unclipped; binding_data.clip_theta_obs: true reproduces old simulations. The random draws are unchanged: regenerating seed 1 changes exactly its 8 clipped binding values. SVI-overconfidence study: fix-grid results in the README. With a sound Laplace the two-stage fit lifts joint coverage above 1000 reads only from 0.37 to 0.46; the low-rank conditional guide adds nothing. The remaining miss is a shared offset: theta_low and theta_high about 0.01 low (z -3) for every well-measured genotype. grid_noclip.yaml reruns the same seeds without clipping. Tests: unclipped by default and opt-in clip, both generators; simulate suite 706 passed. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 8 +++ CLAUDE.md | 2 + .../studies/svi-overconfidence/.gitignore | 1 + planning/studies/svi-overconfidence/README.md | 49 ++++++++++++++ .../svi-overconfidence/grid_noclip.yaml | 65 +++++++++++++++++++ src/tfscreen/simulate/binding_data.py | 10 ++- src/tfscreen/simulate/library_binding_data.py | 15 ++++- src/tfscreen/simulate/scripts/simulate_cli.py | 1 + tests/tfscreen/simulate/test_binding_data.py | 21 ++++++ .../simulate/test_library_binding_data.py | 17 ++++- 10 files changed, 184 insertions(+), 5 deletions(-) create mode 100644 planning/studies/svi-overconfidence/grid_noclip.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index dbf2728f..73c90cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,14 @@ fall into two kinds: ### Fixed +- **Simulated binding observations are no longer clipped to [0, 1].** + `generate_binding_df` and `generate_library_binding_df` clipped noisy + `theta_obs` to [0, 1], while the fit's binding likelihood is an unclipped + Normal, so the clipped anchors near 0 and 1 were biased (10-17% of the + observations in the SVI-overconfidence grids). `binding_data.clip_theta_obs: + true` reproduces the old simulations; the random draws are unchanged, so + only the formerly clipped values differ. + - **SVI hyperparameter scales no longer start frozen.** The component guide's hyperparameter scales are constrained `greater_than(1e-4)`, and the guide start capped every scale at `guide_init_scale`, also 1e-4. They diff --git a/CLAUDE.md b/CLAUDE.md index 077a5a6a..74415ce3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -274,6 +274,8 @@ The optional `binding_data` YAML block configures calibration genotypes for whic - These are regime-matched to the bulk: on the fit side they are simply extra `binding_df` rows and, because they are not spiked, their growth gets the bulk `bulk_fraction` automatically (binding itself is never congressed). No fit-side change. - **Pre/post-sim split** (`simulate/library_binding_data.py::generate_library_binding_df`): the `file` path injects the genotypes' phenotype *pre-sim* (in `library_prediction`, via the same override machinery), but the binding *measurement* — and, for `stratified`/`random`, the *selection* — happen **post-growth-sim** so selection is restricted to genotypes that actually survived with growth data (guaranteeing `num` usable anchors). `file`-specified genotypes that don't survive are **warned** and dropped. `simulate_cli.py` writes the selected set to `tfs_sim_library_binding.csv`. +**Noise** (`binding_data.noise`): Gaussian on `theta_obs`, not clipped to [0, 1] (the fit's binding likelihood is an unclipped Normal; clipped anchors biased the absolute theta scale). `binding_data.clip_theta_obs: true` reproduces simulations made before 2026-09-29. + **Validation** (`library_prediction._validate_binding_config`, fail-fast): `spiked_binding` file genotypes must be ⊆ `spiked_seqs`; `library_binding` file genotypes must be disjoint from `spiked_seqs`; `num` + a file is an error; a file requires a Hill theta component; `spiked_binding.num` ∈ `[1, num_spiked]`; `library_binding` stratified/random requires `num`. **Measured Hill parameters** (a `choose_by` *params file*, either block): diff --git a/planning/studies/svi-overconfidence/.gitignore b/planning/studies/svi-overconfidence/.gitignore index 7d8d0ab4..7cedb76e 100644 --- a/planning/studies/svi-overconfidence/.gitignore +++ b/planning/studies/svi-overconfidence/.gitignore @@ -3,3 +3,4 @@ svi_overconfidence svi_overconfidence_v2 svi_overconfidence_two_stage svi_overconfidence_fix +svi_overconfidence_noclip diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index 02a1fcee..20126ad2 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -436,3 +436,52 @@ Then: tfs-summarize-calibration svi_overconfidence_fix --out_prefix calib/svi_overconfidence_fix python coverage_by_depth.py svi_overconfidence_fix --out_prefix calib/svi_overconfidence_fix ``` + +### Fix grid results, and clipped binding (2026-09-29) + +`svi_overconfidence_fix`, 12 runs, all finished. Joint theta, mean over +seeds 1, 3, 7 and 8: + +| grid | inference | 95% coverage | >1000 reads | 95% width | RMSE | +|---|---|---|---|---|---| +| v2 | component | 0.57 | 0.34 | 0.060 | 0.030 | +| v2 | low_rank | 0.61 | 0.33 | 0.055 | 0.029 | +| two-stage (old Laplace) | two_stage | 0.84 | 0.76 | 0.177 | 0.051 | +| fix | component | 0.61 | 0.37 | 0.061 | 0.029 | +| fix | two_stage | 0.67 | 0.46 | 0.060 | 0.028 | +| fix | two_stage_low_rank | 0.67 | 0.46 | 0.055 | 0.031 | + +- The unfrozen hyperparameter scales barely moved plain SVI (0.34 to 0.37 + above 1000 reads). +- With a sound Laplace, the two-stage fit helps only modestly (0.46). The + old grid's 0.76 came from the broken Laplace's inflated k/m draws. +- The low-rank conditional guide adds nothing. +- growth_k and growth_m cover 0.63-0.69 in two_stage (median |z| 1.7 and + 0.8): the floored Laplace is somewhat narrow, since the MAP still stops + short of its optimum. + +Where the high-depth misses are: in the two_stage runs, every genotype +above 1000 reads, wt included, has theta_low (about 0.99) and theta_high +(about 0.01) about 0.01 low, median z of -3.3 and -3.2, in all four seeds. +log_hill_K, hill_n and dk_geno cover 0.90-0.96. Theta misses are worst at +the plateaus (coverage 0.2 at 0-0.001 and 1 mM) and fine at the +transition (0.82-0.92 at 0.01-0.03 mM). So the remaining undercoverage is +a shared offset in the absolute theta scale, which the joint fit takes +from the binding data. The relative fit, with no binding, covers. + +One candidate: the simulator clipped noisy binding observations to [0, 1] +(8-14 of 81 per run), while the fit's binding likelihood is an unclipped +Normal. Clipping near 1 pulls the high plateau down, which fits +theta_low's bias, but clipping near 0 would pull theta_high up, not down, +so it may not be the whole story. `tfs-simulate` no longer clips +(`binding_data.clip_theta_obs`, default false); regenerated with it, +seed 1's binding table differs in exactly its 8 clipped rows and the +growth data match to round-off. + +[`grid_noclip.yaml`](grid_noclip.yaml): the same 4 seeds, component and +two_stage, 8 runs. + +```bash +tfs-setup-sim-grid grid_noclip.yaml --out_prefix svi_overconfidence_noclip +for d in svi_overconfidence_noclip/run_*/; do (cd "$d" && sbatch run.srun); done +``` diff --git a/planning/studies/svi-overconfidence/grid_noclip.yaml b/planning/studies/svi-overconfidence/grid_noclip.yaml new file mode 100644 index 00000000..13cbda04 --- /dev/null +++ b/planning/studies/svi-overconfidence/grid_noclip.yaml @@ -0,0 +1,65 @@ +# --------------------------------------------------------------------------- +# SVI overconfidence, unclipped-binding grid (planning/studies/svi-overconfidence/) +# +# tfs-setup-sim-grid grid_noclip.yaml --out_prefix svi_overconfidence_noclip +# for d in svi_overconfidence_noclip/run_*/; do (cd "$d" && sbatch run.srun); done +# +# The fix grid (2026-09-29) left the joint fit undercovering at high depth +# (0.37-0.46 above 1000 reads) with k and m covered. Every well-measured +# genotype, wt included, had theta_low (about 0.99) and theta_high (about +# 0.01) about 0.01 low, 3 posterior SDs. The simulator clipped noisy binding +# observations to [0, 1] (10-17% of them), while the fit's binding +# likelihood is an unclipped Normal. tfs-simulate no longer clips +# (binding_data.clip_theta_obs, default false). Same seeds and random draws +# as grid_fix.yaml: only the clipped binding values change. +# +# 4 seeds x 2 = 8 runs. Compare with svi_overconfidence_fix, run for run. +# --------------------------------------------------------------------------- + +base_config: simulate_config.yaml + +run_name: "seed{{ seed }}__{{ fit }}__{{ inference }}" + +output_file: run.srun + + +simulate: + + - name: noise + variants: + - founder_sampling: false + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 3 + - seed: 7 + - seed: 8 + + +template: + + - name: fit + variants: + - fit: joint + + - name: inference + variants: + - inference: component + - inference: two_stage + + # copied into the grid's inputs/ and named from each run + - name: scripts + variants: + - diagnostics_script: guide_diagnostics.py + two_stage_script: two_stage.py diff --git a/src/tfscreen/simulate/binding_data.py b/src/tfscreen/simulate/binding_data.py index eea1b89f..b96b6808 100644 --- a/src/tfscreen/simulate/binding_data.py +++ b/src/tfscreen/simulate/binding_data.py @@ -33,6 +33,10 @@ def generate_binding_df(binding_cfg, rng, binding_theta_df): titrant_name: str, name of the titrant (e.g. 'iptg') titrant_conc: list of concentrations (mM) noise : float, sigma for Gaussian noise on theta_obs (default 0) + clip_theta_obs : bool, clip noisy theta_obs to [0, 1] (default + False). The fit's binding likelihood is an unclipped + Normal, and clipping biases the anchors near 0 and 1; + True reproduces simulations made before 2026-09-29. An optional ``genotypes`` list restricts the output to those genotypes; when absent (the normal case under the spiked_binding schema) every genotype in ``binding_theta_df`` is emitted. @@ -49,6 +53,7 @@ def generate_binding_df(binding_cfg, rng, binding_theta_df): titrant_name = binding_cfg["titrant_name"] titrant_conc = list(binding_cfg["titrant_conc"]) noise = float(binding_cfg.get("noise", 0.0)) + clip = bool(binding_cfg.get("clip_theta_obs", False)) # Build lookup: (genotype, conc) → theta_true theta_lookup = { @@ -74,7 +79,10 @@ def generate_binding_df(binding_cfg, rng, binding_theta_df): ) theta_true = float(theta_lookup[key]) if noise > 0: - theta_obs = float(np.clip(theta_true + rng.normal(0, noise), 0, 1)) + theta_obs = theta_true + rng.normal(0, noise) + if clip: + theta_obs = np.clip(theta_obs, 0, 1) + theta_obs = float(theta_obs) else: theta_obs = theta_true rows.append({ diff --git a/src/tfscreen/simulate/library_binding_data.py b/src/tfscreen/simulate/library_binding_data.py index 84308dc2..d6d68b6b 100644 --- a/src/tfscreen/simulate/library_binding_data.py +++ b/src/tfscreen/simulate/library_binding_data.py @@ -57,7 +57,8 @@ def generate_library_binding_df(library_binding_cfg, parameters_df, growth_df, spiked_genotypes, - rng): + rng, + clip_theta_obs=False): """ Generate binding-curve data for in-library (bulk) genotypes. @@ -83,6 +84,9 @@ def generate_library_binding_df(library_binding_cfg, spiked_genotypes : iterable of str or None Genotypes that are spiked (excluded from the in-library pool). rng : numpy.random.Generator + clip_theta_obs : bool, optional + Clip noisy ``theta_obs`` to [0, 1] (default False; see + ``binding_data.generate_binding_df``). Returns ------- @@ -151,8 +155,13 @@ def generate_library_binding_df(library_binding_cfg, for gi, g in enumerate(genotypes): for cj, conc in enumerate(titrant_conc): tt = float(theta_true[gi, cj]) - tobs = (float(np.clip(tt + rng.normal(0, noise), 0.0, 1.0)) - if noise > 0 else tt) + if noise > 0: + tobs = tt + rng.normal(0, noise) + if clip_theta_obs: + tobs = np.clip(tobs, 0.0, 1.0) + tobs = float(tobs) + else: + tobs = tt rows.append({"genotype": g, "titrant_name": titrant_name, "titrant_conc": conc, "theta_obs": tobs, "theta_std": noise}) diff --git a/src/tfscreen/simulate/scripts/simulate_cli.py b/src/tfscreen/simulate/scripts/simulate_cli.py index b9bc462c..e8d1b316 100644 --- a/src/tfscreen/simulate/scripts/simulate_cli.py +++ b/src/tfscreen/simulate/scripts/simulate_cli.py @@ -208,6 +208,7 @@ def out_path(name): growth_df, spiked_genotypes=spiked_names, rng=rng, + clip_theta_obs=bool(binding_cfg.get("clip_theta_obs", False)), ) binding_df = pd.concat([binding_df, lib_binding_df], ignore_index=True) lib_manifest.to_csv(out_path("library_binding"), index=False) diff --git a/tests/tfscreen/simulate/test_binding_data.py b/tests/tfscreen/simulate/test_binding_data.py index 6896dc5b..45511f51 100644 --- a/tests/tfscreen/simulate/test_binding_data.py +++ b/tests/tfscreen/simulate/test_binding_data.py @@ -47,3 +47,24 @@ def test_generate_binding_data_missing_genotype_raises(): with pytest.raises(ValueError, match="No pre-computed theta"): generate_binding_df(binding_cfg, rng, binding_theta_df) + + +def test_generate_binding_data_noise_unclipped_by_default(): + """ + Noisy theta_obs is not clipped to [0, 1] unless clip_theta_obs is set. + + The fit's binding likelihood is an unclipped Normal; clipped anchors + near 0 and 1 are biased (SVI-overconfidence fix grid, 2026-09-29). + """ + binding_theta_df = pd.DataFrame( + [{"genotype": "wt", "titrant_conc": c, "theta_true": t} + for c, t in [(0.0, 0.999), (0.1, 0.5), (1.0, 0.001)]]) + cfg = {"titrant_name": "iptg", "titrant_conc": [0.0, 0.1, 1.0], + "noise": 0.3} + obs = [] + for clip in (False, True): + res = generate_binding_df({**cfg, "clip_theta_obs": clip}, + np.random.default_rng(1), binding_theta_df) + obs.append(res["theta_obs"].to_numpy()) + assert ((obs[0] < 0) | (obs[0] > 1)).any() + np.testing.assert_allclose(obs[1], np.clip(obs[0], 0, 1)) diff --git a/tests/tfscreen/simulate/test_library_binding_data.py b/tests/tfscreen/simulate/test_library_binding_data.py index a635a9f7..3b4df6b0 100644 --- a/tests/tfscreen/simulate/test_library_binding_data.py +++ b/tests/tfscreen/simulate/test_library_binding_data.py @@ -114,7 +114,22 @@ def test_noise_sets_theta_std_and_perturbs(params_df): rng=np.random.default_rng(4), ) assert (bdf["theta_std"] == 0.02).all() - assert (bdf["theta_obs"] >= 0.0).all() and (bdf["theta_obs"] <= 1.0).all() + + +def test_noise_is_not_clipped_by_default(params_df): + """Noisy theta_obs may leave [0, 1]; clip_theta_obs restores the old clip.""" + kw = dict(titrant_name="iptg", titrant_conc=CONCS, noise=0.2, + parameters_df=params_df, growth_df=_all_survive(params_df), + spiked_genotypes=["wt"]) + bdf, _ = generate_library_binding_df({"choose_by": "random", "num": 2}, + rng=np.random.default_rng(4), **kw) + assert ((bdf["theta_obs"] < 0) | (bdf["theta_obs"] > 1)).any() + clipped, _ = generate_library_binding_df( + {"choose_by": "random", "num": 2}, rng=np.random.default_rng(4), + clip_theta_obs=True, **kw) + assert (clipped["theta_obs"] >= 0).all() and (clipped["theta_obs"] <= 1).all() + np.testing.assert_allclose(clipped["theta_obs"], + np.clip(bdf["theta_obs"], 0, 1)) # --------------------------------------------------------------------------- From 079680bdc0678a842b0477e89ab0fc142ffd0f9e Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Tue, 29 Sep 2026 18:07:50 -0700 Subject: [PATCH 071/208] Fix ln_cfu0 extraction; sampling flags for full-library fits tfs-extract-params indexed the (replicate, condition_pre, genotype) ln_cfu0 array with map_ln_cfu0, which numbers only the combinations present in the data; wherever a genotype was missing from a block, every later row took another cell's value. Rows are now keyed by array position (hierarchical.ln_cfu0_extract_spec, shared with the factored component). Fits were unaffected. tfs-sample-posterior gains --map_point (write a MAP checkpoint's point, no Laplace; the full Hessian is out of reach at ~2 M parameters) and --skip_growth_observations (leave out growth_pred/growth_obs, 94% of the file on a 300-genotype subset; tfs-predict-growth recomputes growth). read_dataframe reads .csv.gz/.tsv.bz2 by their inner extension. SVI-overconfidence study README: noclip grid, regime split, and the high-plateau diagnosis (open: SVI collapses the high-IPTG plateau of well-measured genotypes; the MAP does not). Tests: ln_cfu0 gap regression (fails without the fix), map_point, skip_growth_observations, compressed reads. 702 passed in the touched suites. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 28 ++++ CLAUDE.md | 2 +- planning/studies/svi-overconfidence/README.md | 133 ++++++++++++++++++ .../components/ln_cfu0/hierarchical.py | 44 +++++- .../ln_cfu0/hierarchical_factored.py | 14 +- .../tfmodel/scripts/sample_posterior_cli.py | 48 ++++++- src/tfscreen/util/io/read_dataframe.py | 7 +- .../components/ln_cfu0/test_hierarchical.py | 52 +++++++ .../scripts/test_sample_posterior_cli.py | 59 +++++++- tests/tfscreen/util/io/test_read_dataframe.py | 15 +- 10 files changed, 381 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73c90cf0..7a10f4c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,22 @@ fall into two kinds: ### Added +- **`tfs-sample-posterior --map_point`** writes a MAP checkpoint's point + itself (one sample, `RunInference.get_map_posteriors`) instead of a + Laplace posterior, whose full Hessian is out of reach on a full library + (about 2 million parameters for the dev-data screen). +- **`tfs-sample-posterior --skip_growth_observations`** leaves the + per-observation growth sites (`growth_pred`, `growth_obs`) out of the + posterior file. They were 94% of its size on a 300-genotype subset and + would be about 100 GB per site at 500 draws on the full library; + `tfs-predict-growth` recomputes growth from the parameter draws. + +- **Compressed tables load by their inner extension.** `read_dataframe` + reads `.csv.gz`, `.tsv.bz2` and the like as CSV or TSV, with pandas + inferring the compression. They used to fall through to the slow + delimiter-sniffing reader. A full-library growth table from + `tfs-process-counts` is 5 GB as CSV and 0.7 GB gzipped. + - **`linear` growth takes `k_pinned`.** Like `m_pinned`, it holds the per-condition baseline k at `k_loc` (a deterministic site with no guide parameters), set by `condition_growth.k_pinned` in the priors CSV. It is @@ -40,6 +56,18 @@ fall into two kinds: ### Fixed +- **`ln_cfu0` extraction labeled rows with other genotypes' values.** The + model holds `ln_cfu0` as a (replicate, condition_pre, genotype) array, but + the extract spec indexed its flattened values with `map_ln_cfu0`, which + numbers only the combinations present in the data. Wherever a genotype + was missing from a replicate or library, every later row took another + cell's value: on an SVI-overconfidence run (2 of 200 cells missing) three + of four blocks correlated 0.09-0.25 with the presplit data they were fit + to, against 0.999 once labeled correctly. Fits were unaffected; the + `*_ln_cfu0.csv` outputs of `tfs-extract-params`, and anything downstream + of them, were wrong. Both `ln_cfu0` components now key rows by array + position (`hierarchical.ln_cfu0_extract_spec`). + - **Simulated binding observations are no longer clipped to [0, 1].** `generate_binding_df` and `generate_library_binding_df` clipped noisy `theta_obs` to [0, 1], while the fit's binding likelihood is an unclipped diff --git a/CLAUDE.md b/CLAUDE.md index 74415ce3..41bbd96b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,7 +48,7 @@ tfs-configure-model # Generate YAML config template (+ library compositio tfs-prefit-calibration # Pre-fit linking function via MAP tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut; --adam_clip_norm opts back into elementwise gradient clipping, off by default) tfs-fit-genotypes # Per-genotype MLE fits of the growth model (no congression correction) -tfs-sample-posterior # Draw posterior samples from fitted model +tfs-sample-posterior # Draw posterior samples from fitted model (--map_point: a MAP checkpoint's point, no Laplace; --skip_growth_observations: leave out growth_pred/growth_obs, most of the file on a large library) tfs-sample-prior # Draw prior predictive samples tfs-extract-params # Extract parameters from checkpoint tfs-predict-growth # Predict growth from fitted model diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index 20126ad2..931f9854 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -485,3 +485,136 @@ two_stage, 8 runs. tfs-setup-sim-grid grid_noclip.yaml --out_prefix svi_overconfidence_noclip for d in svi_overconfidence_noclip/run_*/; do (cd "$d" && sbatch run.srun); done ``` + +### Unclipped-binding grid (2026-09-29) + +`svi_overconfidence_noclip`, seeds 1, 3 and 7 scored (seed 8 still +copying). Clipping is not the cause. Median error of the two plateaus +for genotypes above 1000 reads, clipped (fix grid) against unclipped: + +| seed | inference | high-IPTG plateau | low-IPTG plateau | +|---|---|---|---| +| 1 | component | -0.0102 / -0.0102 | -0.0106 / -0.0100 | +| 1 | two_stage | -0.0095 / -0.0093 | -0.0089 / -0.0109 | +| 3 | component | -0.0066 / -0.0068 | -0.0170 / -0.0132 | +| 3 | two_stage | -0.0055 / -0.0059 | -0.0119 / -0.0089 | +| 7 | component | -0.0087 / -0.0088 | -0.0106 / -0.0097 | +| 7 | two_stage | -0.0076 / -0.0076 | -0.0095 / -0.0090 | + +Unclipped binding stays the simulator default: it matches the fit's +likelihood and real anisotropy-derived theta. + +**Truth-pinned fit** (seed 1, joint, local, k and m pinned at their true +values, component guide, 40,000 steps). The simulator's growth follows +k + dk + m A theta exactly (to 2e-16) and its theta is the Hill truth +(to 1.4e-5), so this is not a simulator-model mismatch. Above 1000 +reads: + +- low-IPTG plateau (theta about 0.99): error -0.003, z -1.1, 95% + coverage 0.85. Its bias came mostly from k and m. +- high-IPTG plateau (theta about 0.01): error -0.010, SD 0.002, z -4.9, + coverage 0.04. It stays biased with k and m exact. +- log_hill_K covers 0.96. + +So the high plateau is a separate problem. Near theta = 0 growth barely +sees theta: with |m| about 0.01 per min, 0.01 of theta is about 0.02 ln +units over a whole selection. Yet the fit reports an SD of 0.002, which +must come from the logit-scale hierarchy (theta_high = sigmoid(logit_low + +logit_delta), pooled across genotypes), not from the data. This is the +saturated regime `in_regime` already treats as model-conditional. + +**Full noclip grid (8 of 8).** Joint theta coverage above 1000 reads: +component 0.39 (fix grid 0.37), two_stage 0.57 (0.46). k and m in +two_stage cover 0.63 and 0.81. + +**Split by true theta** (points above 1000 reads, seeds 1, 3, 7, 8; +saturated = true theta below 0.02 or above 0.98, 46% of the points): + +| regime | grid | inference | 95% coverage | RMSE | +|---|---|---|---|---| +| resolvable | v2 | component | 0.56 | 0.012 | +| resolvable | fix | component | 0.59 | 0.012 | +| resolvable | fix | two_stage | 0.68 | 0.010 | +| resolvable | noclip | component | 0.64 | 0.011 | +| resolvable | noclip | two_stage | 0.80 | 0.009 | +| saturated | v2 | component | 0.09 | 0.014 | +| saturated | fix | two_stage | 0.21 | 0.011 | +| saturated | noclip | component | 0.11 | 0.011 | +| saturated | noclip | two_stage | 0.31 | 0.010 | + +Where growth can see theta, the two-stage fit with the fixes covers +0.80. The saturated plateaus, which growth barely sees, carry the +remaining overconfidence: the logit hierarchy in `hill_geno` gives them +intervals the data do not support. That is the next thing to fix. + +### High-plateau diagnosis (2026-09-29, local, seed 1 joint, k and m pinned at truth) + +All fits component-guide SVI from the same pre-MAP, 40,000 steps, scored +above 1000 reads. The warm-up MAP puts every deep genotype's high-IPTG +plateau near truth (H74S logit -4.19 against a true -4.53); every SVI +variant slides it to about 0.0005 (logit -7 to -8) with too-narrow +intervals: + +| variant | high plateau error | coverage | width | +|---|---|---|---| +| baseline | -0.0102 | 0.31 | 0.0076 | +| Student-t population (df 3) on the plateau offsets | -0.0102 | 0.31 | 0.0077 | +| no per-tube offsets (misspecified: loss 11,000 worse) | -0.0102 | 1.00 | 0.029 | +| count noise held near the MAP by a tight prior | -0.0096 | 0.15 | 0.0065 | + +The fix grid's low-rank conditional guide is also low (-0.0070). + +Profiles of the full log density over one genotype's high plateau, +everything else held fixed: + +- at the MAP: H74S's data pin it near 0.015; pushing it to 0.0001 costs + 61 nats (K84D 31, M42Y 6). +- at the SVI posterior median: flat from 0 to 0.003 and almost the same + shape for all three genotypes, so something shared has changed. + +SVI's shared parameters differ from the MAP's: count overdispersion +`growth_inv_r` 5x larger (0.0005 against 0.0001; about 0 is right for +this Poisson-only simulation), and the per-tube offsets of one condition +shifted by about +0.006 at low IPTG and -0.005 at high IPTG, the size +that absorbs a common shift of about 0.01 in theta. Pinning either one +alone did not remove the slide. + +Ruled out: binding clipping, k and m, the population's tail, the guide +family. Not yet tested: the plateau parameterization itself. On the +logit scale a plateau at 0.0005 has as much prior room as one at 0.01, +and growth, linear in theta, separates them only weakly once the shared +parameters loosen. A plateau parameterized on the theta scale, or +bounded away from 0, would test that. The Student-t option was reverted. + +Further tests, same setup (all SVI, 100,000 steps at a constant step +size unless noted; high plateau error above 1000 reads): + +| variant | high plateau error | coverage | +|---|---|---| +| prior flat in theta for both plateaus (log-Jacobian factor) | +0.0105 | 0.23 | +| constant step size 1e-3, no cuts | -0.0106 | 0.08 | +| + count noise hard-pinned at the MAP values | -0.0102 | 0.04 | +| + binding data 5x more precise (noise 0.005) | -0.0103 | 0.27 | + +- Flat-in-theta prior: the plateaus follow whatever prior they get + (the low plateau went to -0.027), so in the SVI solution they are + prior-dominated; the parameterization is not the cause. +- Constant step size: the loss levels off, so this is SVI's optimum, not + a transient frozen by early step-size cuts. `growth_inv_r` rises to + 0.00098 there, 10x the MAP. +- Precise binding pins the shared level (wt's high plateau 0.0092 against + 0.0100), yet the non-binding genotypes still collapse: H74S, 65,000 + reads, 0.0002 against 0.0107, with its low plateau, K, n and dk_geno all + on truth. So it is per genotype, not a shared shift. + +Found along the way: `tfs-extract-params` mislabeled `ln_cfu0` rows +whenever a genotype was missing from a block (fixed; see CHANGELOG). The +model's own `ln_cfu0` matches the presplit data at 0.999; only the +extraction was wrong. + +Open: SVI's optimum puts the high plateau of well-measured genotypes near +0 while the MAP puts it near truth, and none of prior shape, population +tail, tube offsets, count noise, step size or binding precision changes +that. Next candidates: pin the tube offsets and the noise together at the +MAP, or compare SVI with a reference that needs no guide (importance +reweighting of the Laplace, or NUTS on a smaller library). diff --git a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py index 26431b02..267c79d4 100644 --- a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py +++ b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical.py @@ -716,13 +716,49 @@ def get_priors(data: Optional[GrowthData] = None, return ModelPriors(**params) -def get_extract_specs(ctx): - if "map_ln_cfu0" not in ctx.growth_tm.df.columns: +def ln_cfu0_extract_spec(ctx): + """ + Extraction spec for ``ln_cfu0``, shape (replicate, condition_pre, + genotype) in the model. + + Each row is keyed by its position in that array, computed from the + growth tensor's axis labels. ``map_ln_cfu0`` numbers only the + (replicate, library, condition_pre, genotype) combinations present in + the data, so where a genotype is missing from a replicate or library + its numbers run behind the array's positions, and every later row was + labeled with another genotype's value (all ln_cfu0 outputs before + 2026-09-29 on data with such gaps). + """ + tm = ctx.growth_tm + df = tm.df + if "map_ln_cfu0" not in df.columns: return [] + labels = dict(zip(tm.tensor_dim_names, tm.tensor_dim_labels)) + index = {dim: {str(v): i for i, v in enumerate(labels[dim])} + for dim in ("replicate", "condition_pre", "genotype")} + n_cp = len(labels["condition_pre"]) + n_g = len(labels["genotype"]) + # the growth tensor's condition_pre axis is keyed library/condition_pre + cp = df["condition_pre"].astype(str) + if "library" in df.columns: + cp = df["library"].astype(str) + "/" + cp + rep = df["replicate"].astype(str).map(index["replicate"]) + cp = cp.map(index["condition_pre"]).fillna( + df["condition_pre"].astype(str).map(index["condition_pre"])) + geno = df["genotype"].astype(str).map(index["genotype"]) + if rep.isna().any() or cp.isna().any() or geno.isna().any(): + raise ValueError("ln_cfu0 extraction: growth rows whose replicate, " + "library/condition_pre or genotype is not a label " + "of the growth tensor.") + flat = (rep.astype(int) * n_cp + cp.astype(int)) * n_g + geno.astype(int) return [dict( - input_df=ctx.growth_tm.df, + input_df=df.assign(_ln_cfu0_flat=flat.to_numpy()), params_to_get=["ln_cfu0"], - map_column="map_ln_cfu0", + map_column="_ln_cfu0_flat", get_columns=["replicate", "condition_pre", "genotype"], in_run_prefix="", )] + + +def get_extract_specs(ctx): + return ln_cfu0_extract_spec(ctx) diff --git a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py index 0b82885b..9b818086 100644 --- a/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py +++ b/src/tfscreen/tfmodel/generative/components/ln_cfu0/hierarchical_factored.py @@ -465,12 +465,8 @@ def get_guesses(name: str, data: GrowthData, def get_extract_specs(ctx): - if "map_ln_cfu0" not in ctx.growth_tm.df.columns: - return [] - return [dict( - input_df=ctx.growth_tm.df, - params_to_get=["ln_cfu0"], - map_column="map_ln_cfu0", - get_columns=["replicate", "condition_pre", "genotype"], - in_run_prefix="", - )] + # same array layout as hierarchical; see its ln_cfu0_extract_spec + from tfscreen.tfmodel.generative.components.ln_cfu0.hierarchical import ( + ln_cfu0_extract_spec, + ) + return ln_cfu0_extract_spec(ctx) diff --git a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py index 13fe4eff..af4bf3ab 100644 --- a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py +++ b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py @@ -4,6 +4,19 @@ from tfscreen.tfmodel.inference.run_inference import RunInference from tfscreen.util.cli.generalized_main import generalized_main +# Per-observation growth sites, dropped by skip_growth_observations. +GROWTH_OBSERVATION_SITES = ("growth_pred", "growth_obs") + + +class _AllSitesExcept: + """A ``sites_to_save`` that holds every site name except ``skip``.""" + + def __init__(self, skip): + self.skip = frozenset(skip) + + def __contains__(self, site): + return site not in self.skip + def sample_posterior(config_file, checkpoint_file, @@ -12,7 +25,9 @@ def sample_posterior(config_file, num_posterior_samples=10000, sampling_batch_size=100, forward_batch_size=512, - hessian_chunk_size=64): + hessian_chunk_size=64, + map_point=False, + skip_growth_observations=False): """ Draw posterior samples from an existing MAP, SVI, or NUTS checkpoint. @@ -55,6 +70,19 @@ def sample_posterior(config_file, hessian_chunk_size : int, optional Number of Hessian rows computed per device batch for MAP checkpoints (default 64). Reduce if the Hessian computation hits device OOM. + map_point : bool, optional + For a MAP checkpoint, write the MAP point itself (one sample, no + Hessian) instead of a Laplace posterior (default False). The Laplace + needs the full Hessian, O(D^2) memory, which is out of reach on a + full library (millions of parameters); the point estimate is not. + Ignored for SVI and NUTS checkpoints. + skip_growth_observations : bool, optional + Leave the per-observation growth sites (``growth_pred``, + ``growth_obs``) out of the file (default False). They are most of its + size (94% on a 300-genotype subset; about 100 GB per site at 500 + samples on a 200,000-genotype library), and ``tfs-predict-growth`` + recomputes growth from the parameter samples rather than reading + them. """ if not os.path.isfile(checkpoint_file): raise FileNotFoundError( @@ -71,13 +99,16 @@ def sample_posterior(config_file, # RunInference methods write {out_prefix}_posterior.h5; rename to {out_prefix}.h5 # after each call so the output matches the documented convention. ri_prefix = f"{out_prefix}_tmp_posterior" + sites_to_save = (_AllSitesExcept(GROWTH_OBSERVATION_SITES) + if skip_growth_observations else None) if "mcmc_samples" in chk_data: # NUTS checkpoint: regenerate posteriors from saved samples. print("Detected NUTS checkpoint. Writing posterior predictives...", flush=True) ri.get_nuts_posteriors(chk_data["mcmc_samples"], out_prefix=ri_prefix, - forward_batch_size=forward_batch_size) + forward_batch_size=forward_batch_size, + sites_to_save=sites_to_save) else: # Checkpoints record the guide that wrote them. Older ones do not; # there the only autoguide was AutoDelta (MAP), recognizable by its @@ -91,7 +122,14 @@ def sample_posterior(config_file, else: is_map = False - if is_map: + if is_map and map_point: + print("Detected MAP checkpoint. Writing the MAP point " + "(no Laplace)...", flush=True) + ri.get_map_posteriors(map_params=chk_params, + out_prefix=ri_prefix, + forward_batch_size=forward_batch_size, + sites_to_save=sites_to_save) + elif is_map: # MAP checkpoint: Hessian-based Laplace approximation. print("Detected MAP checkpoint. Drawing Laplace posterior samples...", flush=True) ri.get_laplace_posteriors( @@ -101,6 +139,7 @@ def sample_posterior(config_file, sampling_batch_size=sampling_batch_size, forward_batch_size=forward_batch_size, hessian_chunk_size=hessian_chunk_size, + sites_to_save=sites_to_save, ) else: # SVI checkpoint: rebuild the guide object then restore the saved @@ -114,7 +153,8 @@ def sample_posterior(config_file, out_prefix=ri_prefix, num_posterior_samples=num_posterior_samples, sampling_batch_size=sampling_batch_size, - forward_batch_size=forward_batch_size) + forward_batch_size=forward_batch_size, + sites_to_save=sites_to_save) src = f"{ri_prefix}_posterior.h5" dst = f"{out_prefix}.h5" diff --git a/src/tfscreen/util/io/read_dataframe.py b/src/tfscreen/util/io/read_dataframe.py index 0fc42539..fe0f5e7e 100644 --- a/src/tfscreen/util/io/read_dataframe.py +++ b/src/tfscreen/util/io/read_dataframe.py @@ -46,7 +46,12 @@ def read_dataframe(source, index_column=None): # 1. Handle different source types (path vs. DataFrame) if isinstance(source, str): path = source - ext = path.split(".")[-1].strip().lower() + parts = path.strip().lower().split(".") + # a compressed text table (.csv.gz, .tsv.bz2, ...) is read by its + # inner extension; pandas infers the compression from the path + if len(parts) > 2 and parts[-1] in ("gz", "bz2", "xz", "zst", "zip"): + parts = parts[:-1] + ext = parts[-1] try: if ext in ["xlsx", "xls"]: df = pd.read_excel(path) diff --git a/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py b/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py index 98300e15..b0999d2f 100644 --- a/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py +++ b/tests/tfscreen/tfmodel/generative/components/ln_cfu0/test_hierarchical.py @@ -1497,3 +1497,55 @@ def test_model_and_guide_two_classes_compatible_sample_sites(mock_data_two_class f" model only: {model_samples - guide_samples}\n" f" guide only: {guide_samples - model_samples}" ) + + +def test_extract_spec_keys_rows_by_array_position_with_gaps(): + """ + ln_cfu0 rows are labeled by their position in the (replicate, + condition_pre, genotype) array, even when a genotype is missing from a + replicate. map_ln_cfu0 numbers only the combinations present, so + indexing the array with it shifted every later label (2026-09-29). + """ + from types import SimpleNamespace + import pandas as pd + from tfscreen.tfmodel.analysis.extraction import _extract_param_est + from tfscreen.tfmodel.generative.components.ln_cfu0.hierarchical import ( + ln_cfu0_extract_spec, + ) + + reps, cps, genos = [1, 2], ["kanR/kanR-kan", "pheS/pheS-4CP"], ["wt", "A1B", "C2D"] + rows = [] + for r in reps: + for c in cps: + lib, cond = c.split("/") + for g in genos: + if r == 1 and c == cps[0] and g == "A1B": + continue # the gap + rows.append(dict(replicate=r, library=lib, condition_pre=cond, + genotype=g)) + df = pd.DataFrame(rows) + # map_ln_cfu0 as the tensor manager builds it: consecutive over present rows + df["map_ln_cfu0"] = df.groupby(["replicate", "library", "condition_pre", + "genotype"], sort=False).ngroup() + tm = SimpleNamespace(df=df, + tensor_dim_names=["replicate", "condition_pre", "genotype"], + tensor_dim_labels=[reps, cps, genos]) + spec = ln_cfu0_extract_spec(SimpleNamespace(growth_tm=tm))[0] + + # the model's array: value encodes (replicate, condition_pre, genotype) + arr = np.array([[[100 * i + 10 * j + k for k in range(3)] for j in range(2)] + for i in range(2)], dtype=float) + post = {"ln_cfu0": np.stack([arr, arr])} + out = _extract_param_est(input_df=spec["input_df"], + params_to_get=spec["params_to_get"], + map_column=spec["map_column"], + get_columns=spec["get_columns"], + in_run_prefix=spec["in_run_prefix"], + param_posteriors=post, + q_to_get={"median": 0.5})["ln_cfu0"] + for _, r in out.iterrows(): + i = reps.index(r["replicate"]) + j = [c.split("/")[1] for c in cps].index(r["condition_pre"]) + k = genos.index(r["genotype"]) + assert r["median"] == 100 * i + 10 * j + k + assert len(out) == len(df) diff --git a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py index 7d0b03cb..e5043df6 100644 --- a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py @@ -43,7 +43,8 @@ def _run_nuts(self, tmp_path, ri, forward_batch_size=512): "mcmc_samples": {"activity": np.zeros((10, 4))} } - def fake_nuts_posteriors(samples, out_prefix, forward_batch_size): + def fake_nuts_posteriors(samples, out_prefix, forward_batch_size, + sites_to_save=None): open(h5_src, "w").close() ri.get_nuts_posteriors.side_effect = fake_nuts_posteriors @@ -173,6 +174,62 @@ def test_map_output_file_renamed(self, tmp_path): assert os.path.isfile(str(tmp_path / "out.h5")) + def test_map_point_skips_laplace(self, tmp_path): + """map_point writes the MAP point (no Hessian) for a MAP checkpoint.""" + ri = self._make_map_ri(tmp_path, auto_loc=True) + h5_src = str(tmp_path / "out_tmp_posterior_posterior.h5") + ckpt_path = str(tmp_path / "map.pkl") + open(ckpt_path, "w").close() + + with patch("tfscreen.tfmodel.scripts.sample_posterior_cli.read_configuration", + return_value=(MagicMock(), {})), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.RunInference", + return_value=ri), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.dill") as mock_dill: + + mock_dill.load.return_value = {"svi_state": MagicMock()} + ri.get_map_posteriors.side_effect = lambda **kw: ( + open(h5_src, "w").close() + ) + + from tfscreen.tfmodel.scripts.sample_posterior_cli import sample_posterior + sample_posterior("cfg.yaml", ckpt_path, + out_prefix=str(tmp_path / "out"), map_point=True) + + ri.get_map_posteriors.assert_called_once() + ri.get_laplace_posteriors.assert_not_called() + assert ri.get_map_posteriors.call_args.kwargs["map_params"] == \ + {"global_p_auto_loc": np.array(0.5)} + assert os.path.isfile(str(tmp_path / "out.h5")) + + def test_skip_growth_observations_drops_only_those_sites(self, tmp_path): + """skip_growth_observations passes a sites_to_save without growth_pred/obs.""" + ri = self._make_map_ri(tmp_path, auto_loc=True) + h5_src = str(tmp_path / "out_tmp_posterior_posterior.h5") + ckpt_path = str(tmp_path / "map.pkl") + open(ckpt_path, "w").close() + + with patch("tfscreen.tfmodel.scripts.sample_posterior_cli.read_configuration", + return_value=(MagicMock(), {})), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.RunInference", + return_value=ri), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.dill") as mock_dill: + + mock_dill.load.return_value = {"svi_state": MagicMock()} + ri.get_map_posteriors.side_effect = lambda **kw: ( + open(h5_src, "w").close() + ) + + from tfscreen.tfmodel.scripts.sample_posterior_cli import sample_posterior + sample_posterior("cfg.yaml", ckpt_path, + out_prefix=str(tmp_path / "out"), map_point=True, + skip_growth_observations=True) + + sites = ri.get_map_posteriors.call_args.kwargs["sites_to_save"] + assert "growth_pred" not in sites + assert "growth_obs" not in sites + assert "theta_theta_low" in sites and "ln_cfu0" in sites + def test_map_detection_requires_auto_loc_key(self, tmp_path): """Without '_auto_loc' keys the SVI branch must be taken, not MAP.""" ri = self._make_map_ri(tmp_path, auto_loc=False) # no _auto_loc key diff --git a/tests/tfscreen/util/io/test_read_dataframe.py b/tests/tfscreen/util/io/test_read_dataframe.py index e656c365..45b893a1 100644 --- a/tests/tfscreen/util/io/test_read_dataframe.py +++ b/tests/tfscreen/util/io/test_read_dataframe.py @@ -212,4 +212,17 @@ def test_genotype_as_index_not_categorized(): result = read_dataframe(df, index_column="genotype") assert result.index.name == "genotype" # Index should be plain strings, not categorical (dtype varies: object or StringDtype) - assert not isinstance(result.index.dtype, pd.CategoricalDtype) \ No newline at end of file + assert not isinstance(result.index.dtype, pd.CategoricalDtype) + +def test_read_dataframe_compressed_csv_and_tsv(tmp_path): + """A .csv.gz or .tsv.bz2 is read by its inner extension.""" + import pandas as pd + from tfscreen.util.io.read_dataframe import read_dataframe + + df = pd.DataFrame({"a": [1, 2], "b": [0.5, 1.5]}) + gz = tmp_path / "x.csv.gz" + df.to_csv(gz, index=False) + pd.testing.assert_frame_equal(read_dataframe(str(gz)), df) + bz = tmp_path / "x.tsv.bz2" + df.to_csv(bz, sep="\t", index=False) + pd.testing.assert_frame_equal(read_dataframe(str(bz)), df) From d451faa9026a3237259a9d9bc79734728317784c Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Tue, 29 Sep 2026 20:25:13 -0700 Subject: [PATCH 072/208] Add sigma_fixed to level tube offsets On the first real-data fit the level offsets' SD, learned from a HalfNormal(0.2) prior, grew to 0.53, and the offsets (-2.7 to +3.0, smooth in IPTG and time) carried the population's growth in place of the per-condition k and m, which went unphysical (kanR-kan m -0.068; pheS-4CP k -0.013). sample_offset level now takes sigma_fixed: above 0 the SD is held at that value (a deterministic site, no guide parameters); 0, the default, keeps it learned. Also give test_extract_parameters_full's mock tensor real axis labels, which the ln_cfu0 extraction fix needs. Tests: sigma_fixed held and learned. Full suite 5252 passed, smoke tests pass. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 8 +++++ CLAUDE.md | 2 +- .../components/sample_offset/level.py | 34 ++++++++++++++----- .../components/sample_offset/test_level.py | 27 +++++++++++++++ .../tfmodel/test_model_orchestrator.py | 4 ++- 5 files changed, 64 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a10f4c3..39a5fd0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,14 @@ fall into two kinds: ### Added +- **`sample_offset: level` takes `sigma_fixed`.** Above 0, the SD of the + per-tube offsets is held at that value (a deterministic site, no guide + parameters) instead of learned; set `growth.sample_offset.sigma_fixed` in + the priors CSV. On the first real-data fit the learned SD went from its + 0.2 prior scale to 0.53, and the offsets (-2.7 to +3.0, smooth in IPTG + and time) carried the population's growth in place of k and m. Default 0 + keeps the learned SD. + - **`tfs-sample-posterior --map_point`** writes a MAP checkpoint's point itself (one sample, `RunInference.get_map_posteriors`) instead of a Laplace posterior, whose full Hessian is out of reach on a full library diff --git a/CLAUDE.md b/CLAUDE.md index 41bbd96b..c81ee7ac 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -135,7 +135,7 @@ The hierarchical Bayesian inference engine. Key files: - `noise/` (theta observation noise; registry keys `theta_growth_noise`: `zero`/`beta`/`logit_normal`, `theta_binding_noise`: `zero`/`beta`) - `growth_noise/`: `zero`, `normal_kt` - `ln_cfu0/`: `hierarchical` (one starting abundance per replicate x pre-condition x genotype; use this), `hierarchical_factored` (one genotype baseline per replicate shared by every pre-condition, plus a per-tube offset; tube offsets non-centered, `tube_offset = tube_scale * tube_offset_z`, because the centered form had an unbounded density as `tube_scale` went to 0). The orchestrator refuses `hierarchical_factored` when a replicate's pre-conditions come from different libraries (`_check_factored_ln_cfu0`): kanR and pheS are transformed and grown up separately (user, 2026-09-28), so their starting abundances differ per genotype. On simulations the fit pushed that difference into a confident per-genotype theta error: 95% coverage 0.09 above 1000 reads, against 0.80 with `hierarchical` (`planning/studies/svi-overconfidence/`). Every study grid used the factored model until then. - - `sample_offset/`: `zero`, `normal` (per-tube growth-rate offset, scaled by elapsed time), `level` (per-tube ln_cfu offset, constant prior) + - `sample_offset/`: `zero`, `normal` (per-tube growth-rate offset, scaled by elapsed time), `level` (per-tube ln_cfu offset, constant prior; `sigma_fixed` > 0 holds its SD instead of learning it: learned, it grew to a free level per tube on the first real-data fit and absorbed the population's growth) - **`generative/observe/`** — *not* under `components/`, and not swappable via YAML. Holds the four observation-likelihood layers (`binding`, `growth`, `presplit`, `base_growth`), registered under flat `model_registry` keys `observe_binding`/`observe_growth`/`observe_presplit`/`observe_base_growth`. `ModelOrchestrator` wires in `observe_binding` whenever binding data were supplied and (unless `binding_only`) the growth observer chosen by `growth_likelihood` (`lncfu` → `observe_growth`, Student-t on `ln_cfu`; `counts` → `observe_growth_counts`, see **Count likelihood** below), plus `observe_presplit`/`observe_base_growth` only when the corresponding data (`presplit_df`/`base_growth_df`) was supplied — these are parallel, independently-gated observers, not alternative choices for one axis. **Growth-only models** (`binding_df=None`, `tfs-configure-model` without `--binding_df`) have `data.binding = None`, `priors.binding = None`, no `theta_binding_noise` component and no binding sites in the model (`jax_model` gates them on `data.binding is not None`, static structure); the orchestrator refuses a `binding_weight` or a non-`zero` `theta_binding_noise` without binding, and `tfs-prefit-calibration` refuses a growth-only config. Absent prior groups are left out of the priors CSV (`configuration_io._extract_scalars` / `_update_dataclass` skip `None`), so they reload as `None`, not NaN. diff --git a/src/tfscreen/tfmodel/generative/components/sample_offset/level.py b/src/tfscreen/tfmodel/generative/components/sample_offset/level.py index 5c037133..7abc2ebb 100644 --- a/src/tfscreen/tfmodel/generative/components/sample_offset/level.py +++ b/src/tfscreen/tfmodel/generative/components/sample_offset/level.py @@ -33,7 +33,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist -from flax.struct import dataclass +from flax.struct import dataclass, field from tfscreen.tfmodel.data_class import GrowthData @@ -44,8 +44,18 @@ class ModelPriors: sigma_prior_scale : float Scale of the HalfNormal prior on sigma, the SD of the per-tube offsets (ln units). + sigma_fixed : float + If > 0, sigma is held at this value (a deterministic site, no guide + parameters) instead of learned. Default 0 (learned). A learned sigma + lets the offsets grow into a free level per tube: on the first + real-data fit (2026-09-29) it went from its 0.2 prior scale to 0.53, + the offsets ran from -2.7 to +3.0 in a smooth pattern over IPTG and + time, and they carried the population's growth in place of k and m, + which went unphysical. Holding sigma near the per-tube OD600 scatter + (about 0.17, study 0c) keeps the tube totals binding. Static. """ sigma_prior_scale: float + sigma_fixed: float = field(pytree_node=False, default=0.0) def _tube_shape(data: GrowthData): @@ -60,8 +70,12 @@ def define_model(name: str, Sample the per-tube offsets and return them shaped ``(*tube_shape, 1)`` for adding to ``ln_cfu_pred``. """ - sigma = pyro.sample(f"{name}_sigma", - dist.HalfNormal(priors.sigma_prior_scale)) + if float(priors.sigma_fixed) > 0: + sigma = pyro.deterministic(f"{name}_sigma", + jnp.array(float(priors.sigma_fixed))) + else: + sigma = pyro.sample(f"{name}_sigma", + dist.HalfNormal(priors.sigma_prior_scale)) shape = _tube_shape(data) num_tubes = math.prod(shape) with pyro.plate(f"{name}_tubes", num_tubes, dim=-1): @@ -76,11 +90,12 @@ def guide(name: str, shape = _tube_shape(data) num_tubes = math.prod(shape) - sigma_loc = pyro.param(f"{name}_sigma_loc", - jnp.log(jnp.array(priors.sigma_prior_scale) / 4.0)) - sigma_scale = pyro.param(f"{name}_sigma_scale", jnp.array(0.5), - constraint=dist.constraints.greater_than(1e-4)) - pyro.sample(f"{name}_sigma", dist.LogNormal(sigma_loc, sigma_scale)) + if not float(priors.sigma_fixed) > 0: + sigma_loc = pyro.param(f"{name}_sigma_loc", + jnp.log(jnp.array(priors.sigma_prior_scale) / 4.0)) + sigma_scale = pyro.param(f"{name}_sigma_scale", jnp.array(0.5), + constraint=dist.constraints.greater_than(1e-4)) + pyro.sample(f"{name}_sigma", dist.LogNormal(sigma_loc, sigma_scale)) offset_loc = pyro.param(f"{name}_offset_loc", jnp.zeros(num_tubes)) offset_scale = pyro.param(f"{name}_offset_scale", jnp.full(num_tubes, 1e-2), @@ -97,7 +112,7 @@ def get_hyperparameters() -> Dict[str, Any]: study 0c (about 0.17 ln units) when each tube's total comes from its own OD600, and for the small composition offset (about 0.02, study 0b). """ - return {"sigma_prior_scale": 0.2} + return {"sigma_prior_scale": 0.2, "sigma_fixed": 0.0} def get_priors() -> ModelPriors: @@ -105,6 +120,7 @@ def get_priors() -> ModelPriors: def get_guesses(name: str, data: GrowthData) -> Dict[str, Any]: + # a guess for a held sigma is unused (the site is deterministic) return {f"{name}_sigma": jnp.array(0.05)} diff --git a/tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py b/tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py index b8f906ee..3441c21a 100644 --- a/tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py +++ b/tests/tfscreen/tfmodel/generative/components/sample_offset/test_level.py @@ -65,3 +65,30 @@ def test_guide_follows_loc_scale_convention(): def test_guesses(): assert set(get_guesses("sample_offset", _data())) == {"sample_offset_sigma"} + + +def test_sigma_fixed_holds_sigma(): + """ + sigma_fixed > 0 makes sigma a deterministic site at that value and drops + its guide parameters; 0 (the default) keeps it learned. + """ + import dataclasses + assert get_priors().sigma_fixed == 0.0 + priors = dataclasses.replace(get_priors(), sigma_fixed=0.17) + + tr = handlers.trace(handlers.seed(define_model, 0)).get_trace( + "sample_offset", _data(), priors) + assert tr["sample_offset_sigma"]["type"] == "deterministic" + assert float(tr["sample_offset_sigma"]["value"]) == pytest.approx(0.17) + assert float(tr["sample_offset_offset"]["fn"].base_dist.scale) == \ + pytest.approx(0.17) + + tr = handlers.trace(handlers.seed(guide, 0)).get_trace( + "sample_offset", _data(), priors) + params = {k for k, v in tr.items() if v["type"] == "param"} + assert params == {"sample_offset_offset_loc", "sample_offset_offset_scale"} + assert "sample_offset_sigma" not in tr + + tr = handlers.trace(handlers.seed(define_model, 0)).get_trace( + "sample_offset", _data(), get_priors()) + assert tr["sample_offset_sigma"]["type"] == "sample" diff --git a/tests/tfscreen/tfmodel/test_model_orchestrator.py b/tests/tfscreen/tfmodel/test_model_orchestrator.py index 81293f98..20c8d3c7 100644 --- a/tests/tfscreen/tfmodel/test_model_orchestrator.py +++ b/tests/tfscreen/tfmodel/test_model_orchestrator.py @@ -988,7 +988,9 @@ def test_extract_parameters_full(initialized_model_class): }) model.growth_tm.map_groups = {"condition_rep": pd.DataFrame({"replicate":[1], "condition_rep":["A"], "map_condition_rep":[0]})} model.growth_tm.tensor_dim_names = ["replicate", "time", "condition_pre", "condition_sel", "titrant_name", "titrant_conc", "genotype"] - model.growth_tm.tensor_dim_labels = [[], [], [], [], [], [1.0], []] + # the axes ln_cfu0's extraction keys rows by (replicate, condition_pre, + # genotype) must carry the table's labels + model.growth_tm.tensor_dim_labels = [[1], [], ["A"], [], [], [1.0], ["wt"]] post = { "theta_hill_n": np.zeros((1, 1, 1)), "theta_log_hill_K": np.zeros((1, 1, 1)), From faa5b116f4e187c824bcf9ff71a37d5ac888cc09 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 30 Sep 2026 07:56:30 -0700 Subject: [PATCH 073/208] Add tfs-fit-model --init_from to start at an earlier MAP point read_configuration keeps only guess rows named in the orchestrator's init_params, so a guesses file cannot seed sites such as condition_growth_k or the tube offsets. --init_from takes a MAP *_params.npz and passes its {site}_auto_loc arrays to site_values, which ranks them above the guesses. Other sites keep their guesses, so a model can start from a simpler one's point (a level-offset fit from a zero-offset fit). Refused with checkpoint_file. On the dev-data screen the level-offset MAP fell into a mode with tube offsets of +-2.8. Holding the no-offset MAP's point and fitting only small per-tube offsets scored 1.2e5 nats better in count likelihood, so that mode was an optimization artifact: Adam moved the offsets and k/m whole units in the first window and step-size cuts froze them. Tests: test_fit_model_cli.py (start precedence, npz without MAP arrays, refusal on resume); scripts suite passes. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 14 +++++++ CLAUDE.md | 4 +- src/tfscreen/tfmodel/scripts/fit_model_cli.py | 37 ++++++++++++++++- .../tfmodel/scripts/test_fit_model_cli.py | 40 +++++++++++++++++++ 4 files changed, 91 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39a5fd0b..76f5efe7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,20 @@ fall into two kinds: ### Added +- **`tfs-fit-model --init_from `** starts a fit at a MAP + point, the `{site}_auto_loc` arrays of an earlier fit's + `*_params.npz`, wherever they name a site of this model. They take + precedence over the guesses, and other sites start at their guesses. So + a model can be seeded from a simpler one, for example a + `sample_offset: level` fit from a `zero` fit. The option is refused with + `checkpoint_file`. Before this, guesses were the only way in, and + `read_configuration` silently drops guess rows for names outside the + configured guesses, including sites such as `condition_growth_k` and the + tube offsets. On the dev-data screen the level-offset MAP had fallen into + a mode with offsets of ±2.8. Holding the no-offset MAP's point and + fitting only small per-tube offsets beat it by 1.2e5 nats of count + likelihood (`planning/dev-data/real_fit`, gitignored). + - **`sample_offset: level` takes `sigma_fixed`.** Above 0, the SD of the per-tube offsets is held at that value (a deterministic site, no guide parameters) instead of learned; set `growth.sample_offset.sigma_fixed` in diff --git a/CLAUDE.md b/CLAUDE.md index c81ee7ac..d01dec93 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -46,7 +46,7 @@ tfs-process-presplit # Process pre-split count files tfs-calibrate-od600 # Fit an OD600-to-CFU/mL calibration from a dilution series of replicate readings + plate counts (process_raw/od600.py) tfs-configure-model # Generate YAML config template (+ library composition snapshot) tfs-prefit-calibration # Pre-fit linking function via MAP -tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut; --adam_clip_norm opts back into elementwise gradient clipping, off by default) +tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut; --adam_clip_norm opts back into elementwise gradient clipping, off by default; --init_from starts at an earlier MAP's {site}_auto_loc values, e.g. a level-offset fit from a zero-offset fit, since guesses cannot name sites outside the configured guesses) tfs-fit-genotypes # Per-genotype MLE fits of the growth model (no congression correction) tfs-sample-posterior # Draw posterior samples from fitted model (--map_point: a MAP checkpoint's point, no Laplace; --skip_growth_observations: leave out growth_pred/growth_obs, most of the file on a large library) tfs-sample-prior # Draw prior predictive samples @@ -181,7 +181,7 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi - **Runaway loss** (`RUNAWAY_LOSS_FACTOR` = 1e3): a window whose loss falls below -1000 times the magnitude of the run's first block median ends the run as `diverged` (not converged; `monitor.diverged`, kept in checkpoints with `reference_loss`). It means the objective is unbounded: a hierarchical density singularity (the old centered `hierarchical_factored` tube offset), or float32 error in a dense guide's own log density (`auto_multivariate_normal` on the small SVI-overconfidence library, where `log q` of its own draws reached -4e22 through an ill-conditioned `scale_tril`). - **Records**: `{out_prefix}_convergence.csv` (one row per window: loss (median), drop ± SE, t, `loss_mean`/`loss_skew`/`loss_skewed`, worst param and its excess/drift, step size, plateau count, decision; a resume rewrites an older file under the current columns, `_migrate_convergence_columns`); `{out_prefix}_losses.txt` is `epoch,loss,step,step_size` (loss = block median). Checkpoints carry `step_size` and `convergence` (the monitor's `state_dict`); a resume continues at that step size and plateau count (a checkpoint without them resumes at `adam_step_size`). A run started with `svi_state=None` resets `_current_step` to 0 (the pre-MAP no longer shifts SVI's epoch numbering). -**Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (`fit_model_cli.DEFAULT_GUIDE_INIT_SCALE`, 1e-4; also the autoguides' `init_scale` for a fresh fit). A scale param with a lower-bounded constraint (the hyperparameter scales' `greater_than(1e-4)`) starts at least `guide_init_scale` above the bound: starting on it is `-inf` unconstrained, and the param never moves (every hyperparameter scale stayed frozen at 1e-4 from 2026-09-27 to 2026-09-29). The scale is one number in every site's unconstrained units, so it must be small: at the old 0.1 (numpyro's autoguide default) an SD of 0.1 on a growth rate per minute is 17 ln units over a selection, SVI started ~1000x above the pre-MAP's loss and re-descended into other optima (mirror mode, halved m, the library shifted against wt; relative-fit grid, 2026-09-27). SVI widens the scales itself (about e-fold per 1000 steps at step size 1e-3). `init_param_jitter` defaults to 0 for the same reason (it is multiplicative, so 0.1 moves an ln_cfu0 location near 15 by ~1.5 ln units). `test_default_guide_start_stays_near_its_point` checks the start on a count model; a fit's first logged SVI loss should sit near its pre-MAP loss. `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. +**Starting points** (`inference/initialization.py`). Configured guesses are keyed mostly by *site* name and partly by component-guide param name; AutoDelta and the component guide both ignored site-keyed guesses (AutoDelta started at prior medians; the MAP → component-guide hand-off matched no names, so the pre-MAP was discarded). Now `RunInference.site_values` turns any mix of guesses / `{site}_auto_loc` MAP params / guide locations into constrained site values; MAP (`_run_map`, prefit, pre-MAP) starts there through `setup_svi(init_values=...)` (fallback `init_to_median` for AutoDelta); `RunInference.component_guide_start` maps site values onto the component guide via the `{site}_loc(s)`/`{site}_scale(s)` convention (LogNormal locations take the log; each match verified against the traced distribution) and caps every mapped scale at `guide_init_scale` (`fit_model_cli.DEFAULT_GUIDE_INIT_SCALE`, 1e-4; also the autoguides' `init_scale` for a fresh fit). A scale param with a lower-bounded constraint (the hyperparameter scales' `greater_than(1e-4)`) starts at least `guide_init_scale` above the bound: starting on it is `-inf` unconstrained, and the param never moves (every hyperparameter scale stayed frozen at 1e-4 from 2026-09-27 to 2026-09-29). The scale is one number in every site's unconstrained units, so it must be small: at the old 0.1 (numpyro's autoguide default) an SD of 0.1 on a growth rate per minute is 17 ln units over a selection, SVI started ~1000x above the pre-MAP's loss and re-descended into other optima (mirror mode, halved m, the library shifted against wt; relative-fit grid, 2026-09-27). SVI widens the scales itself (about e-fold per 1000 steps at step size 1e-3). `init_param_jitter` defaults to 0 for the same reason (it is multiplicative, so 0.1 moves an ln_cfu0 location near 15 by ~1.5 ln units). `test_default_guide_start_stays_near_its_point` checks the start on a count model; a fit's first logged SVI loss should sit near its pre-MAP loss. `tests/tfscreen/tfmodel/inference/test_initialization.py` checks the convention registry-wide; exceptions: horseshoe_geno (`activity_*_offset_*` param names) and prior-guided noise latents. A new component guide should follow the convention. `read_configuration` keeps only guess rows whose names are in the orchestrator's `init_params`; it silently drops any others, such as a bare `condition_growth_k` or `sample_offset_offset` row. To start at a point the guesses cannot name, use `tfs-fit-model --init_from `: an earlier MAP's `{site}_auto_loc` arrays, which `site_values` ranks first. The dev-data level-offset MAP is the case: Adam moves every parameter about one step size per step, so in the first window it carried the tube offsets and k/m (k prior SD 0.002 per minute) by whole units into a ±2.8 offset mode. The step-size cuts then froze it there. Starting from the no-offset MAP plus small per-tube offsets was 1.2e5 nats better (`planning/dev-data/real_fit`). **MAP values: constrained or not.** AutoDelta's `svi.get_params(state)` (what `run_optimization` returns and `write_params` saves) is *constrained*; `svi.optim.get_params(state.optim_state)` (what `tfs-sample-posterior`, `tfs-extract-params` and `checkpoint_io` read from checkpoints) is *unconstrained*. `compute_hessian_sigmas` takes the former, `get_laplace_posteriors`/`get_map_posteriors`/`_map_params_to_constrained` the latter. Mixing them up silently evaluates positive sites at `exp(value)` (the pre-fit did until 2026-09-27). diff --git a/src/tfscreen/tfmodel/scripts/fit_model_cli.py b/src/tfscreen/tfmodel/scripts/fit_model_cli.py index eb4851ff..e473761f 100644 --- a/src/tfscreen/tfmodel/scripts/fit_model_cli.py +++ b/src/tfscreen/tfmodel/scripts/fit_model_cli.py @@ -1,5 +1,7 @@ import os import dill +import numpy as np +import jax.numpy as jnp from tfscreen.tfmodel.inference.run_inference import ( RunInference, @@ -300,6 +302,21 @@ def _check_checkpoint_guide(checkpoint_file, guide_type): ) +def _read_init_from(path): + """ + The ``{site}_auto_loc`` arrays of a MAP ``*_params.npz`` (constrained + values, as ``write_params`` saves them), for ``site_values``: they take + precedence over guesses keyed by site or by guide parameter. + """ + with np.load(path) as z: + values = {k: jnp.asarray(z[k]) for k in z.files if k.endswith("_auto_loc")} + if not values: + raise ValueError(f"init_from '{path}' has no '*_auto_loc' arrays; it " + "should be the *_params.npz of a MAP fit.") + print(f"Starting from {len(values)} MAP sites in {path}") + return values + + def fit_model(config_file, seed=None, checkpoint_file=None, @@ -328,7 +345,8 @@ def fit_model(config_file, nuts_num_chains=1, nuts_target_accept_prob=0.9, nuts_dense_mass=False, - epoch_checkpoint_interval=1000): + epoch_checkpoint_interval=1000, + init_from=None): """ Fit the joint hierarchical model using a previously generated configuration file. @@ -452,6 +470,14 @@ def fit_model(config_file, ``checkpoints/`` subdirectory alongside ``out_prefix`` (default 1000). Files are named ``{epoch:07d}_checkpoint.pkl``. Set to 0 or None to disable. Raises ``FileExistsError`` if a target file already exists. + init_from : str or None, optional + A ``*_params.npz`` written by a MAP fit (``{site}_auto_loc`` arrays) + to start from instead of the configured guesses, wherever it names a + site of this model; other sites start at their guesses. The fit may + be of a different model: starting a ``sample_offset: level`` fit from + a ``zero`` fit's point, say (the npz can carry + ``sample_offset_offset_auto_loc`` to set the offsets too). Refused + with ``checkpoint_file``, which sets the start itself. Returns ------- @@ -508,7 +534,13 @@ def fit_model(config_file, "overwrite, delete the file or change out_prefix." ) + if init_from is not None and checkpoint_file is not None: + raise ValueError("init_from and checkpoint_file both set the starting " + "point; give one.") + orchestrator, guesses = read_configuration(config_file) + if init_from is not None: + guesses = {**guesses, **_read_init_from(init_from)} # For posterior mode the seed is optional: the checkpoint restores the PRNG # key for SVI checkpoints, and any valid key works for MAP/Laplace sampling. @@ -647,7 +679,8 @@ def main(): "nuts_num_samples":int, "nuts_num_chains":int, "nuts_target_accept_prob":float, - "epoch_checkpoint_interval":int}) + "epoch_checkpoint_interval":int, + "init_from":str}) if __name__ == "__main__": main() diff --git a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py index 755a090c..25e5ed76 100644 --- a/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_fit_model_cli.py @@ -3,6 +3,7 @@ """ import pytest import dill +import numpy as np import jax.numpy as jnp from unittest.mock import MagicMock @@ -386,6 +387,45 @@ def test_map_starts_from_guesses(self, mocker): fit_model(config_file="dummy.yaml", seed=1, analysis_method="map") assert run_map_mock.call_args.kwargs["init_values"] == {"mu": 1.0} + def test_map_starts_from_init_from(self, tmp_path, mocker): + """A MAP params npz seeds every site it names, over the guesses; + guesses for sites it lacks are kept (a level-offset fit started from + a zero-offset fit's point).""" + npz = tmp_path / "prev_params.npz" + np.savez(npz, mu_auto_loc=np.array([2.0, 3.0]), + offset_auto_loc=np.array([0.1]), not_a_site=np.array(9.0)) + _patch_common(mocker) + ri = self._patch_ri(mocker, guesses={"mu": 1.0, "sigma": 0.5}) + run_map_mock = mocker.patch(f"{_CLI}._run_map", + return_value=(MagicMock(), {}, True)) + fit_model(config_file="dummy.yaml", seed=1, analysis_method="map", + init_from=str(npz)) + start = run_map_mock.call_args.kwargs["init_values"] + assert set(start) == {"mu", "sigma", "offset"} + np.testing.assert_array_equal(start["mu"], [2.0, 3.0]) + np.testing.assert_allclose(start["offset"], [0.1], rtol=1e-6) + assert start["sigma"] == 0.5 + # both keys reach site_values, which ranks {site}_auto_loc first + seen = ri.site_values.call_args.args[0] + assert "mu" in seen and "mu_auto_loc" in seen + + def test_init_from_needs_map_arrays(self, tmp_path, mocker): + npz = tmp_path / "other.npz" + np.savez(npz, mu=np.array(1.0)) + _patch_common(mocker) + with pytest.raises(ValueError, match="no '\\*_auto_loc' arrays"): + fit_model(config_file="dummy.yaml", seed=1, analysis_method="map", + init_from=str(npz)) + + def test_init_from_refused_on_resume(self, tmp_path, mocker): + ckpt = tmp_path / "ckpt.pkl" + with open(ckpt, "wb") as f: + dill.dump({"guide_type": "component"}, f) + _patch_common(mocker) + with pytest.raises(ValueError, match="init_from and checkpoint_file"): + fit_model(config_file="dummy.yaml", analysis_method="map", + checkpoint_file=str(ckpt), init_from="x.npz") + def test_resume_skips_start_translation(self, tmp_path, mocker): ckpt = tmp_path / "ckpt.pkl" with open(ckpt, "wb") as f: From e4320c7f536d094f8cec1e12dd2e355a1f551685 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Wed, 30 Sep 2026 21:11:36 -0700 Subject: [PATCH 074/208] Allow per-condition m prior scales in linear growth m_scale_plus and m_scale_minus were scalars, so every selection condition shared one m prior width. They now broadcast like k_scale: a per-condition array (indexed priors-CSV rows, joined by condition_rep) sets each condition's scale, and each condition takes the entry its +/- flag names. Scalars behave as before. Needed for growth-only (hill_relative) fits with priors written by hand, which the prefit cannot calibrate: on the dev-data screen the kan conditions take tight priors from wt monoculture rates while pheS stays loose, because library wt keeps growing in pheS+4CP at high IPTG where the monoculture stops. Tests: test_linear.py (per-condition m scales; scalar scales unchanged); generative, scripts and config suites pass. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 9 ++++++ CLAUDE.md | 2 +- .../generative/components/growth/linear.py | 26 ++++++++++------ .../components/growth/test_linear.py | 30 +++++++++++++++++++ 4 files changed, 57 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76f5efe7..55c109e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,15 @@ fall into two kinds: ### Added +- **`condition_growth: linear` takes per-condition `m_scale_plus` and + `m_scale_minus`.** Like `k_scale`, each may now be a per-condition array: + indexed rows in the priors CSV, joined to the conditions by + `condition_rep`. Each condition takes the entry its `+`/`-` flag names. + Before this, every selection condition shared one m prior width. That + could not express a tight prior from monoculture data for kan alongside + a loose one for pheS, which the growth-only dev-data fits need. + Scalars behave as before. + - **`tfs-fit-model --init_from `** starts a fit at a MAP point, the `{site}_auto_loc` arrays of an earlier fit's `*_params.npz`, wherever they name a site of this model. They take diff --git a/CLAUDE.md b/CLAUDE.md index d01dec93..49dbf6ff 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -126,7 +126,7 @@ The hierarchical Bayesian inference engine. Key files: - **`generative/components/`** — Pluggable model components selected via the YAML config's `components:` section (registry key noted in parens where it differs from the directory name): - `activity/`: `fixed`, `hierarchical_geno`, `hierarchical_mut`, `horseshoe_geno`, `horseshoe_mut` - - `growth/` (registry key `condition_growth`): `linear`, `power`, `saturation`. Their per-condition prior loc/scale fields accept a scalar (broadcast to all conditions) **or** a per-condition array; the pre-fit calibration writes per-condition arrays to pin the baselines (see **Per-condition growth priors** below). Each declares `get_scale_bounds()`. + - `growth/` (registry key `condition_growth`): `linear`, `power`, `saturation`. Their per-condition prior loc/scale fields (in `linear`, `m_scale_plus`/`m_scale_minus` too) accept a scalar (broadcast to all conditions) **or** a per-condition array; the pre-fit calibration writes per-condition arrays to pin the baselines (see **Per-condition growth priors** below). Each declares `get_scale_bounds()`. - `growth_transition/`: `instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop` - `transformation/`: `single`, `mixture` (`empirical`/`logit_norm` were removed; `ModelOrchestrator` refuses them by name with a message, `_RETIRED_TRANSFORMATIONS`). The old E[max] θ operator (`_congression.py`) is gone, along with Stage 1.5 of the empirical pipeline that used it - `theta/`: `categorical_geno`, `hill_geno`, `hill_relative` (wt-relative X, see **Relative-X fit** below), `hill_mut`; thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) diff --git a/src/tfscreen/tfmodel/generative/components/growth/linear.py b/src/tfscreen/tfmodel/generative/components/growth/linear.py index 959a54de..9d4c8651 100644 --- a/src/tfscreen/tfmodel/generative/components/growth/linear.py +++ b/src/tfscreen/tfmodel/generative/components/growth/linear.py @@ -46,14 +46,18 @@ class ModelPriors: m_scale : float Standard deviation of the Normal prior on m (used for all conditions when ``m_is_selection`` is ``None``). - m_scale_minus : float + m_scale_minus : float or array Prior scale on m for control ('-') conditions, where theta is not expected to meaningfully affect growth. Applied per-condition when - ``m_is_selection`` is provided. - m_scale_plus : float + ``m_is_selection`` is provided. A per-condition array (indexed rows + in the priors CSV) sets each condition's scale; only the entries of + control conditions are used. + m_scale_plus : float or array Prior scale on m for selection ('+') conditions, where theta drives differential growth. Applied per-condition when ``m_is_selection`` - is provided. + is provided. Scalar or per-condition array, as ``m_scale_minus`` + (e.g. a tight prior from monoculture data for one selection and a + loose one for another). m_is_selection : tuple of bool or None Length-``num_condition_rep`` tuple; ``True`` for selection ('+') conditions, ``False`` for control ('-') conditions. ``None`` @@ -165,12 +169,16 @@ def define_model(name: str, num_cr = data.num_condition_rep if priors.m_is_selection is None: - m_scale_arr = jnp.full(num_cr, priors.m_scale) + m_scale_arr = jnp.broadcast_to(jnp.asarray(priors.m_scale, dtype=float), + (num_cr,)) else: - m_scale_arr = jnp.array([ - priors.m_scale_plus if sel else priors.m_scale_minus - for sel in priors.m_is_selection - ]) + # m_scale_plus / m_scale_minus may be scalars or per-condition arrays + # (indexed rows in the priors CSV); each condition takes the one its + # selection flag names. + m_scale_arr = jnp.where( + jnp.asarray(priors.m_is_selection, dtype=bool), + jnp.broadcast_to(jnp.asarray(priors.m_scale_plus, dtype=float), (num_cr,)), + jnp.broadcast_to(jnp.asarray(priors.m_scale_minus, dtype=float), (num_cr,))) # Broadcast scalar-or-array priors to a per-condition array so k, m can be # pinned condition-by-condition (see prefit calibration). A scalar prior diff --git a/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py b/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py index 103dbcd2..6ebea060 100644 --- a/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py +++ b/tests/tfscreen/tfmodel/generative/components/growth/test_linear.py @@ -670,6 +670,36 @@ def test_array_prior_initializes_guide_params(self, mock_data): k_locs = np.asarray(gtr[f"{name}_k_locs"]["value"]) assert np.allclose(k_locs, np.array([0.011, 0.021, 0.029])) + def test_array_m_scales_are_per_condition(self): + """Per-condition m_scale_plus/minus arrays: each condition takes the + entry its selection flag names (two '+' conditions, one tight from + monoculture data and one loose).""" + labels = ["kanR+kan", "kanR-kan", "pheS+4CP", "pheS-4CP"] + plus = jnp.array([0.0015, 99.0, 0.01, 99.0]) # 99: unused entries + minus = jnp.array([99.0, 0.004, 99.0, 0.01]) + priors = get_priors(condition_labels=labels).replace( + m_scale_plus=plus, m_scale_minus=minus) + data = TestDefineModelSelectionAware()._make_data(num_condition_rep=4) + with seed(rng_seed=0): + tr = trace(define_model).get_trace(name="ms", data=data, priors=priors) + fn = tr["ms_m"]["fn"] + while not hasattr(fn, "scale"): + fn = fn.base_dist + assert np.allclose(np.asarray(fn.scale), [0.0015, 0.004, 0.01, 0.01]) + + def test_scalar_m_scales_unchanged(self): + """Scalar m_scale_plus/minus still give the per-class scales.""" + labels = ["kanR+kan", "kanR-kan"] + priors = get_priors(condition_labels=labels) + data = TestDefineModelSelectionAware()._make_data(num_condition_rep=2) + with seed(rng_seed=0): + tr = trace(define_model).get_trace(name="mc", data=data, priors=priors) + fn = tr["mc_m"]["fn"] + while not hasattr(fn, "scale"): + fn = fn.base_dist + assert np.allclose(np.asarray(fn.scale), + [priors.m_scale_plus, priors.m_scale_minus]) + def test_array_and_scalar_give_same_sites(self, mock_data): """Model/guide site sets are identical whether priors are scalar or array.""" name = "ss" From beacad0ee28958a0fe8aede7b766a3e112a988df Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 1 Oct 2026 05:41:54 -0700 Subject: [PATCH 075/208] Add a fixed log(hill_n) population SD to the Hill theta components hill_geno and hill_relative take theta_log_hill_n_hyper_scale_fixed. Above 0, the population SD of log(hill_n) is held at that value (a deterministic site, no guide parameters) instead of learned; the default 0 keeps it learned. Set it in the priors CSV. On the dev-data screen every MAP fit, joint and growth-only, ran the learned SD to about 19, with n from 0.01 to 13. A tiny n hid each genotype's response below the lowest nonzero IPTG: in 42% of genotypes the curve changed more between 0 and 0.1 uM than across the measured range, a step the counts do not show (0.4-0.55 ln units predicted for the binding genotypes in kanR+kan, 0.00-0.08 observed). Tests: test_hill_geno.py, test_hill_relative.py (held SD is a deterministic site with no guide params; model and guide sample sites match; gauge still pins wt); theta, initialization, batch-safety and config suites pass. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 12 ++++++ CLAUDE.md | 2 +- .../generative/components/theta/hill_geno.py | 38 ++++++++++++++----- .../components/theta/hill_relative.py | 28 +++++++++++--- .../components/theta/test_hill_geno.py | 25 ++++++++++++ .../components/theta/test_hill_relative.py | 27 +++++++++++++ 6 files changed, 116 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55c109e8..0de13646 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,18 @@ fall into two kinds: ### Added +- **`theta: hill_geno` and `hill_relative` take + `theta_log_hill_n_hyper_scale_fixed`.** Above 0, the population SD of + log(hill_n) is held at that value (a deterministic site, no guide + parameters) instead of learned. Set `theta.theta_log_hill_n_hyper_scale_fixed` + in the priors CSV; default 0 keeps it learned. On the dev-data screen + the learned SD ran to about 19 in every MAP fit, joint and growth-only. + n spread from 0.01 to 13, and in 42% of genotypes the curve changed more + between 0 and the lowest nonzero IPTG (0.1 µM) than across the whole + measured range. The data show no such step: for the binding genotypes + the fit predicted a 0.4-0.55 ln-unit gain relative to wt in kanR+kan, + and the counts show 0.00-0.08. + - **`condition_growth: linear` takes per-condition `m_scale_plus` and `m_scale_minus`.** Like `k_scale`, each may now be a per-condition array: indexed rows in the priors CSV, joined to the conditions by diff --git a/CLAUDE.md b/CLAUDE.md index 49dbf6ff..aabced0d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -129,7 +129,7 @@ The hierarchical Bayesian inference engine. Key files: - `growth/` (registry key `condition_growth`): `linear`, `power`, `saturation`. Their per-condition prior loc/scale fields (in `linear`, `m_scale_plus`/`m_scale_minus` too) accept a scalar (broadcast to all conditions) **or** a per-condition array; the pre-fit calibration writes per-condition arrays to pin the baselines (see **Per-condition growth priors** below). Each declares `get_scale_bounds()`. - `growth_transition/`: `instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop` - `transformation/`: `single`, `mixture` (`empirical`/`logit_norm` were removed; `ModelOrchestrator` refuses them by name with a message, `_RETIRED_TRANSFORMATIONS`). The old E[max] θ operator (`_congression.py`) is gone, along with Stage 1.5 of the empirical pipeline that used it - - `theta/`: `categorical_geno`, `hill_geno`, `hill_relative` (wt-relative X, see **Relative-X fit** below), `hill_mut`; thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) + - `theta/`: `categorical_geno`, `hill_geno`, `hill_relative` (wt-relative X, see **Relative-X fit** below), `hill_mut`; `hill_geno`/`hill_relative` take `theta_log_hill_n_hyper_scale_fixed` (> 0 holds the log(n) population SD; learned, a MAP on real data ran it to about 19, and n near 0.01 hid each genotype's response below the lowest nonzero concentration, in the 0-titrant tubes); thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) - `theta_rescale/`: `passthrough`, `logit` - `dk_geno/`: `fixed`, `hierarchical_geno`, `pinned` - `noise/` (theta observation noise; registry keys `theta_growth_noise`: `zero`/`beta`/`logit_normal`, `theta_binding_noise`: `zero`/`beta`) diff --git a/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py b/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py index 3fef9861..2e2cd5d9 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py +++ b/src/tfscreen/tfmodel/generative/components/theta/hill_geno.py @@ -3,7 +3,7 @@ import jax.numpy as jnp import numpyro as pyro import numpyro.distributions as dist -from flax.struct import dataclass +from flax.struct import dataclass, field from typing import Dict, Any, Optional from tfscreen.tfmodel.data_class import DataClass @@ -28,6 +28,13 @@ class ModelPriors: theta_log_hill_n_hyper_loc_loc : float theta_log_hill_n_hyper_loc_scale : float theta_log_hill_n_hyper_scale : float + theta_log_hill_n_hyper_scale_fixed : float + If > 0, the population SD of log(hill_n) is held at this value (a + deterministic site, no guide parameters) instead of learned. Learned, + a MAP on the dev-data screen drove it to about 19: n spread from + 0.01 to 13, and a tiny n hid each genotype's shrunken response in the + 0-IPTG tubes, below the lowest measured concentration + (planning/dev-data/real_fit). Default 0 keeps it learned. """ theta_logit_low_hyper_loc_loc: float @@ -44,6 +51,8 @@ class ModelPriors: theta_log_hill_n_hyper_loc_loc: float theta_log_hill_n_hyper_loc_scale: float theta_log_hill_n_hyper_scale: float + theta_log_hill_n_hyper_scale_fixed: float = field(pytree_node=False, + default=0.0) @dataclass(frozen=True) @@ -247,9 +256,14 @@ def define_model(name: str, f"{name}_log_hill_n_hyper_loc", dist.Normal(priors.theta_log_hill_n_hyper_loc_loc, priors.theta_log_hill_n_hyper_loc_scale)) - log_n_hyper_scale = pyro.sample( - f"{name}_log_hill_n_hyper_scale", - dist.HalfNormal(priors.theta_log_hill_n_hyper_scale)) + n_fixed = float(priors.theta_log_hill_n_hyper_scale_fixed) + if n_fixed > 0: + log_n_hyper_scale = pyro.deterministic( + f"{name}_log_hill_n_hyper_scale", jnp.full(T, n_fixed)) + else: + log_n_hyper_scale = pyro.sample( + f"{name}_log_hill_n_hyper_scale", + dist.HalfNormal(priors.theta_log_hill_n_hyper_scale)) # ------------------------------------------------------------------ # Full-population per-genotype offsets: shape (T, G) @@ -341,9 +355,11 @@ def guide(name: str, h_n_loc_scale = pyro.param(f"{name}_log_hill_n_hyper_loc_scale", jnp.full(T, priors.theta_log_hill_n_hyper_loc_scale), constraint=dist.constraints.greater_than(1e-4)) - h_n_scale_loc = pyro.param(f"{name}_log_hill_n_hyper_scale_loc", jnp.full(T, -1.0)) - h_n_scale_scale = pyro.param(f"{name}_log_hill_n_hyper_scale_scale", jnp.full(T, 0.1), - constraint=dist.constraints.greater_than(1e-4)) + n_fixed = float(priors.theta_log_hill_n_hyper_scale_fixed) + if not n_fixed > 0: + h_n_scale_loc = pyro.param(f"{name}_log_hill_n_hyper_scale_loc", jnp.full(T, -1.0)) + h_n_scale_scale = pyro.param(f"{name}_log_hill_n_hyper_scale_scale", jnp.full(T, 0.1), + constraint=dist.constraints.greater_than(1e-4)) with pyro.plate(f"{name}_hyper_plate", T, dim=-1): logit_low_hyper_loc = pyro.sample(f"{name}_logit_low_hyper_loc", @@ -360,8 +376,11 @@ def guide(name: str, dist.LogNormal(h_K_scale_loc, h_K_scale_scale)) log_n_hyper_loc = pyro.sample(f"{name}_log_hill_n_hyper_loc", dist.Normal(h_n_loc_loc, h_n_loc_scale)) - log_n_hyper_scale = pyro.sample(f"{name}_log_hill_n_hyper_scale", - dist.LogNormal(h_n_scale_loc, h_n_scale_scale)) + if n_fixed > 0: + log_n_hyper_scale = jnp.full(T, n_fixed) + else: + log_n_hyper_scale = pyro.sample(f"{name}_log_hill_n_hyper_scale", + dist.LogNormal(h_n_scale_loc, h_n_scale_scale)) # ------------------------------------------------------------------ # Full-population per-genotype offset variational parameters: shape (T, G) @@ -610,6 +629,7 @@ def get_hyperparameters() -> Dict[str, Any]: parameters["theta_log_hill_n_hyper_loc_loc"] = 0.7 parameters["theta_log_hill_n_hyper_loc_scale"] = 0.5 parameters["theta_log_hill_n_hyper_scale"] = 1.0 + parameters["theta_log_hill_n_hyper_scale_fixed"] = 0.0 return parameters diff --git a/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py b/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py index d8fb493b..2898e141 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py +++ b/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py @@ -33,7 +33,7 @@ import numpy as np import numpyro as pyro import numpyro.distributions as dist -from flax.struct import dataclass +from flax.struct import dataclass, field from tfscreen.tfmodel.data_class import DataClass @@ -69,6 +69,10 @@ class ModelPriors: theta_log_hill_n_hyper_loc_loc: float theta_log_hill_n_hyper_loc_scale: float theta_log_hill_n_hyper_scale: float + # > 0: hold the population SD of log(hill_n) here (hill_geno's field of + # the same name explains why) + theta_log_hill_n_hyper_scale_fixed: float = field(pytree_node=False, + default=0.0) @dataclass(frozen=True) @@ -135,6 +139,10 @@ def _assemble(hyper, offsets, data): "log_hill_n_offset") +def _n_fixed(priors): + return float(getattr(priors, "theta_log_hill_n_hyper_scale_fixed", 0.0)) + + def define_model(name: str, data: DataClass, priors: ModelPriors) -> ThetaParam: @@ -152,9 +160,13 @@ def define_model(name: str, f"{name}_{h}_hyper_loc", dist.Normal(getattr(priors, f"theta_{h}_hyper_loc_loc"), getattr(priors, f"theta_{h}_hyper_loc_scale")))) - hyper.append(pyro.sample( - f"{name}_{h}_hyper_scale", - dist.HalfNormal(getattr(priors, f"theta_{h}_hyper_scale")))) + if h == "log_hill_n" and _n_fixed(priors) > 0: + hyper.append(pyro.deterministic(f"{name}_{h}_hyper_scale", + jnp.full(T, _n_fixed(priors)))) + else: + hyper.append(pyro.sample( + f"{name}_{h}_hyper_scale", + dist.HalfNormal(getattr(priors, f"theta_{h}_hyper_scale")))) with pyro.plate(f"{name}_titrant_name_plate", T, dim=-2): with pyro.plate(f"{name}_genotype_plate", data.num_genotype, dim=-1): @@ -188,13 +200,16 @@ def guide(name: str, f"{name}_{h}_hyper_loc_scale", jnp.full(T, getattr(priors, f"theta_{h}_hyper_loc_scale")), constraint=dist.constraints.greater_than(1e-4)) + hyper.append(pyro.sample(f"{name}_{h}_hyper_loc", + dist.Normal(loc_loc, loc_scale))) + if h == "log_hill_n" and _n_fixed(priors) > 0: + hyper.append(jnp.full(T, _n_fixed(priors))) + continue scale_loc = pyro.param(f"{name}_{h}_hyper_scale_loc", jnp.full(T, -1.0)) scale_scale = pyro.param( f"{name}_{h}_hyper_scale_scale", jnp.full(T, 0.1), constraint=dist.constraints.greater_than(1e-4)) - hyper.append(pyro.sample(f"{name}_{h}_hyper_loc", - dist.Normal(loc_loc, loc_scale))) hyper.append(pyro.sample(f"{name}_{h}_hyper_scale", dist.LogNormal(scale_loc, scale_scale))) @@ -255,6 +270,7 @@ def get_hyperparameters() -> Dict[str, Any]: "theta_log_hill_n_hyper_loc_loc": 0.7, "theta_log_hill_n_hyper_loc_scale": 0.5, "theta_log_hill_n_hyper_scale": 1.0, + "theta_log_hill_n_hyper_scale_fixed": 0.0, } diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py index 0fa74c2c..280aa41c 100644 --- a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py +++ b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_geno.py @@ -633,3 +633,28 @@ def test_simulate_theta_param_compatible_with_run_model(mock_data): C = data.num_titrant_conc # simulate() always produces T=1 (no per-titrant structure); run_model reflects that assert result.shape == (1, C, G) + + +@pytest.mark.parametrize("fixed", [0.0, 0.5]) +def test_log_hill_n_hyper_scale_fixed(mock_data, fixed): + """theta_log_hill_n_hyper_scale_fixed > 0 holds the log(n) population SD: + a deterministic model site at that value and no guide parameters for it; + 0 keeps it learned. Model and guide sample sites match either way.""" + name = "nfix" + priors = get_priors().replace(theta_log_hill_n_hyper_scale_fixed=fixed) + assert get_hyperparameters()["theta_log_hill_n_hyper_scale_fixed"] == 0.0 + with seed(rng_seed=0): + mtr = trace(define_model).get_trace(name=name, data=mock_data, priors=priors) + with seed(rng_seed=0): + gtr = trace(guide).get_trace(name=name, data=mock_data, priors=priors) + site = mtr[f"{name}_log_hill_n_hyper_scale"] + if fixed: + assert site["type"] == "deterministic" + assert np.allclose(site["value"], fixed) + assert f"{name}_log_hill_n_hyper_scale_loc" not in gtr + else: + assert site["type"] == "sample" + assert f"{name}_log_hill_n_hyper_scale_loc" in gtr + model_samples = {n for n, s in mtr.items() if s["type"] == "sample"} + guide_samples = {n for n, s in gtr.items() if s["type"] == "sample"} + assert model_samples == guide_samples diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py index 97d4993c..9bcc264c 100644 --- a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py +++ b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py @@ -146,3 +146,30 @@ def test_x_scale_growth_truth_preserves_growth(): k_X, m_X = hr.x_scale_growth_truth(k, m, lo, hi) X = hr.x_scale_truth(theta, lo, hi) assert np.allclose(k + m * theta, k_X + m_X * X) + + +@pytest.mark.parametrize("fixed", [0.0, 0.5]) +def test_log_hill_n_hyper_scale_fixed(fixed): + """As hill_geno: a held log(n) population SD is a deterministic site with + no guide parameters, and the gauge still pins wt.""" + data = _data() + priors = hr.get_priors().replace(theta_log_hill_n_hyper_scale_fixed=fixed) + assert hr.get_hyperparameters()["theta_log_hill_n_hyper_scale_fixed"] == 0.0 + mtr = handlers.trace(handlers.seed(hr.define_model, 0)).get_trace( + "theta", data, priors) + gtr = handlers.trace(handlers.seed(hr.guide, 0)).get_trace( + "theta", data, priors) + site = mtr["theta_log_hill_n_hyper_scale"] + if fixed: + assert site["type"] == "deterministic" + assert np.allclose(site["value"], fixed) + assert "theta_log_hill_n_hyper_scale_loc" not in gtr + else: + assert site["type"] == "sample" + assert ({n for n, s in mtr.items() if s["type"] == "sample"} + == {n for n, s in gtr.items() if s["type"] == "sample"}) + with handlers.seed(rng_seed=3): + tp = hr.guide("theta", data, priors) + X = _X(tp, data) + assert X[0, 0, 1] == pytest.approx(1.0, abs=1e-5) + assert X[0, -1, 1] == pytest.approx(0.0, abs=1e-5) From 0e220e7b623e625dadcf0bb70ec8c9ac759c633c Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 1 Oct 2026 17:01:37 -0700 Subject: [PATCH 076/208] Flag the relative-fit guide verdict; set up a post-fix rerun The relative-fit study (runs 2-3, 2026-09-28) recommended the low-rank guide over the component guide and found MAP + Laplace unusable. Both comparisons ran with bugs fixed on 2026-09-29 (9db28286): every component-guide hyperparameter scale was frozen at its 1e-4 bound from c57d9ee5 on, while the low-rank autoguide was unaffected, and the flat 1e-3 Laplace floor produced the MAP arm's blowups. The svi-overconfidence study's relative arm, in the same window, found the two guides about equal. - CLAUDE.md: the relative-fit inference choice is open, with the reasons. - relative-fit README: dated caveat on the old decision; run 4 section. - grid_v4.yaml / run_v4.srun: 30 runs on runs 2-3's simulations, relative fit only, log(hill_n) spread held at 0.5; arms component, low_rank (default rank and rank 20), map (floored Laplace), two_stage. The template adds the two-stage path and guide diagnostics from ../svi-overconfidence/ and a guide_rank variable. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 2 +- planning/studies/relative-fit/.gitignore | 1 + planning/studies/relative-fit/README.md | 48 ++++++ planning/studies/relative-fit/grid_v4.yaml | 86 +++++++++++ planning/studies/relative-fit/run_v4.srun | 164 +++++++++++++++++++++ 5 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 planning/studies/relative-fit/grid_v4.yaml create mode 100644 planning/studies/relative-fit/run_v4.srun diff --git a/CLAUDE.md b/CLAUDE.md index aabced0d..795b34bb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -149,7 +149,7 @@ Roadmap step 3. `process_raw/od600.py` holds the method (C10: the lab's data nev ### Relative-X fit (`theta: hill_relative`) -Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). **On simulations, fit it with `--guide_type auto_low_rank_multivariate_normal`** (documented, not the default: the default waits on studies with real data, user 2026-09-28): growth alone constrains mostly `m·(X_g - X_wt)`, so the posterior is a curved ridge along `m·X` that only wt's absolute growth change (via the tube totals) pins, and the mean-field component guide slides along it to smaller |m| and stretched X while the MAP stays on truth; the low-rank guide recovered X at the joint fit's accuracy (`planning/studies/relative-fit/`, run 2). MAP + Laplace recovers `m` but its Laplace covariance on the genotype parameters blew up in 5 of 6 runs. Validation grid: `planning/studies/relative-fit/`. +Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). **Which inference to use is open.** Growth alone constrains mostly `m·(X_g - X_wt)`, so the posterior is a curved ridge along `m·X` that only wt's absolute growth change (via the tube totals) pins. Runs 2 and 3 of `planning/studies/relative-fit/` (2026-09-28) found the mean-field component guide sliding along it (smaller |m|, stretched X) while the low-rank guide (`--guide_type auto_low_rank_multivariate_normal`) recovered X, and MAP + Laplace blowing up in 5 of 6 runs. Both comparisons ran with bugs fixed on 2026-09-29: every component-guide hyperparameter scale frozen at its 1e-4 bound (2026-09-27 16:48 to 2026-09-29; the low-rank autoguide was unaffected) and the flat 1e-3 Laplace eigenvalue floor (the blowups); the learned log(hill_n) spread was also free then. The svi-overconfidence study's relative arm, in the same window on another library, found the two guides about equal (X 95% coverage 0.68 vs 0.74, RMSE 0.071 vs 0.072). Every guide collapses k and m. The post-fix rerun is `planning/studies/relative-fit/grid_v4.yaml` (component, low-rank at the default rank and at rank 20, MAP + floored Laplace, two-stage; n spread held at 0.5). Until it reports, the low-rank guide is a reasonable choice, not a validated one. Validation grid: `planning/studies/relative-fit/`. ### Adding a New Model Component diff --git a/planning/studies/relative-fit/.gitignore b/planning/studies/relative-fit/.gitignore index 4559a948..bdc565a6 100644 --- a/planning/studies/relative-fit/.gitignore +++ b/planning/studies/relative-fit/.gitignore @@ -2,3 +2,4 @@ calib relative_fit relative_fit_v2 relative_fit_v3 +relative_fit_v4 diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index e28ec57e..f41db221 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -265,6 +265,20 @@ X test set (`theta_test`), per-arm means over 3 seeds, Poisson / realistic: on k and m cover (0.92-1.0). Remaining gap: the guides' variance, not their location. +> **Caveat (2026-10-01).** Runs 2 and 3 ran with two bugs fixed on +> 2026-09-29 (`9db28286`). From `c57d9ee5` (2026-09-27 16:48) every +> component-guide hyperparameter scale started on its `greater_than(1e-4)` +> bound and never moved, so the `component` arms ran crippled while the +> `low_rank` autoguide did not; the comparison between them is lopsided. +> The Laplace floor clamped negative eigenvalues to 1e-3 (variance 1,000), +> which is the `map` arm's blowups; the learned log(hill_n) spread, which +> ran away on real data, was also free here. The svi-overconfidence +> study's relative arm, in the same window on a smaller library, found +> component and low-rank about equal (X 95% coverage 0.68 vs 0.74, RMSE +> 0.071 vs 0.072). So the guide recommendation below is not established. +> The post-fix rerun is run 4 (`grid_v4.yaml`, below). The k/m collapse +> under every guide holds after the fixes. + **Decision fed (step 5).** The relative fit is sound. Its point estimates match the anchored joint fit's without binding data. Fit it with `--guide_type auto_low_rank_multivariate_normal`, not the component guide. @@ -273,3 +287,37 @@ with real data (user, 2026-09-28). Its intervals, like every SVI fit's here, are too narrow. That is a separate problem shared with the joint fit, to take up before trusting coverage from any arm. + +## Run 4: post-fix guide comparison (set up 2026-10-01, not yet run) + +**Question.** With the frozen-scale and Laplace-floor fixes in, which +inference gives honest X intervals on the relative fit: the component +guide, the low-rank guide (numpyro's default rank, and rank 20 as on the +real-data run `planning/dev-data/real_fit/rel_off_n05_svi`), MAP + floored +Laplace, or the two-stage fit? + +**Design** ([`grid_v4.yaml`](grid_v4.yaml), template +[`run_v4.srun`](run_v4.srun)): runs 2-3's simulations (same base config, +noise levels and seeds 1-3), relative fit only, 5 inference arms, so 2 +noise x 3 seeds x 5 = 30 runs. Every arm holds the log(hill_n) population +SD at 0.5, as the real-data fits now do. `run_v4.srun` is run.srun plus +the svi-overconfidence study's two-stage path and guide diagnostics +(`../svi-overconfidence/two_stage.py`, `guide_diagnostics.py`, staged +into the grid's inputs) and a `guide_rank` variable. 12 h per run. + +```bash +tfs-setup-sim-grid grid_v4.yaml --out_prefix relative_fit_v4 +for d in relative_fit_v4/run_*/; do (cd "$d" && sbatch run_v4.srun); done +``` + +Afterwards: + +```bash +tfs-summarize-calibration relative_fit_v4 --out_prefix calib/relative_fit_v4 \ + --facet_by founder_sampling +``` + +Compare X coverage by depth, RMSE and width across arms, k and m coverage, +and the guide diagnostics (log-weight SD, k-hat) for the two SVI arms. The +low-rank rank-20 arm decides whether the real-data run's rank was enough. + diff --git a/planning/studies/relative-fit/grid_v4.yaml b/planning/studies/relative-fit/grid_v4.yaml new file mode 100644 index 00000000..74ea26bb --- /dev/null +++ b/planning/studies/relative-fit/grid_v4.yaml @@ -0,0 +1,86 @@ +# --------------------------------------------------------------------------- +# Relative-X fit study, run 4: post-fix guide comparison (2026-10-01) +# +# tfs-setup-sim-grid grid_v4.yaml --out_prefix relative_fit_v4 +# for d in relative_fit_v4/run_*/; do (cd "$d" && sbatch run_v4.srun); done +# +# Runs 2 and 3 (2026-09-28) recommended the low-rank guide for the relative +# fit, but ran with two bugs fixed on 2026-09-29: every component-guide +# hyperparameter scale frozen at its 1e-4 bound (the low-rank autoguide +# was unaffected) and the flat 1e-3 Laplace eigenvalue floor (the map +# arm's blowups). This reruns the relative fit's inference arms on the same +# simulations with the fixed code (README, "Run 4"). +# +# Relative fit only (no joint baseline: the question is which inference +# to trust on growth alone). Every arm holds the log(hill_n) population SD +# at 0.5, as the real-data fits do. +# component mean-field component guide +# low_rank low-rank MVN, numpyro's default rank +# low_rank (rank 20) the rank of the real-data run rel_off_n05_svi +# map MAP, then the floored Laplace posterior +# two_stage MAP, floored Laplace, conditional component fits +# +# 2 noise x 3 seeds x 5 arms = 30 runs. +# --------------------------------------------------------------------------- + +base_config: ../congression-calibration/simulate_config.yaml + +run_name: "{{ 'realistic' if founder_sampling else 'poisson' }}__seed{{ seed }}__{{ inference }}{{ ('_r' ~ guide_rank) if guide_rank else '' }}" + +output_file: run_v4.srun + + +simulate: + + - name: noise + variants: + - founder_sampling: false + - founder_sampling: true + demographic_growth: true + shared_transformation: true + cfu0: 150_000.0 + pcr_template_molecules: 150_000 + pcr_amplification_cv: 0.5 + + - name: lam + variants: + - transformation_poisson_lambda: 0.0 + + - name: dk + variants: + - dk_geno_hyper_loc: -3.5 + dk_geno_hyper_scale: 0.5 + dk_geno_hyper_shift: 0.02 + + - name: seed + variants: + - seed: 1 + - seed: 2 + - seed: 3 + + +template: + + - name: fit + variants: + - fit: relative + n_scale: 0.5 + + - name: inference + variants: + - inference: component + guide_rank: "" + - inference: low_rank + guide_rank: "" + - inference: low_rank + guide_rank: 20 + - inference: map + guide_rank: "" + - inference: two_stage + guide_rank: "" + + # copied into the grid's inputs/ and named from each run + - name: scripts + variants: + - diagnostics_script: ../svi-overconfidence/guide_diagnostics.py + two_stage_script: ../svi-overconfidence/two_stage.py diff --git a/planning/studies/relative-fit/run_v4.srun b/planning/studies/relative-fit/run_v4.srun new file mode 100644 index 00000000..c93f55ad --- /dev/null +++ b/planning/studies/relative-fit/run_v4.srun @@ -0,0 +1,164 @@ +#!/bin/bash -l +#SBATCH --account=harmslab +#SBATCH --job-name=relative_v4 +#SBATCH --output=run.out +#SBATCH --error=run.err +#SBATCH --partition=gpu +#SBATCH --time=00-12:00:00 +#SBATCH --nodes=1 +#SBATCH --cpus-per-task=8 +#SBATCH --gpus=1 +#SBATCH --ntasks-per-node=1 + +# Relative-X fit study, run 4 (post-fix guide comparison), one run (rendered +# by tfs-setup-sim-grid from planning/studies/relative-fit/run_v4.srun; +# built on ../svi-overconfidence/run.srun for the two-stage path and guide +# diagnostics). Submit from the run directory: sbatch run_v4.srun + +# Swap lines if on cluster (module load) or local (XLA_FLAGS to use CPU) +module load cuda/12.4.1 +#export XLA_FLAGS="--xla_force_host_platform_device_count=8" + +set -e + +# joint (hill_geno + binding + prefit) or relative (hill_relative, growth only) +FIT="{{ fit }}" +# Growth likelihood: counts (default; with a per-tube level offset, and no +# extra growth noise, which it refuses) or lncfu (with normal_kt growth +# noise). grid.yaml runs counts only. +LIKELIHOOD="{{ likelihood | default('counts') }}" +# component (mean-field component guide), low_rank (low-rank multivariate +# normal autoguide), map (MAP, then a Laplace posterior), or two_stage / +# two_stage_low_rank (MAP, Laplace, then conditional SVI refits) +INFERENCE="{{ inference | default('component') }}" +# rank of the low-rank guide; empty = numpyro's default (round(sqrt(D))) +GUIDE_RANK="{{ guide_rank | default('') }}" +# population SD of log(hill_n), held (theta_log_hill_n_hyper_scale_fixed); +# empty = learned. Learned, it ran to about 19 on real data (2026-10-01). +N_SCALE="{{ n_scale | default('') }}" + +SEED=$(python -c "import yaml; print(yaml.safe_load(open('tfs_sim_config.yaml'))['seed'])") + +# --------------------------------------------------------------------------- +# 1. Simulate +# --------------------------------------------------------------------------- +echo ">>> Simulate (seed=${SEED})" +tfs-simulate tfs_sim_config.yaml . --seed "${SEED}" + +# --------------------------------------------------------------------------- +# 2. Configure +# --------------------------------------------------------------------------- +if [[ "${LIKELIHOOD}" == "counts" ]]; then + LIKELIHOOD_ARGS=(--growth_likelihood counts --growth_noise_model zero + --sample_offset_model level) +else + LIKELIHOOD_ARGS=(--growth_likelihood lncfu --growth_noise_model normal_kt + --sample_offset_model zero) +fi + +if [[ "${FIT}" == "relative" ]]; then + FIT_ARGS=(--theta_model hill_relative) +else + FIT_ARGS=(--theta_model hill_geno + --binding_df tfs_sim_binding.csv + --binding_weight 1.0) +fi + +echo ">>> Configure (${FIT}, ${LIKELIHOOD})" +tfs-configure-model \ + --growth_df tfs_sim_growth.csv \ + --presplit_df tfs_sim_presplit.csv \ + --condition_growth_model linear \ + --growth_transition_model instant \ + --ln_cfu0_model hierarchical \ + --dk_geno_model hierarchical_geno \ + --activity_model fixed \ + --theta_rescale_model passthrough \ + --theta_growth_noise_model zero \ + --theta_binding_noise_model zero \ + --transformation_model single \ + --library_config tfs_sim_config.yaml \ + --growth_shares_replicates \ + "${FIT_ARGS[@]}" \ + "${LIKELIHOOD_ARGS[@]}" + +if [[ -n "${N_SCALE}" ]]; then + grep -q '^theta.theta_log_hill_n_hyper_scale_fixed,' tfs_configure_priors.csv + sed -i "s/^theta.theta_log_hill_n_hyper_scale_fixed,[^,]*/theta.theta_log_hill_n_hyper_scale_fixed,${N_SCALE}/" \ + tfs_configure_priors.csv + echo "log hill_n population SD held at ${N_SCALE}" +fi + +# --------------------------------------------------------------------------- +# 3. Pre-fit calibration (joint only: it needs binding), fit, posterior +# --------------------------------------------------------------------------- +if [[ "${FIT}" == "joint" ]]; then + echo ">>> Pre-fit calibration" + tfs-prefit-calibration tfs_configure_config.yaml --seed "${SEED}" \ + --k_scale_ceiling 0.005 +fi + +case "${INFERENCE}" in + component) INFERENCE_ARGS=() ;; + low_rank) INFERENCE_ARGS=(--guide_type auto_low_rank_multivariate_normal) + if [[ -n "${GUIDE_RANK}" ]]; then + INFERENCE_ARGS+=(--guide_rank "${GUIDE_RANK}") + fi ;; + # a converged MAP took ~130,000 epochs on run 1's run 0002; Laplace + # needs it converged (a MAP stopped at a fixed step size had 9 negative + # Hessian eigenvalues and gave 95% intervals ~1e10 wide) + map) INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; + # MAP as for map, then two_stage.py: SVI refits at Laplace draws of k, m + # with the component guide (two_stage) or the low-rank autoguide + # (two_stage_low_rank) + two_stage|two_stage_low_rank) + INFERENCE_ARGS=(--analysis_method map --max_num_epochs 200000) ;; + *) echo "unknown inference '${INFERENCE}'" >&2; exit 1 ;; +esac + +echo ">>> Fit model (${INFERENCE})" +tfs-fit-model tfs_configure_config.yaml --seed "${SEED}" "${INFERENCE_ARGS[@]}" + +if [[ "${INFERENCE}" != "map" && "${INFERENCE}" != two_stage* ]]; then + echo ">>> Guide diagnostics" + # diagnostics only; never stops the run + python "{{ diagnostics_script }}" tfs_fit_model_checkpoint.pkl \ + --num_draws 2000 --out_prefix tfs_guide_diagnostics \ + || echo "guide diagnostics failed" >&2 +fi + +if [[ "${INFERENCE}" == two_stage* ]]; then + if [[ "${INFERENCE}" == "two_stage_low_rank" ]]; then + GUIDE=auto_low_rank_multivariate_normal + else + GUIDE=component + fi + echo ">>> Laplace posterior (stage 1)" + tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl \ + --out_prefix tfs_laplace + echo ">>> Conditional fits at Laplace draws of k, m (stage 2)" + python "{{ two_stage_script | default('two_stage.py') }}" \ + --laplace_file tfs_laplace.h5 --num_draws 10 --samples_per_draw 1000 \ + --seed "${SEED}" --guide_type "${GUIDE}" --out_prefix tfs_posterior +else + echo ">>> Sample posterior" + tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl +fi + +# --------------------------------------------------------------------------- +# 4. Extract, predict, summarize +# --------------------------------------------------------------------------- +echo ">>> Extract parameters" +tfs-extract-params tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict theta" +tfs-predict-theta tfs_configure_config.yaml tfs_posterior.h5 + +echo ">>> Predict growth" +tfs-predict-growth tfs_configure_config.yaml tfs_posterior.h5 \ + --num_marginal_samples=500 + +echo ">>> Summarize fit" +tfs-summarize-fit . + +echo ">>> Done" From f762b130b1a8dc141c1cba435fa15088ea095009 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Thu, 1 Oct 2026 20:38:36 -0700 Subject: [PATCH 077/208] Rerun the relative-fit guide comparison after the scale and Laplace fixes Runs 2-3 of the relative-fit study recommended the low-rank guide, but ran with every component-guide hyperparameter scale frozen and with the flat Laplace floor (both fixed in 9db28286). Run 4 (grid_v4.yaml, 30 runs on the same simulations, log(hill_n) spread held at 0.5) repeats the comparison with the fixed code. The verdict holds: the component guide is still biased (X RMSE 0.29-0.30, 95% coverage 0.06 / 0.38), the low-rank guide recovers X (RMSE 0.07 / 0.12, coverage 0.81 / 0.76), and rank 20 matches the default rank. MAP + floored Laplace now works and covers best but is the noisiest; two-stage is best calibrated under Poisson noise only. Every guide collapses k and m. - relative-fit README: run 4 results tables and decision. - CLAUDE.md: the relative-fit inference recommendation, with its limits. - grid_v4.yaml / run_v4.srun / .gitignore: the rerun. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 2 +- planning/studies/relative-fit/README.md | 55 ++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 795b34bb..8def1fcd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -149,7 +149,7 @@ Roadmap step 3. `process_raw/od600.py` holds the method (C10: the lab's data nev ### Relative-X fit (`theta: hill_relative`) -Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). **Which inference to use is open.** Growth alone constrains mostly `m·(X_g - X_wt)`, so the posterior is a curved ridge along `m·X` that only wt's absolute growth change (via the tube totals) pins. Runs 2 and 3 of `planning/studies/relative-fit/` (2026-09-28) found the mean-field component guide sliding along it (smaller |m|, stretched X) while the low-rank guide (`--guide_type auto_low_rank_multivariate_normal`) recovered X, and MAP + Laplace blowing up in 5 of 6 runs. Both comparisons ran with bugs fixed on 2026-09-29: every component-guide hyperparameter scale frozen at its 1e-4 bound (2026-09-27 16:48 to 2026-09-29; the low-rank autoguide was unaffected) and the flat 1e-3 Laplace eigenvalue floor (the blowups); the learned log(hill_n) spread was also free then. The svi-overconfidence study's relative arm, in the same window on another library, found the two guides about equal (X 95% coverage 0.68 vs 0.74, RMSE 0.071 vs 0.072). Every guide collapses k and m. The post-fix rerun is `planning/studies/relative-fit/grid_v4.yaml` (component, low-rank at the default rank and at rank 20, MAP + floored Laplace, two-stage; n spread held at 0.5). Until it reports, the low-rank guide is a reasonable choice, not a validated one. Validation grid: `planning/studies/relative-fit/`. +Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). **Which inference to use is open.** Growth alone constrains mostly `m·(X_g - X_wt)`, so the posterior is a curved ridge along `m·X` that only wt's absolute growth change (via the tube totals) pins. Runs 2 and 3 of `planning/studies/relative-fit/` (2026-09-28) found the mean-field component guide sliding along it (smaller |m|, stretched X) while the low-rank guide (`--guide_type auto_low_rank_multivariate_normal`) recovered X, and MAP + Laplace blowing up in 5 of 6 runs. Both comparisons ran with bugs fixed on 2026-09-29: every component-guide hyperparameter scale frozen at its 1e-4 bound (2026-09-27 16:48 to 2026-09-29; the low-rank autoguide was unaffected) and the flat 1e-3 Laplace eigenvalue floor (the blowups); the learned log(hill_n) spread was also free then. The svi-overconfidence study's relative arm, in the same window on another library, found the two guides about equal (X 95% coverage 0.68 vs 0.74, RMSE 0.071 vs 0.072). Every guide collapses k and m. The post-fix rerun (`planning/studies/relative-fit/grid_v4.yaml`, run 4, 2026-10-01, 30 runs) confirmed the guide verdict: the component guide is biased even with the fixes (X RMSE 0.29-0.30, 95% coverage 0.06 Poisson / 0.38 realistic), and the low-rank guide recovers X (RMSE 0.07 / 0.12, coverage 0.81 / 0.76); rank 20 matches numpyro's default rank. MAP + floored Laplace now works and covers X and k/m best, but with the widest intervals and the noisiest point. Two-stage is the best calibrated under Poisson noise (0.91) and no better than low-rank under realistic noise (0.78). Every guide collapses k and m. So: the low-rank guide, rank 20, expecting X intervals to undercover somewhat and k/m intervals to be too narrow. Validation grid: `planning/studies/relative-fit/`. ### Adding a New Model Component diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index f41db221..d9eb613e 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -288,7 +288,7 @@ Its intervals, like every SVI fit's here, are too narrow. That is a separate problem shared with the joint fit, to take up before trusting coverage from any arm. -## Run 4: post-fix guide comparison (set up 2026-10-01, not yet run) +## Run 4: post-fix guide comparison (2026-10-01) **Question.** With the frozen-scale and Laplace-floor fixes in, which inference gives honest X intervals on the relative fit: the component @@ -321,3 +321,56 @@ Compare X coverage by depth, RMSE and width across arms, k and m coverage, and the guide diagnostics (log-weight SD, k-hat) for the two SVI arms. The low-rank rank-20 arm decides whether the real-data run's rank was enough. +**Results (2026-10-01).** All 30 runs finished. Every MAP and the +Poisson two-stage MAPs hit their caps (200,000 / 100,000 epochs); every +other SVI fit converged. Pooled into `calib/relative_fit_v4_*` (not +committed). Means over 3 seeds per arm. + +X test set: + +| noise | arm | 95% cov | 50% cov | median 95% width | RMSE | +|---|---|---|---|---|---| +| poisson | component | 0.06 | 0.02 | 0.16 | 0.297 | +| poisson | low_rank | 0.81 | 0.38 | 0.11 | 0.068 | +| poisson | low_rank rank 20 | 0.81 | 0.38 | 0.11 | 0.065 | +| poisson | map + Laplace | 0.98 | 0.63 | 0.22 | 0.105 | +| poisson | two_stage | 0.91 | 0.51 | 0.13 | 0.075 | +| realistic | component | 0.38 | 0.14 | 0.31 | 0.289 | +| realistic | low_rank | 0.76 | 0.38 | 0.27 | 0.126 | +| realistic | low_rank rank 20 | 0.76 | 0.38 | 0.27 | 0.119 | +| realistic | map + Laplace | 0.94 | 0.45 | 0.64 | 0.293 | +| realistic | two_stage | 0.78 | 0.32 | 0.27 | 0.110 | + +95% coverage of the shared and per-genotype parameters (Poisson / +realistic): + +| arm | growth_k | growth_m | dk_geno | log_hill_K | hill_n | +|---|---|---|---|---|---| +| component | 0 / 0 | 0 / 0.08 | 0.20 / 0.63 | 0.81 / 0.84 | 0.87 / 0.87 | +| low_rank | 0 / 0 | 0.25 / 0.08 | 0.41 / 0.71 | 0.80 / 0.85 | 0.83 / 0.87 | +| low_rank rank 20 | 0 / 0 | 0.25 / 0.08 | 0.38 / 0.70 | 0.79 / 0.85 | 0.82 / 0.86 | +| map + Laplace | 0.92 / 0.58 | 0.92 / 0.50 | 0.98 / 0.88 | 0.92 / 0.86 | 0.91 / 0.85 | +| two_stage | 0.75 / 0.25 | 0.83 / 0.33 | 0.75 / 0.88 | 0.85 / 0.84 | 0.87 / 0.86 | + +- **The component guide is biased even with the fixes**: X RMSE 0.29-0.30 + against 0.07-0.13 for the low-rank guide; 95% coverage 0.06 / 0.38. The + frozen scales were not the cause, and runs 2-3's guide verdict stands. +- **Rank 20 matches numpyro's default rank** in every number, so the + real-data run's rank is enough. +- **The low-rank guide undercovers X moderately** (0.81 / 0.76 at 95%, + 0.38 at 50%). +- **Two-stage is the best calibrated under Poisson noise** (0.91 / 0.51) + but no better than low-rank under realistic noise (0.78 / 0.32). It is + the only SVI route that covers k and m at all, and only partly under + realistic noise. +- **MAP + floored Laplace now works**: it covers X (0.98 / 0.94) and k/m + best, but with the widest intervals and the noisiest point (RMSE 0.105 / + 0.293). The run-2 blowups were the old floor. Every MAP hit its 200,000 + epoch cap. +- **Every guide collapses k and m** (coverage 0-0.25). + +**Decision fed.** Fit the relative model with the low-rank guide (rank 20 +is enough). Expect X 95% intervals to cover about 0.76-0.81, and treat k +and m intervals from any guide as too narrow. A full-library Laplace is +out of reach (about 2M parameters), so on real data the k/m uncertainty +needs the two-stage fit with the Laplace taken on a subset. From cd208d1518bdb862788b95fdbd7fe9b452912c89 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 2 Oct 2026 08:07:15 -0700 Subject: [PATCH 078/208] Add a per-genotype Laplace for full-library uncertainty tfs-sample-posterior --laplace_blocks (get_laplace_posteriors with block_genotypes=True, block_laplace_factors) holds the shared parameters (growth k and m, hyperparameters, tube offsets) at the MAP and gives each genotype the Laplace of its own parameters. Given the shared parameters the genotypes do not couple, so the Hessian splits into one small block per genotype; B Hessian-vector products per genotype chunk give every block at once, so it runs where the full Hessian (about 2M parameters on the dev-data screen) cannot. It checks that the blocks separate and refuses a model where they do not. On the relative-fit run-4 MAPs it covered X at 0.93 / 0.84 (Poisson / realistic) against 0.98 / 0.94 for the full Laplace and 0.81 / 0.76 for the low-rank guide; it leaves out the k/m uncertainty. Also fixes the Laplace path taking the full batch with the mini-batch likelihood scale still applied (num_genotype / batch_size, 53x at the dev-data batch size). No past result was affected: the full Laplace had only run with batch_size at or above the library. Tests: block factors against the full Hessian's diagonal blocks, chunking, refusal of a coupled model, shared parameters held across draws, the unscaled batch, CLI forwarding. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 24 ++ CLAUDE.md | 4 +- planning/studies/relative-fit/README.md | 26 ++ .../tfmodel/inference/run_inference.py | 272 ++++++++++++++---- .../tfmodel/scripts/sample_posterior_cli.py | 24 +- .../tfmodel/inference/test_run_inference.py | 134 +++++++++ .../scripts/test_sample_posterior_cli.py | 31 ++ 7 files changed, 461 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0de13646..72e40f7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,30 @@ fall into two kinds: ### Added +- **`tfs-sample-posterior --laplace_blocks`** (`RunInference.get_laplace_posteriors(block_genotypes=True)`, + `block_laplace_factors`): a per-genotype Laplace at a MAP. The shared + parameters (growth k and m, hyperparameters, tube offsets) stay at the + MAP. Given them, each genotype's parameters couple to no other genotype, + so the Hessian splits into one small block per genotype (9-11 + parameters). B Hessian-vector products per genotype chunk give every + block at once (`--genotype_chunk_size`), so it runs on a full library, + where the full Hessian (about 2M parameters) cannot. It checks that the + blocks really separate, and refuses a model where they do not. On the + relative-fit run-4 MAPs, X 95% coverage was 0.93 (Poisson) and 0.84 + (realistic), against 0.98 / 0.94 for the full Laplace and 0.81 / 0.76 for + the low-rank guide. It leaves out the k/m uncertainty (coverage 0). + +### Fixed + +- **The Laplace path no longer applies the mini-batch likelihood scale at + full batch.** `scale_vector` is built for the configured batch size, so a + model configured with `batch_size` below the library weighted every + growth likelihood by `num_genotype / batch_size` (53x on the dev-data + screen at 4096) even when the Hessian was taken over the whole library. + `RunInference._unscaled_batch` removes it. The full Laplace had only run + on simulations with `batch_size` at or above the library, so no result + was affected. + - **`theta: hill_geno` and `hill_relative` take `theta_log_hill_n_hyper_scale_fixed`.** Above 0, the population SD of log(hill_n) is held at that value (a deterministic site, no guide diff --git a/CLAUDE.md b/CLAUDE.md index 8def1fcd..deafa2e9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,7 +48,7 @@ tfs-configure-model # Generate YAML config template (+ library compositio tfs-prefit-calibration # Pre-fit linking function via MAP tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut; --adam_clip_norm opts back into elementwise gradient clipping, off by default; --init_from starts at an earlier MAP's {site}_auto_loc values, e.g. a level-offset fit from a zero-offset fit, since guesses cannot name sites outside the configured guesses) tfs-fit-genotypes # Per-genotype MLE fits of the growth model (no congression correction) -tfs-sample-posterior # Draw posterior samples from fitted model (--map_point: a MAP checkpoint's point, no Laplace; --skip_growth_observations: leave out growth_pred/growth_obs, most of the file on a large library) +tfs-sample-posterior # Draw posterior samples from fitted model (--map_point: a MAP checkpoint's point, no Laplace; --laplace_blocks: per-genotype Laplace with the shared parameters held at the MAP, runs on a full library, leaves out k/m uncertainty; --skip_growth_observations: leave out growth_pred/growth_obs, most of the file on a large library) tfs-sample-prior # Draw prior predictive samples tfs-extract-params # Extract parameters from checkpoint tfs-predict-growth # Predict growth from fitted model @@ -185,6 +185,8 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi **MAP values: constrained or not.** AutoDelta's `svi.get_params(state)` (what `run_optimization` returns and `write_params` saves) is *constrained*; `svi.optim.get_params(state.optim_state)` (what `tfs-sample-posterior`, `tfs-extract-params` and `checkpoint_io` read from checkpoints) is *unconstrained*. `compute_hessian_sigmas` takes the former, `get_laplace_posteriors`/`get_map_posteriors`/`_map_params_to_constrained` the latter. Mixing them up silently evaluates positive sites at `exp(value)` (the pre-fit did until 2026-09-27). +**Block Laplace.** `get_laplace_posteriors(block_genotypes=True)` (`tfs-sample-posterior --laplace_blocks`) holds the shared parameters at the MAP and gives each genotype the Laplace of its own parameters. Given the shared parameters the genotypes do not couple (checked: every cross-genotype Hessian entry was 0 on a relative-fit run, wt included, since the X gauge fixes only wt's own baselines), so `block_laplace_factors` gets every B x B block from B Hessian-vector products whose probe is 1 on one slot of every genotype, over genotype chunks, and refuses a model whose blocks leak. Each block is floored like the full Laplace. Both Laplace paths take the Hessian on `_unscaled_batch`, the full batch with the mini-batch scale removed: `scale_vector` carries `num_genotype / batch_size` even at full batch. On relative-fit run 4 the block Laplace covered X 0.93 / 0.84 (Poisson / realistic) and k/m 0. The MAP point's X is poor at low depth under realistic noise (RMSE 1.3 at <= 100 reads, against 0.22 for the low-rank guide's point; the MAP's hyperscales run away, so nothing shrinks it), but the intervals are wide enough to cover there. + **Laplace floor.** `get_laplace_posteriors` floors each Hessian eigenvalue at the prior's curvature along its eigenvector (`laplace_eigenvalue_floor`; prior SDs from `site_unconstrained_prior_sds` with the MAP substituted; `LAPLACE_MIN_EIGENVALUE` = 1e-3 where no prior SD is usable), so no direction of the Laplace is wider than the prior. The old flat 1e-3 floor turned a MAP's negative eigenvalues (a hierarchical MAP stopped at its epoch cap always has a few) into variances of 1000 that leaked into whatever they touched: on the two-stage grid the draws of the growth slope m spread 50x (seed 8). ### Per-condition growth priors diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index d9eb613e..b8d852af 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -374,3 +374,29 @@ is enough). Expect X 95% intervals to cover about 0.76-0.81, and treat k and m intervals from any guide as too narrow. A full-library Laplace is out of reach (about 2M parameters), so on real data the k/m uncertainty needs the two-stage fit with the Laplace taken on a subset. + +**Block Laplace on run 4's MAPs (2026-10-02, local).** The per-genotype +Laplace (`tfs-sample-posterior --laplace_blocks`, new) on copies of the six +`map` runs (500 draws each, then predict, extract and summarize; not +committed). Given the shared parameters, run 0004's full Hessian (4,521 +parameters: 478 genotypes x 9, plus 219 shared) had every cross-genotype +entry exactly 0, wt included. Each block's covariance matched the inverse +of the full Hessian's diagonal block to 8e-6, except where the prior floor +raised an eigenvalue. + +| noise | arm | X 95% cov | 50% cov | median 95% width | k / m cov | +|---|---|---|---|---|---| +| poisson | block Laplace | 0.93 | 0.49 | 0.17 | 0 / 0 | +| poisson | full Laplace | 0.98 | 0.63 | 0.22 | 0.92 / 0.92 | +| realistic | block Laplace | 0.84 | 0.40 | 0.55 | 0 / 0 | +| realistic | full Laplace | 0.94 | 0.45 | 0.64 | 0.58 / 0.50 | + +log_hill_K, hill_n and dk_geno cover 0.80-0.91 under both. By genotype +total reads, under realistic noise (block Laplace / low-rank X RMSE, block +coverage): <= 100: 1.38 / 0.22, 0.99; 1e2-1e3: 0.63 / 0.24, 0.93; 1e3-1e4: +0.23 / 0.16, 0.83; > 1e4: 0.057 / 0.091, 0.83 (low-rank covers 0.70 +there). The MAP point is poor at low depth, where nothing shrinks it, but +its intervals cover; at high depth it beats the low-rank point. The +missing k/m uncertainty costs coverage at high depth (0.83 against the +full Laplace's 0.94). + diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index a28c46c1..4bab221d 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -2236,6 +2236,140 @@ def _laplace_prior_precision(self, unconstrained, model_kwargs, D): flat[bad] = LAPLACE_MIN_EIGENVALUE return flat + def _unscaled_batch(self, data, idx): + """ + ``get_batch`` with the mini-batch likelihood scale removed. + + ``scale_vector`` is built for the configured batch size, so a batch + taken at full size from a model configured with ``batch_size`` below + the library still weights every growth likelihood by + ``num_genotype / batch_size`` (53x on the dev-data screen at 4096). + A Hessian must see each observation once. + """ + batch = self.model.get_batch(data, idx) + if getattr(batch, "growth", None) is not None: + batch = batch.replace(growth=batch.growth.replace( + scale_vector=jnp.ones_like(batch.growth.scale_vector))) + return batch + + def block_laplace_factors(self, unconstrained, dim_map, data, flat_map, + unravel, model_kwargs, genotype_chunk_size=None, + leak_tolerance=1e-5): + """ + Per-genotype Laplace factors with the shared parameters held at the MAP. + + Given the shared parameters, each genotype's own unconstrained + parameters (every element of a genotype-plate site at its index) + appear only in that genotype's prior and observations, so the + Hessian of the negative log joint restricted to them is + block-diagonal: one ``B x B`` block per genotype. Column ``j`` of + every block comes from one Hessian-vector product whose probe is 1 + on slot ``j`` of every genotype at once, so the whole factorization + costs ``B`` products per genotype chunk. Each block's eigenvalues + are floored at the prior's curvature along their eigenvectors + (``laplace_eigenvalue_floor``), as in the full Laplace. + + Parameters + ---------- + unconstrained : dict + Unconstrained MAP values by site. + dim_map : dict + Genotype axis of each genotype-plate site + (``_get_genotype_dim_map``). + data : DataClass + The full data (on device). + flat_map, unravel + ``ravel_pytree(unconstrained)``. + model_kwargs : dict + ``priors`` and the unscaled full-batch ``data`` (for the prior + precisions). + genotype_chunk_size : int or None, optional + Genotypes per pass (default all). + leak_tolerance : float, optional + Largest allowed response on other genotypes' parameters to a + probe on one set of genotypes, relative to the response on the + probed ones; above it the blocks are not separable and this + raises. + + Returns + ------- + elem_idx : numpy.ndarray, shape (num_genotype, B) + Flat positions of each genotype's parameters. + L_blocks : numpy.ndarray, shape (num_genotype, B, B) + Factors with ``L_g L_g^T`` = genotype g's conditional covariance. + """ + import jax.flatten_util + from numpyro.infer.util import potential_energy + + G = self.model.data.num_genotype + gid = {} + for k, v in unconstrained.items(): + a = np.full(np.shape(v), -1.0) + if k in dim_map and np.ndim(v) > 0: + ax = dim_map[k] % np.ndim(v) + if np.shape(v)[ax] == G: + shape = [1] * np.ndim(v) + shape[ax] = G + a = np.broadcast_to(np.arange(G).reshape(shape), + np.shape(v)).astype(float) + gid[k] = jnp.asarray(a) + flat_gid = np.rint(np.asarray( + jax.flatten_util.ravel_pytree(gid)[0])).astype(int) + per = np.bincount(flat_gid[flat_gid >= 0], minlength=G) + if per.size == 0 or not np.all(per == per[0]) or per[0] == 0: + raise ValueError("block Laplace needs the same number of " + "parameters for every genotype") + B = int(per[0]) + order = np.argsort(np.where(flat_gid >= 0, flat_gid, G), kind="stable") + elem_idx = order[:G * B].reshape(G, B) + D = flat_map.shape[0] + print(f"Block Laplace: {G} genotypes x {B} parameters; " + f"{D - G * B} shared parameters held at the MAP", flush=True) + + priors = self.model.priors + + @jax.jit + def hvp(batch, v): + def pe(f): + return potential_energy(self.model.jax_model, [], + {"priors": priors, "data": batch}, + unravel(f)) + return jax.jvp(jax.grad(pe), (flat_map,), (v,))[1] + + chunk = G if not genotype_chunk_size else int(genotype_chunk_size) + blocks = np.zeros((G, B, B)) + for start in range(0, G, chunk): + idx = np.arange(start, min(start + chunk, G)) + batch = self._unscaled_batch(data, jnp.asarray(idx)) + if start == 0 and idx.size > 1: + probed, other = idx[::2], idx[1::2] + v = jnp.zeros(D).at[elem_idx[probed].ravel()].set(1.0) + hv = np.asarray(hvp(batch, v)) + on = np.max(np.abs(hv[elem_idx[probed]])) + leak = np.max(np.abs(hv[elem_idx[other]])) + if on > 0 and leak / on > leak_tolerance: + raise ValueError( + f"genotype blocks are coupled (response on unprobed " + f"genotypes {leak / on:.2e} of the probed ones); the " + f"block Laplace does not apply to this model") + for j in range(B): + v = jnp.zeros(D).at[elem_idx[idx, j]].set(1.0) + hv = np.asarray(hvp(batch, v), dtype=float) + blocks[idx, :, j] = hv[elem_idx[idx]] + + blocks = 0.5 * (blocks + np.transpose(blocks, (0, 2, 1))) + w, V = np.linalg.eigh(blocks) + prec = self._laplace_prior_precision(unconstrained, model_kwargs, D) + prec_b = prec[elem_idx] + curvature = np.einsum("gij,gi,gij->gj", V, prec_b, V) + floor = np.maximum(curvature, LAPLACE_MIN_EIGENVALUE) + w_f = np.maximum(w, floor) + print(f" {int(np.sum(np.any(w < 0, axis=1)))} of {G} blocks had " + f"negative eigenvalues; {int(np.sum(w < floor))} of {G * B} " + f"eigenvalues raised to the prior's curvature", flush=True) + L_blocks = V / np.sqrt(w_f)[:, None, :] + return elem_idx, L_blocks + def get_laplace_posteriors(self, map_params, out_prefix, @@ -2243,7 +2377,9 @@ def get_laplace_posteriors(self, sampling_batch_size=100, forward_batch_size=512, hessian_chunk_size=64, - sites_to_save=None): + sites_to_save=None, + block_genotypes=False, + genotype_chunk_size=None): """ Generate posterior samples from a MAP solution using the Laplace approximation. @@ -2276,6 +2412,21 @@ def get_laplace_posteriors(self, sites_to_save : list of str or None, optional If given, only these site names are written to the HDF5 file. If None (default), all sites are saved. + block_genotypes : bool, optional + Per-genotype (block-diagonal) Laplace instead of the full one + (default False). The shared parameters (growth k and m, + hyperparameters, tube offsets) are held at the MAP, and each + genotype's own parameters get the Laplace of their conditional + posterior: given the shared parameters they couple to no other + genotype, so the Hessian splits into one small block per + genotype (``block_laplace_factors``). Memory and time scale with + the library, not its square, so it runs on a full library where + the full Hessian cannot. It leaves out the shared parameters' + uncertainty. + genotype_chunk_size : int or None, optional + Genotypes per Hessian-vector-product pass in block mode (default + None, the whole library in one pass). Lower it if the pass runs + out of device memory. Notes ----- @@ -2294,7 +2445,8 @@ def get_laplace_posteriors(self, dim_map = self._get_genotype_dim_map() all_indices = jnp.arange(total_num_genotypes) - full_data = self.model.get_batch(data_on_gpu, all_indices) + # unscaled: at full batch every genotype's likelihood counts once + full_data = self._unscaled_batch(data_on_gpu, all_indices) model_kwargs = {"priors": self.model.priors, "data": full_data} # Strip _auto_loc suffix → unconstrained site-level param dict @@ -2311,54 +2463,75 @@ def get_laplace_posteriors(self, # Flatten to a single vector for Hessian computation flat_map, unravel = jax.flatten_util.ravel_pytree(unconstrained) D = flat_map.shape[0] - print(f"Computing Hessian for {D} parameters " - f"(chunk_size={hessian_chunk_size}) ...", flush=True) - - def pe_fn(flat_p): - return potential_energy( - self.model.jax_model, [], model_kwargs, unravel(flat_p) - ) + if block_genotypes: + elem_idx, L_blocks = self.block_laplace_factors( + unconstrained, dim_map, data_on_gpu, flat_map, unravel, + model_kwargs, genotype_chunk_size=genotype_chunk_size) + elem_flat = jnp.asarray(elem_idx.reshape(-1)) + L_blocks = jnp.asarray(L_blocks, dtype=jnp.float32) + + def draw(key, n): + # shared parameters stay at the MAP; each genotype's block + # gets mean + L_g z_g + z = jax.random.normal(key, shape=(n,) + L_blocks.shape[:2]) + delta = jnp.einsum("gij,ngj->ngi", L_blocks, z) + base = jnp.broadcast_to(flat_map, (n, D)) + return base.at[:, elem_flat].add(delta.reshape(n, -1)) + else: + print(f"Computing Hessian for {D} parameters " + f"(chunk_size={hessian_chunk_size}) ...", flush=True) - H_np = self._chunked_hessian(pe_fn, flat_map, hessian_chunk_size) + def pe_fn(flat_p): + return potential_energy( + self.model.jax_model, [], model_kwargs, unravel(flat_p) + ) - # Project Hessian to the PD cone and compute the Cholesky factor of the - # covariance in float64 (via numpy) so that sampling is numerically - # stable even when JAX_ENABLE_X64 is not set. - # - # Three sources of instability in the naive float32 approach: - # 1. Saddle-point MAP → negative Hessian eigenvalues → non-PD covariance - # 2. Very large eigenvalues (e.g. 2.6e8) → covariance condition number - # ~1e11, which exceeds float32 precision (~1e7) and reintroduces - # negative eigenvalues after the V @ diag(1/λ) @ V^T reconstruction. - # 3. jax.random.multivariate_normal uses Cholesky internally; if the - # covariance is not PD the Cholesky fails → NaN samples. - # - # Fix: do the eigendecomposition and Cholesky in numpy float64, floor - # each eigenvalue at the prior's curvature along its eigenvector - # (``laplace_eigenvalue_floor``), then sample as mean + L @ z where - # z ~ N(0,I) in float32. The old flat floor of 1e-3 gave a direction - # with a negative eigenvalue a variance of 1000 in unconstrained - # units; a MAP stopped short of its optimum always has a few, and - # where they touched the growth slopes m, Laplace draws of m spread - # 50x wider than its posterior (SVI-overconfidence two-stage grid, - # seed 8: m from -0.049 to +0.017, truth -0.010). - print("Projecting Hessian to PD cone and computing Cholesky ...", flush=True) - eigenvalues_np, eigenvectors_np = np.linalg.eigh(H_np) - n_negative = int(np.sum(eigenvalues_np < 0)) - prior_precision = self._laplace_prior_precision(unconstrained, - model_kwargs, D) - eigenvalues_pd, n_floored = laplace_eigenvalue_floor( - eigenvalues_np, eigenvectors_np, prior_precision) - if n_negative > 0: - print(f" Warning: {n_negative} negative Hessian eigenvalues " - f"(min={eigenvalues_np.min():.3e}); the MAP is not at an " - f"optimum.", flush=True) - print(f" {n_floored} of {D} eigenvalues raised to the prior's " - f"curvature along their eigenvector.", flush=True) - cov_np = eigenvectors_np @ np.diag(1.0 / eigenvalues_pd) @ eigenvectors_np.T - # Cholesky in float64; cast factor to float32 for the forward pass - L_np = np.linalg.cholesky(cov_np) - L = jnp.array(L_np, dtype=jnp.float32) + H_np = self._chunked_hessian(pe_fn, flat_map, hessian_chunk_size) + + # Project Hessian to the PD cone and compute the Cholesky factor of the + # covariance in float64 (via numpy) so that sampling is numerically + # stable even when JAX_ENABLE_X64 is not set. + # + # Three sources of instability in the naive float32 approach: + # 1. Saddle-point MAP → negative Hessian eigenvalues → non-PD covariance + # 2. Very large eigenvalues (e.g. 2.6e8) → covariance condition number + # ~1e11, which exceeds float32 precision (~1e7) and reintroduces + # negative eigenvalues after the V @ diag(1/λ) @ V^T reconstruction. + # 3. jax.random.multivariate_normal uses Cholesky internally; if the + # covariance is not PD the Cholesky fails → NaN samples. + # + # Fix: do the eigendecomposition and Cholesky in numpy float64, floor + # each eigenvalue at the prior's curvature along its eigenvector + # (``laplace_eigenvalue_floor``), then sample as mean + L @ z where + # z ~ N(0,I) in float32. The old flat floor of 1e-3 gave a direction + # with a negative eigenvalue a variance of 1000 in unconstrained + # units; a MAP stopped short of its optimum always has a few, and + # where they touched the growth slopes m, Laplace draws of m spread + # 50x wider than its posterior (SVI-overconfidence two-stage grid, + # seed 8: m from -0.049 to +0.017, truth -0.010). + print("Projecting Hessian to PD cone and computing Cholesky ...", flush=True) + eigenvalues_np, eigenvectors_np = np.linalg.eigh(H_np) + n_negative = int(np.sum(eigenvalues_np < 0)) + prior_precision = self._laplace_prior_precision(unconstrained, + model_kwargs, D) + eigenvalues_pd, n_floored = laplace_eigenvalue_floor( + eigenvalues_np, eigenvectors_np, prior_precision) + if n_negative > 0: + print(f" Warning: {n_negative} negative Hessian eigenvalues " + f"(min={eigenvalues_np.min():.3e}); the MAP is not at an " + f"optimum.", flush=True) + print(f" {n_floored} of {D} eigenvalues raised to the prior's " + f"curvature along their eigenvector.", flush=True) + cov_np = eigenvectors_np @ np.diag(1.0 / eigenvalues_pd) @ eigenvectors_np.T + # Cholesky in float64; cast factor to float32 for the forward pass + L_np = np.linalg.cholesky(cov_np) + L = jnp.array(L_np, dtype=jnp.float32) + + def draw(key, n): + # mean + z @ L^T (z ~ N(0,I)) avoids a second Cholesky + # inside jax.random.multivariate_normal + z = jax.random.normal(key, shape=(n, D)) + return flat_map + z @ L.T # Get unconstrained → constrained transform for each latent site seeded_model = seed(self.model.jax_model, rng_seed=0) @@ -2394,8 +2567,7 @@ def pe_fn(flat_p): # Use mean + z @ L^T (z ~ N(0,I)) to avoid a second Cholesky # inside jax.random.multivariate_normal. sample_key = self.get_key() - z = jax.random.normal(sample_key, shape=(this_batch_size, D)) - flat_samples = flat_map + z @ L.T + flat_samples = draw(sample_key, this_batch_size) # Unravel each sample and transform to constrained space. # jax.vmap(unravel) maps (N, D) → pytree of (N, *shape) arrays. diff --git a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py index af4bf3ab..e01f364f 100644 --- a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py +++ b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py @@ -27,7 +27,9 @@ def sample_posterior(config_file, forward_batch_size=512, hessian_chunk_size=64, map_point=False, - skip_growth_observations=False): + skip_growth_observations=False, + laplace_blocks=False, + genotype_chunk_size=None): """ Draw posterior samples from an existing MAP, SVI, or NUTS checkpoint. @@ -83,6 +85,17 @@ def sample_posterior(config_file, samples on a 200,000-genotype library), and ``tfs-predict-growth`` recomputes growth from the parameter samples rather than reading them. + laplace_blocks : bool, optional + For a MAP checkpoint, a per-genotype (block-diagonal) Laplace: the + shared parameters (growth k and m, hyperparameters, tube offsets) + stay at the MAP and each genotype's own parameters get their + conditional Laplace (default False). It scales with the library, + so it runs where the full Hessian cannot, but it leaves out the + shared parameters' uncertainty. Ignored for SVI and NUTS + checkpoints and with ``map_point``. + genotype_chunk_size : int or None, optional + Genotypes per Hessian-vector-product pass with ``laplace_blocks`` + (default None, all at once). Lower it on device OOM. """ if not os.path.isfile(checkpoint_file): raise FileNotFoundError( @@ -131,7 +144,9 @@ def sample_posterior(config_file, sites_to_save=sites_to_save) elif is_map: # MAP checkpoint: Hessian-based Laplace approximation. - print("Detected MAP checkpoint. Drawing Laplace posterior samples...", flush=True) + print("Detected MAP checkpoint. Drawing " + f"{'per-genotype ' if laplace_blocks else ''}Laplace " + "posterior samples...", flush=True) ri.get_laplace_posteriors( map_params=chk_params, out_prefix=ri_prefix, @@ -140,6 +155,8 @@ def sample_posterior(config_file, forward_batch_size=forward_batch_size, hessian_chunk_size=hessian_chunk_size, sites_to_save=sites_to_save, + block_genotypes=laplace_blocks, + genotype_chunk_size=genotype_chunk_size, ) else: # SVI checkpoint: rebuild the guide object then restore the saved @@ -168,7 +185,8 @@ def main(): "num_posterior_samples": int, "sampling_batch_size": int, "forward_batch_size": int, - "hessian_chunk_size": int}) + "hessian_chunk_size": int, + "genotype_chunk_size": int}) if __name__ == "__main__": diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index 96e756fb..bdb40a23 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -1381,3 +1381,137 @@ def test_laplace_eigenvalue_floor_minimum(): np.array([0.0])) assert floored[0] == pytest.approx(LAPLACE_MIN_EIGENVALUE) assert n == 1 + + +# ============================================================================= +# Block (per-genotype) Laplace +# ============================================================================= + +@struct.dataclass +class BlockData: + batch_idx: jnp.ndarray + y: jnp.ndarray # (num_genotype, 2) observations + num_genotype: int = struct.field(pytree_node=False, default=0) + coupled: bool = struct.field(pytree_node=False, default=False) + + +def _block_jax_model(data, priors): + """Shared mu; per-genotype (a, b) in a library-sized plate, sliced by + batch_idx; two observations per genotype that correlate a and b. With + ``coupled`` each observation also sees the library mean of a, so the + genotype blocks are not separable.""" + mu = numpyro.sample("mu", dist.Normal(0., 1.)) + with numpyro.plate("block_genotype_plate", data.num_genotype, dim=-1): + a = numpyro.sample("a", dist.Normal(mu, 1.)) + b = numpyro.sample("b", dist.Normal(0., 1.)) + a_b, b_b = a[data.batch_idx], b[data.batch_idx] + if data.coupled: + a_b = a_b + jnp.mean(a) + y = data.y[data.batch_idx] + with numpyro.plate("obs_genotype_plate", data.batch_idx.shape[0], dim=-1): + numpyro.sample("y1", dist.Normal(a_b + b_b, 0.3), obs=y[:, 0]) + numpyro.sample("y2", dist.Normal(a_b - 2.0 * b_b, 0.2), obs=y[:, 1]) + + +class BlockModel: + def __init__(self, num_genotype=6, coupled=False, seed=3): + rng = np.random.default_rng(seed) + self.data = BlockData(num_genotype=num_genotype, + batch_idx=jnp.arange(num_genotype), + y=jnp.asarray(rng.normal(size=(num_genotype, 2))), + coupled=coupled) + self.priors = {} + self.jax_model = _block_jax_model + self.jax_model_guide = lambda data, priors: None + + def get_batch(self, data, indices): + return data.replace(batch_idx=jnp.asarray(indices)) + + def get_random_idx(self, key=None, num_batches=1): + if num_batches == 1: + return np.array([0]) + return np.zeros((num_batches, 1), dtype=int) + + +def _block_setup(model): + import jax.flatten_util + ri, map_params = _laplace_map_params(model) + unc = {k[:-len("_auto_loc")]: jnp.asarray(v) for k, v in map_params.items() + if k.endswith("_auto_loc")} + flat, unravel = jax.flatten_util.ravel_pytree(unc) + G = model.data.num_genotype + kw = {"priors": model.priors, + "data": ri._unscaled_batch(model.data, jnp.arange(G))} + return ri, map_params, unc, flat, unravel, kw + + +def test_block_laplace_factors_match_full_hessian_blocks(): + """Each block's covariance is the inverse of the matching diagonal block + of the full Hessian: given mu, genotypes do not couple.""" + from numpyro.infer.util import potential_energy + model = BlockModel() + ri, _, unc, flat, unravel, kw = _block_setup(model) + dim_map = ri._get_genotype_dim_map() + elem_idx, L = ri.block_laplace_factors(unc, dim_map, model.data, flat, + unravel, kw) + assert elem_idx.shape == (6, 2) and L.shape == (6, 2, 2) + pe = lambda f: potential_energy(model.jax_model, [], kw, unravel(f)) + H = ri._chunked_hessian(pe, flat, 64) + for g in range(6): + hb = H[np.ix_(elem_idx[g], elem_idx[g])] + np.testing.assert_allclose(L[g] @ L[g].T, np.linalg.inv(hb), + rtol=1e-4, atol=1e-6) + # the observations correlate a and b, so the blocks are not diagonal + assert abs(hb[0, 1]) > 1.0 + + +def test_block_laplace_factors_chunking_matches(): + model = BlockModel(num_genotype=7) + ri, _, unc, flat, unravel, kw = _block_setup(model) + dim_map = ri._get_genotype_dim_map() + e1, L1 = ri.block_laplace_factors(unc, dim_map, model.data, flat, unravel, kw) + e2, L2 = ri.block_laplace_factors(unc, dim_map, model.data, flat, unravel, kw, + genotype_chunk_size=3) + np.testing.assert_array_equal(e1, e2) + np.testing.assert_allclose(np.einsum("gij,gkj->gik", L1, L1), + np.einsum("gij,gkj->gik", L2, L2), rtol=1e-5) + + +def test_block_laplace_factors_refuse_coupled_genotypes(): + model = BlockModel(coupled=True) + ri, _, unc, flat, unravel, kw = _block_setup(model) + with pytest.raises(ValueError, match="coupled"): + ri.block_laplace_factors(unc, ri._get_genotype_dim_map(), model.data, + flat, unravel, kw) + + +def test_get_laplace_posteriors_block_holds_shared_and_varies_genotypes(tmpdir): + model = BlockModel() + ri, map_params, *_ = _block_setup(model) + out = str(tmpdir.join("block")) + ri.get_laplace_posteriors(map_params, out_prefix=out, + num_posterior_samples=400, + sampling_batch_size=100, + forward_batch_size=6, + block_genotypes=True) + with h5py.File(f"{out}_posterior.h5", "r") as hf: + mu, a = hf["mu"][...], hf["a"][...] + np.testing.assert_allclose(mu, float(map_params["mu_auto_loc"]), atol=1e-6) + assert a.shape == (400, 6) + assert np.all(a.std(axis=0) > 0.01) + np.testing.assert_allclose(a.mean(axis=0), + np.asarray(map_params["a_auto_loc"]), atol=0.1) + + +def test_unscaled_batch_removes_minibatch_scale(): + """A model configured with batch_size below the library weights each + growth likelihood by num_genotype / batch_size even at full batch; + the Laplace must see each observation once.""" + orch = _smoke_orchestrator() + ri = RunInference(orch, seed=0) + G = orch.data.num_genotype + data = jax.device_put(orch.data) + scaled = orch.get_batch(data, jnp.arange(G)) + assert float(jnp.max(scaled.growth.scale_vector)) > 1.0 + unscaled = ri._unscaled_batch(data, jnp.arange(G)) + np.testing.assert_array_equal(np.asarray(unscaled.growth.scale_vector), 1.0) diff --git a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py index e5043df6..bb60d0a9 100644 --- a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py @@ -150,6 +150,37 @@ def test_map_checkpoint_calls_get_laplace_posteriors(self, tmp_path): out_prefix=str(tmp_path / "out")) ri.get_laplace_posteriors.assert_called_once() + kw = ri.get_laplace_posteriors.call_args.kwargs + assert kw["block_genotypes"] is False + assert kw["genotype_chunk_size"] is None + + def test_laplace_blocks_forwarded(self, tmp_path): + """--laplace_blocks asks for the per-genotype Laplace, with its chunk + size.""" + ri = self._make_map_ri(tmp_path, auto_loc=True) + h5_src = str(tmp_path / "out_tmp_posterior_posterior.h5") + ckpt_path = str(tmp_path / "map.pkl") + open(ckpt_path, "w").close() + + with patch("tfscreen.tfmodel.scripts.sample_posterior_cli.read_configuration", + return_value=(MagicMock(), {})), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.RunInference", + return_value=ri), \ + patch("tfscreen.tfmodel.scripts.sample_posterior_cli.dill") as mock_dill: + + mock_dill.load.return_value = {"svi_state": MagicMock()} + ri.get_laplace_posteriors.side_effect = lambda **kw: ( + open(h5_src, "w").close() + ) + + from tfscreen.tfmodel.scripts.sample_posterior_cli import sample_posterior + sample_posterior("cfg.yaml", ckpt_path, + out_prefix=str(tmp_path / "out"), + laplace_blocks=True, genotype_chunk_size=500) + + kw = ri.get_laplace_posteriors.call_args.kwargs + assert kw["block_genotypes"] is True + assert kw["genotype_chunk_size"] == 500 def test_map_output_file_renamed(self, tmp_path): ri = self._make_map_ri(tmp_path, auto_loc=True) From a874ac38fe5ffa0e236386ec8a182215d6c4bf50 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Fri, 2 Oct 2026 14:31:42 -0700 Subject: [PATCH 079/208] Add shared-parameter uncertainty to the block Laplace; hold Hill SDs The block Laplace held k, m and the other shared parameters at the MAP, so their intervals had zero width and X undercovered at high depth (0.83 on relative-fit run 4). --laplace_shared adds each genotype's coupling to the shared parameters and the shared block, one more Hessian-vector product per shared parameter, then draws the shared parameters from the Schur complement and each genotype from its conditional: the full Laplace, matched to the dense inverse Hessian on a toy model. A floored genotype direction carries no coupling, and a negative Schur direction is held at the MAP and named in the log; without these the k/dk slide and the m ridge gave the prior's width to every interval. On run 4: X 95% coverage 0.97 / 0.94 (Poisson / realistic), k/m 0.92 / 1.0 and 0.50 / 0.42, about the full Laplace. hill_relative also takes theta_{X_low,X_delta,log_hill_K}_hyper_scale_fixed. The dev-data MAP ran those SDs to 3.6, 4.3 and 11 against about 0.45, 0.45 and 0.7 among well-measured genotypes, so it shrank nothing. Tests: inference, scripts and generative suites (2848 passed). Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 24 ++ CLAUDE.md | 8 +- planning/studies/relative-fit/README.md | 27 ++ .../components/theta/hill_relative.py | 29 +- .../tfmodel/inference/run_inference.py | 316 +++++++++++++++--- .../tfmodel/scripts/sample_posterior_cli.py | 14 +- .../components/theta/test_hill_relative.py | 27 ++ .../tfmodel/inference/test_run_inference.py | 71 ++++ .../scripts/test_sample_posterior_cli.py | 11 +- 9 files changed, 459 insertions(+), 68 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72e40f7d..5ee735d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,30 @@ fall into two kinds: (realistic), against 0.98 / 0.94 for the full Laplace and 0.81 / 0.76 for the low-rank guide. It leaves out the k/m uncertainty (coverage 0). +- **`tfs-sample-posterior --laplace_blocks --laplace_shared`** + (`get_laplace_posteriors(block_shared=True)`, `arrowhead_laplace_factors`): + the block Laplace with the shared parameters' uncertainty. The Hessian is + an arrowhead: genotype blocks, each genotype's coupling to the shared + parameters, and the shared block. One more Hessian-vector product per + shared parameter per chunk gives all of it. The shared parameters are drawn + from their marginal (the Schur complement) and each genotype from its + conditional given them. That is the full Laplace, and it matched the + dense inverse Hessian exactly on a toy model, chunked or not. Two + departures, both for MAPs short of an optimum: a floored direction of a + genotype block carries no coupling, and a negative direction of the Schur + complement is held at the MAP and named in the log. On the relative-fit + run-4 MAPs, X 95% coverage was 0.97 (Poisson) and 0.94 (realistic), with + 0.95-0.98 above 1000 reads. k/m coverage was 0.92 / 1.0 and 0.50 / 0.42, + close to the full Laplace's 0.92 / 0.92 and 0.58 / 0.50. + +- **`theta: hill_relative` can hold every population SD.** + `theta_X_low_hyper_scale_fixed`, `theta_X_delta_hyper_scale_fixed` and + `theta_log_hill_K_hyper_scale_fixed` join the log(n) field below (above + 0: held, a deterministic site with no guide parameters). On the dev-data + growth-only MAP the learned SDs ran to 3.6, 4.3 and 11, against about + 0.45, 0.45 and 0.7 among genotypes with more than 1e4 reads, so the MAP + shrank nothing and its X at 100 reads or fewer was noise. + ### Fixed - **The Laplace path no longer applies the mini-batch likelihood scale at diff --git a/CLAUDE.md b/CLAUDE.md index deafa2e9..ca28bece 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,7 +48,7 @@ tfs-configure-model # Generate YAML config template (+ library compositio tfs-prefit-calibration # Pre-fit linking function via MAP tfs-fit-model # Main hierarchical Bayesian inference (--guide_type component|delta|auto_normal|auto_diagonal_normal|auto_multivariate_normal|auto_low_rank_multivariate_normal; --guide_rank, --guide_init_scale; convergence: --convergence_window_steps, --patience, --convergence_z, --loss_rtol, --param_tolerance, --adam_step_size -> --adam_final_step_size by --adam_step_size_cut; --adam_clip_norm opts back into elementwise gradient clipping, off by default; --init_from starts at an earlier MAP's {site}_auto_loc values, e.g. a level-offset fit from a zero-offset fit, since guesses cannot name sites outside the configured guesses) tfs-fit-genotypes # Per-genotype MLE fits of the growth model (no congression correction) -tfs-sample-posterior # Draw posterior samples from fitted model (--map_point: a MAP checkpoint's point, no Laplace; --laplace_blocks: per-genotype Laplace with the shared parameters held at the MAP, runs on a full library, leaves out k/m uncertainty; --skip_growth_observations: leave out growth_pred/growth_obs, most of the file on a large library) +tfs-sample-posterior # Draw posterior samples from fitted model (--map_point: a MAP checkpoint's point, no Laplace; --laplace_blocks: per-genotype Laplace with the shared parameters held at the MAP, runs on a full library, leaves out k/m uncertainty; add --laplace_shared for the arrowhead Laplace, which keeps it; --skip_growth_observations: leave out growth_pred/growth_obs, most of the file on a large library) tfs-sample-prior # Draw prior predictive samples tfs-extract-params # Extract parameters from checkpoint tfs-predict-growth # Predict growth from fitted model @@ -129,7 +129,7 @@ The hierarchical Bayesian inference engine. Key files: - `growth/` (registry key `condition_growth`): `linear`, `power`, `saturation`. Their per-condition prior loc/scale fields (in `linear`, `m_scale_plus`/`m_scale_minus` too) accept a scalar (broadcast to all conditions) **or** a per-condition array; the pre-fit calibration writes per-condition arrays to pin the baselines (see **Per-condition growth priors** below). Each declares `get_scale_bounds()`. - `growth_transition/`: `instant`, `memory`, `baranyi`, `baranyi_k`, `baranyi_tau`, `two_pop` - `transformation/`: `single`, `mixture` (`empirical`/`logit_norm` were removed; `ModelOrchestrator` refuses them by name with a message, `_RETIRED_TRANSFORMATIONS`). The old E[max] θ operator (`_congression.py`) is gone, along with Stage 1.5 of the empirical pipeline that used it - - `theta/`: `categorical_geno`, `hill_geno`, `hill_relative` (wt-relative X, see **Relative-X fit** below), `hill_mut`; `hill_geno`/`hill_relative` take `theta_log_hill_n_hyper_scale_fixed` (> 0 holds the log(n) population SD; learned, a MAP on real data ran it to about 19, and n near 0.01 hid each genotype's response below the lowest nonzero concentration, in the 0-titrant tubes); thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) + - `theta/`: `categorical_geno`, `hill_geno`, `hill_relative` (wt-relative X, see **Relative-X fit** below), `hill_mut`; `hill_geno`/`hill_relative` take `theta_log_hill_n_hyper_scale_fixed` (> 0 holds the log(n) population SD; learned, a MAP on real data ran it to about 19, and n near 0.01 hid each genotype's response below the lowest nonzero concentration, in the 0-titrant tubes); `hill_relative` also takes `theta_{X_low,X_delta,log_hill_K}_hyper_scale_fixed` (the dev-data MAP ran them to 3.6, 4.3 and 11 against about 0.45, 0.45 and 0.7 among well-measured genotypes, so it shrank nothing; `planning/dev-data/real_fit/make_init_hs.py` rescales a MAP's non-centered offsets for a warm start at the held values); thermodynamic partition-function variants under `theta/thermo/` (lac dimer and MWC dimer, with/without unfolded state, PK/PnnC/PddG parameterizations) - `theta_rescale/`: `passthrough`, `logit` - `dk_geno/`: `fixed`, `hierarchical_geno`, `pinned` - `noise/` (theta observation noise; registry keys `theta_growth_noise`: `zero`/`beta`/`logit_normal`, `theta_binding_noise`: `zero`/`beta`) @@ -149,7 +149,7 @@ Roadmap step 3. `process_raw/od600.py` holds the method (C10: the lab's data nev ### Relative-X fit (`theta: hill_relative`) -Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). **Which inference to use is open.** Growth alone constrains mostly `m·(X_g - X_wt)`, so the posterior is a curved ridge along `m·X` that only wt's absolute growth change (via the tube totals) pins. Runs 2 and 3 of `planning/studies/relative-fit/` (2026-09-28) found the mean-field component guide sliding along it (smaller |m|, stretched X) while the low-rank guide (`--guide_type auto_low_rank_multivariate_normal`) recovered X, and MAP + Laplace blowing up in 5 of 6 runs. Both comparisons ran with bugs fixed on 2026-09-29: every component-guide hyperparameter scale frozen at its 1e-4 bound (2026-09-27 16:48 to 2026-09-29; the low-rank autoguide was unaffected) and the flat 1e-3 Laplace eigenvalue floor (the blowups); the learned log(hill_n) spread was also free then. The svi-overconfidence study's relative arm, in the same window on another library, found the two guides about equal (X 95% coverage 0.68 vs 0.74, RMSE 0.071 vs 0.072). Every guide collapses k and m. The post-fix rerun (`planning/studies/relative-fit/grid_v4.yaml`, run 4, 2026-10-01, 30 runs) confirmed the guide verdict: the component guide is biased even with the fixes (X RMSE 0.29-0.30, 95% coverage 0.06 Poisson / 0.38 realistic), and the low-rank guide recovers X (RMSE 0.07 / 0.12, coverage 0.81 / 0.76); rank 20 matches numpyro's default rank. MAP + floored Laplace now works and covers X and k/m best, but with the widest intervals and the noisiest point. Two-stage is the best calibrated under Poisson noise (0.91) and no better than low-rank under realistic noise (0.78). Every guide collapses k and m. So: the low-rank guide, rank 20, expecting X intervals to undercover somewhat and k/m intervals to be too narrow. Validation grid: `planning/studies/relative-fit/`. +Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affine map (`k`/`m` absorb it), so `theta/hill_relative.py` fits a wt-relative growth variable X: hill_geno's curve with real-valued baselines (`X_low`, `X_delta`), wt gauged to `X = 1` at `c_lo` and `X = 0` at `c_hi` (`gauge_baselines`, from wt's own K and n; `data.growth.theta_gauge_log_conc`). `theta_gauge_conc` is an orchestrator setting (`tfs-configure-model --theta_gauge_conc`; default the measured min/max, resolved and written to the config; refused for other theta components). `model_orchestrator._check_relative_theta` refuses binding data, activity other than `fixed`, `theta_rescale` other than `passthrough`, non-`linear` condition growth, theta noise other than `zero` and, with `mixture`, any `congression_theta_rule` but `max` (the only rule invariant to an increasing map; `mixture`'s `max` branch does not clip). The module's `THETA_SCALE = "X"` is how downstream code tells: `tfs-predict-theta` adds `theta_scale = X`, `extract_theta_epistasis`/`tfs-extract-epistasis` allow only `scale='add'` (no `in_regime`), `tfs-summarize-fit` maps simulated truth to the gauge (`hill_relative.x_scale_truth`/`x_scale_growth_truth`, activity from `*_sim_parameters.csv`), `calibration_grid` labels those rows `theta_regime = X`. `prediction.copy_orchestrator` always keeps wt in a genotype subset (its K/n set the gauge) and `predict` drops it again. `tfs-prefit-calibration` refuses it (growth-only). **Which inference to use is open.** Growth alone constrains mostly `m·(X_g - X_wt)`, so the posterior is a curved ridge along `m·X` that only wt's absolute growth change (via the tube totals) pins. Runs 2 and 3 of `planning/studies/relative-fit/` (2026-09-28) found the mean-field component guide sliding along it (smaller |m|, stretched X) while the low-rank guide (`--guide_type auto_low_rank_multivariate_normal`) recovered X, and MAP + Laplace blowing up in 5 of 6 runs. Both comparisons ran with bugs fixed on 2026-09-29: every component-guide hyperparameter scale frozen at its 1e-4 bound (2026-09-27 16:48 to 2026-09-29; the low-rank autoguide was unaffected) and the flat 1e-3 Laplace eigenvalue floor (the blowups); the learned log(hill_n) spread was also free then. The svi-overconfidence study's relative arm, in the same window on another library, found the two guides about equal (X 95% coverage 0.68 vs 0.74, RMSE 0.071 vs 0.072). Every guide collapses k and m. The post-fix rerun (`planning/studies/relative-fit/grid_v4.yaml`, run 4, 2026-10-01, 30 runs) confirmed the guide verdict: the component guide is biased even with the fixes (X RMSE 0.29-0.30, 95% coverage 0.06 Poisson / 0.38 realistic), and the low-rank guide recovers X (RMSE 0.07 / 0.12, coverage 0.81 / 0.76); rank 20 matches numpyro's default rank. MAP + floored Laplace now works and covers X and k/m best, but with the widest intervals and the noisiest point. Two-stage is the best calibrated under Poisson noise (0.91) and no better than low-rank under realistic noise (0.78). Every guide collapses k and m. So: the low-rank guide, rank 20, expecting X intervals to undercover somewhat and k/m intervals to be too narrow. On a full library the low-rank guide slid along the ridge (dev data, 3.3e5 nats worse than the MAP), and the MAP plus the arrowhead Laplace (below) covered best on run 4 (X 0.97 / 0.94, k/m about the full Laplace's), so that is the full-library route. Validation grid: `planning/studies/relative-fit/`. ### Adding a New Model Component @@ -187,6 +187,8 @@ Roadmap step 5. Growth alone fixes an occupancy-like variable only up to an affi **Block Laplace.** `get_laplace_posteriors(block_genotypes=True)` (`tfs-sample-posterior --laplace_blocks`) holds the shared parameters at the MAP and gives each genotype the Laplace of its own parameters. Given the shared parameters the genotypes do not couple (checked: every cross-genotype Hessian entry was 0 on a relative-fit run, wt included, since the X gauge fixes only wt's own baselines), so `block_laplace_factors` gets every B x B block from B Hessian-vector products whose probe is 1 on one slot of every genotype, over genotype chunks, and refuses a model whose blocks leak. Each block is floored like the full Laplace. Both Laplace paths take the Hessian on `_unscaled_batch`, the full batch with the mini-batch scale removed: `scale_vector` carries `num_genotype / batch_size` even at full batch. On relative-fit run 4 the block Laplace covered X 0.93 / 0.84 (Poisson / realistic) and k/m 0. The MAP point's X is poor at low depth under realistic noise (RMSE 1.3 at <= 100 reads, against 0.22 for the low-rank guide's point; the MAP's hyperscales run away, so nothing shrinks it), but the intervals are wide enough to cover there. +**Arrowhead Laplace.** `block_shared=True` (`--laplace_shared`) keeps the shared parameters' uncertainty: `_genotype_hessian_parts` adds one probe per shared element (its response on a chunk's genotype rows is their coupling; on the shared rows it is summed over chunks, less `(chunks - 1)` times the chunk-invariant part, measured as `H(a) + H(b) - H(a + b)` on two one-genotype batches since every chunk's potential carries the priors and any unsliced binding data). `arrowhead_laplace_factors` then draws the shared parameters from the Schur complement and each genotype from its conditional, the full Laplace (`test_arrowhead_laplace_matches_full_laplace`). Two departures for MAPs short of an optimum, both needed: a floored direction of a genotype block carries no coupling (a short dev-data MAP floored 167 of 308 blocks, and the kept couplings subtracted 6e10 from m's curvature of 1e10), and a negative direction of the Schur complement is held at the MAP and named in the log (floored at the prior, the k/dk_geno slide gave k its prior SD and X widths of 1-3 on run 4). On run 4 it covered X 0.97 / 0.94 and k/m 0.92 / 1.0 (Poisson) and 0.50 / 0.42 (realistic), about the full Laplace's. + **Laplace floor.** `get_laplace_posteriors` floors each Hessian eigenvalue at the prior's curvature along its eigenvector (`laplace_eigenvalue_floor`; prior SDs from `site_unconstrained_prior_sds` with the MAP substituted; `LAPLACE_MIN_EIGENVALUE` = 1e-3 where no prior SD is usable), so no direction of the Laplace is wider than the prior. The old flat 1e-3 floor turned a MAP's negative eigenvalues (a hierarchical MAP stopped at its epoch cap always has a few) into variances of 1000 that leaked into whatever they touched: on the two-stage grid the draws of the growth slope m spread 50x (seed 8). ### Per-condition growth priors diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index b8d852af..bdb6bbb2 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -400,3 +400,30 @@ its intervals cover; at high depth it beats the low-rank point. The missing k/m uncertainty costs coverage at high depth (0.83 against the full Laplace's 0.94). + +**Arrowhead Laplace on run 4's MAPs (2026-10-02, local).** The block +Laplace plus each genotype's coupling to the shared parameters and the +shared block (`--laplace_blocks --laplace_shared`, new), on the same six +copies (500 draws each; not committed). The shared parameters come from +their Schur complement and each genotype from its conditional, which is +the full Laplace. Two rules were needed. Floored genotype directions carry +no coupling. Negative Schur directions are held at the MAP: floored at the +prior instead, the k/dk_geno slide (`dk_geno_hyper_shift` with k, +eigenvalue about -1e7, runs 0009 and 0024) gave k its prior SD of 0.01 and +X widths of 1-3, and hyperscale directions (run 0004) pulled X coverage +above 1000 reads to 0.53. With both rules, 0-6 of 219 shared directions +were held per run, always hyperparameters or the k/dk slide. + +| noise | arm | X 95% cov | 50% cov | k / m 95% cov | +|---|---|---|---|---| +| poisson | block Laplace | 0.93 | 0.49 | 0 / 0 | +| poisson | arrowhead Laplace | 0.97 | 0.59 | 0.92 / 1.0 | +| poisson | full Laplace | 0.98 | 0.63 | 0.92 / 0.92 | +| realistic | block Laplace | 0.84 | 0.40 | 0 / 0 | +| realistic | arrowhead Laplace | 0.94 | 0.49 | 0.50 / 0.42 | +| realistic | full Laplace | 0.94 | 0.45 | 0.58 / 0.50 | + +Above 1000 reads X now covers 0.95-0.98 under realistic noise (block: +0.83). log_hill_K and hill_n are unchanged (they barely depend on k and +m); dk_geno rises to 0.93 / 0.95. The k/m shortfall under realistic noise +is the full Laplace's too, so it is not the arrowhead's. diff --git a/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py b/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py index 2898e141..22741f5a 100644 --- a/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py +++ b/src/tfscreen/tfmodel/generative/components/theta/hill_relative.py @@ -69,8 +69,17 @@ class ModelPriors: theta_log_hill_n_hyper_loc_loc: float theta_log_hill_n_hyper_loc_scale: float theta_log_hill_n_hyper_scale: float - # > 0: hold the population SD of log(hill_n) here (hill_geno's field of - # the same name explains why) + # > 0: hold that population SD here instead of learning it (hill_geno's + # log(n) field of the same name explains why). On the dev-data MAP the + # learned SDs ran to 3.6 (X_low), 4.3 (X_delta) and 11 (log K), against + # about 0.5, 0.5 and 0.7 among well-measured genotypes, so nothing + # shrank the low-depth genotypes. + theta_X_low_hyper_scale_fixed: float = field(pytree_node=False, + default=0.0) + theta_X_delta_hyper_scale_fixed: float = field(pytree_node=False, + default=0.0) + theta_log_hill_K_hyper_scale_fixed: float = field(pytree_node=False, + default=0.0) theta_log_hill_n_hyper_scale_fixed: float = field(pytree_node=False, default=0.0) @@ -139,8 +148,9 @@ def _assemble(hyper, offsets, data): "log_hill_n_offset") -def _n_fixed(priors): - return float(getattr(priors, "theta_log_hill_n_hyper_scale_fixed", 0.0)) +def _fixed(priors, h): + """The held population SD of hyperparameter ``h``, or 0 if learned.""" + return float(getattr(priors, f"theta_{h}_hyper_scale_fixed", 0.0)) def define_model(name: str, @@ -160,9 +170,9 @@ def define_model(name: str, f"{name}_{h}_hyper_loc", dist.Normal(getattr(priors, f"theta_{h}_hyper_loc_loc"), getattr(priors, f"theta_{h}_hyper_loc_scale")))) - if h == "log_hill_n" and _n_fixed(priors) > 0: + if _fixed(priors, h) > 0: hyper.append(pyro.deterministic(f"{name}_{h}_hyper_scale", - jnp.full(T, _n_fixed(priors)))) + jnp.full(T, _fixed(priors, h)))) else: hyper.append(pyro.sample( f"{name}_{h}_hyper_scale", @@ -202,8 +212,8 @@ def guide(name: str, constraint=dist.constraints.greater_than(1e-4)) hyper.append(pyro.sample(f"{name}_{h}_hyper_loc", dist.Normal(loc_loc, loc_scale))) - if h == "log_hill_n" and _n_fixed(priors) > 0: - hyper.append(jnp.full(T, _n_fixed(priors))) + if _fixed(priors, h) > 0: + hyper.append(jnp.full(T, _fixed(priors, h))) continue scale_loc = pyro.param(f"{name}_{h}_hyper_scale_loc", jnp.full(T, -1.0)) @@ -270,6 +280,9 @@ def get_hyperparameters() -> Dict[str, Any]: "theta_log_hill_n_hyper_loc_loc": 0.7, "theta_log_hill_n_hyper_loc_scale": 0.5, "theta_log_hill_n_hyper_scale": 1.0, + "theta_X_low_hyper_scale_fixed": 0.0, + "theta_X_delta_hyper_scale_fixed": 0.0, + "theta_log_hill_K_hyper_scale_fixed": 0.0, "theta_log_hill_n_hyper_scale_fixed": 0.0, } diff --git a/src/tfscreen/tfmodel/inference/run_inference.py b/src/tfscreen/tfmodel/inference/run_inference.py index 4bab221d..bd968667 100644 --- a/src/tfscreen/tfmodel/inference/run_inference.py +++ b/src/tfscreen/tfmodel/inference/run_inference.py @@ -2252,51 +2252,40 @@ def _unscaled_batch(self, data, idx): scale_vector=jnp.ones_like(batch.growth.scale_vector))) return batch - def block_laplace_factors(self, unconstrained, dim_map, data, flat_map, - unravel, model_kwargs, genotype_chunk_size=None, - leak_tolerance=1e-5): - """ - Per-genotype Laplace factors with the shared parameters held at the MAP. - - Given the shared parameters, each genotype's own unconstrained - parameters (every element of a genotype-plate site at its index) - appear only in that genotype's prior and observations, so the - Hessian of the negative log joint restricted to them is - block-diagonal: one ``B x B`` block per genotype. Column ``j`` of - every block comes from one Hessian-vector product whose probe is 1 - on slot ``j`` of every genotype at once, so the whole factorization - costs ``B`` products per genotype chunk. Each block's eigenvalues - are floored at the prior's curvature along their eigenvectors - (``laplace_eigenvalue_floor``), as in the full Laplace. - - Parameters - ---------- - unconstrained : dict - Unconstrained MAP values by site. - dim_map : dict - Genotype axis of each genotype-plate site - (``_get_genotype_dim_map``). - data : DataClass - The full data (on device). - flat_map, unravel - ``ravel_pytree(unconstrained)``. - model_kwargs : dict - ``priors`` and the unscaled full-batch ``data`` (for the prior - precisions). - genotype_chunk_size : int or None, optional - Genotypes per pass (default all). - leak_tolerance : float, optional - Largest allowed response on other genotypes' parameters to a - probe on one set of genotypes, relative to the response on the - probed ones; above it the blocks are not separable and this - raises. + def _genotype_hessian_parts(self, unconstrained, dim_map, data, flat_map, + unravel, genotype_chunk_size=None, + leak_tolerance=1e-5, include_shared=False): + """ + The pieces of the Hessian the block Laplaces need, from + Hessian-vector products over genotype chunks. + + Given the shared parameters, genotypes do not couple, so the Hessian + of the negative log joint is an arrowhead: block-diagonal over + genotypes (``B x B`` each), plus each genotype's coupling to the + shared parameters and the shared-shared block. Block column ``j`` + comes from one product whose probe is 1 on slot ``j`` of every + genotype in a chunk. With ``include_shared``, every shared element + gets its own probe: its response on a chunk's genotype rows is their + coupling (each genotype's prior and observations sit in its own + chunk), and its response on the shared rows is summed over chunks. + Every chunk's potential also carries the terms no chunk slices (the + priors, and binding observations in a joint model), so the sum + counts them once per chunk; those are measured as + ``H(a) + H(b) - H(a + b)`` on two one-genotype batches and the + surplus removed. Returns ------- - elem_idx : numpy.ndarray, shape (num_genotype, B) + elem_idx : numpy.ndarray, shape (G, B) Flat positions of each genotype's parameters. - L_blocks : numpy.ndarray, shape (num_genotype, B, B) - Factors with ``L_g L_g^T`` = genotype g's conditional covariance. + blocks : numpy.ndarray, shape (G, B, B) + Symmetrized genotype blocks. + shared_idx : numpy.ndarray, shape (S,) + Flat positions of the shared parameters. + coupling : numpy.ndarray or None, shape (G, B, S) + Genotype-shared entries (``include_shared`` only; float32). + shared_block : numpy.ndarray or None, shape (S, S) + Shared-shared block (``include_shared`` only). """ import jax.flatten_util from numpyro.infer.util import potential_energy @@ -2322,9 +2311,12 @@ def block_laplace_factors(self, unconstrained, dim_map, data, flat_map, B = int(per[0]) order = np.argsort(np.where(flat_gid >= 0, flat_gid, G), kind="stable") elem_idx = order[:G * B].reshape(G, B) + shared_idx = np.flatnonzero(flat_gid < 0) D = flat_map.shape[0] - print(f"Block Laplace: {G} genotypes x {B} parameters; " - f"{D - G * B} shared parameters held at the MAP", flush=True) + S = shared_idx.size + print(f"Block Laplace: {G} genotypes x {B} parameters; {S} shared " + f"parameters {'included' if include_shared else 'held at the MAP'}", + flush=True) priors = self.model.priors @@ -2336,15 +2328,23 @@ def pe(f): unravel(f)) return jax.jvp(jax.grad(pe), (flat_map,), (v,))[1] + def probe(positions): + return jnp.zeros(D).at[positions].set(1.0) + chunk = G if not genotype_chunk_size else int(genotype_chunk_size) blocks = np.zeros((G, B, B)) + coupling = shared_block = None + if include_shared: + coupling = np.zeros((G, B, S), dtype=np.float32) + shared_block = np.zeros((S, S)) + num_chunks = 0 for start in range(0, G, chunk): + num_chunks += 1 idx = np.arange(start, min(start + chunk, G)) batch = self._unscaled_batch(data, jnp.asarray(idx)) if start == 0 and idx.size > 1: probed, other = idx[::2], idx[1::2] - v = jnp.zeros(D).at[elem_idx[probed].ravel()].set(1.0) - hv = np.asarray(hvp(batch, v)) + hv = np.asarray(hvp(batch, probe(elem_idx[probed].ravel()))) on = np.max(np.abs(hv[elem_idx[probed]])) leak = np.max(np.abs(hv[elem_idx[other]])) if on > 0 and leak / on > leak_tolerance: @@ -2353,22 +2353,197 @@ def pe(f): f"genotypes {leak / on:.2e} of the probed ones); the " f"block Laplace does not apply to this model") for j in range(B): - v = jnp.zeros(D).at[elem_idx[idx, j]].set(1.0) - hv = np.asarray(hvp(batch, v), dtype=float) + hv = np.asarray(hvp(batch, probe(elem_idx[idx, j])), dtype=float) blocks[idx, :, j] = hv[elem_idx[idx]] + if include_shared: + for s_i, pos in enumerate(shared_idx): + hv = np.asarray(hvp(batch, probe(pos)), dtype=float) + coupling[idx, :, s_i] = hv[elem_idx[idx]] + shared_block[:, s_i] += hv[shared_idx] + + if include_shared and num_chunks > 1: + one = [self._unscaled_batch(data, jnp.asarray([g])) for g in (0, 1)] + both = self._unscaled_batch(data, jnp.asarray([0, 1])) + for s_i, pos in enumerate(shared_idx): + v = probe(pos) + invariant = (np.asarray(hvp(one[0], v), dtype=float) + + np.asarray(hvp(one[1], v), dtype=float) + - np.asarray(hvp(both, v), dtype=float)) + shared_block[:, s_i] -= (num_chunks - 1) * invariant[shared_idx] blocks = 0.5 * (blocks + np.transpose(blocks, (0, 2, 1))) + if include_shared: + shared_block = 0.5 * (shared_block + shared_block.T) + return elem_idx, blocks, shared_idx, coupling, shared_block + + @staticmethod + def _floored_block_factors(blocks, prec_b, return_kept=False): + """ + ``L_g`` with ``L_g L_g^T`` the inverse of each block after flooring + its eigenvalues at the prior's curvature (as the full Laplace). + With ``return_kept``, also ``L_g`` with the floored eigenvectors' + columns zeroed (``arrowhead_laplace_factors``). + """ + G, B, _ = blocks.shape w, V = np.linalg.eigh(blocks) - prec = self._laplace_prior_precision(unconstrained, model_kwargs, D) - prec_b = prec[elem_idx] curvature = np.einsum("gij,gi,gij->gj", V, prec_b, V) floor = np.maximum(curvature, LAPLACE_MIN_EIGENVALUE) w_f = np.maximum(w, floor) print(f" {int(np.sum(np.any(w < 0, axis=1)))} of {G} blocks had " f"negative eigenvalues; {int(np.sum(w < floor))} of {G * B} " f"eigenvalues raised to the prior's curvature", flush=True) - L_blocks = V / np.sqrt(w_f)[:, None, :] - return elem_idx, L_blocks + L = V / np.sqrt(w_f)[:, None, :] + if return_kept: + return L, L * (w >= floor)[:, None, :] + return L + + def block_laplace_factors(self, unconstrained, dim_map, data, flat_map, + unravel, model_kwargs, genotype_chunk_size=None, + leak_tolerance=1e-5): + """ + Per-genotype Laplace factors with the shared parameters held at the MAP. + + Given the shared parameters, each genotype's own unconstrained + parameters (every element of a genotype-plate site at its index) + appear only in that genotype's prior and observations, so the + Hessian of the negative log joint restricted to them is + block-diagonal: one ``B x B`` block per genotype. Column ``j`` of + every block comes from one Hessian-vector product whose probe is 1 + on slot ``j`` of every genotype at once, so the whole factorization + costs ``B`` products per genotype chunk. Each block's eigenvalues + are floored at the prior's curvature along their eigenvectors + (``laplace_eigenvalue_floor``), as in the full Laplace. + + Parameters + ---------- + unconstrained : dict + Unconstrained MAP values by site. + dim_map : dict + Genotype axis of each genotype-plate site + (``_get_genotype_dim_map``). + data : DataClass + The full data (on device). + flat_map, unravel + ``ravel_pytree(unconstrained)``. + model_kwargs : dict + ``priors`` and the unscaled full-batch ``data`` (for the prior + precisions). + genotype_chunk_size : int or None, optional + Genotypes per pass (default all). + leak_tolerance : float, optional + Largest allowed response on other genotypes' parameters to a + probe on one set of genotypes, relative to the response on the + probed ones; above it the blocks are not separable and this + raises. + + Returns + ------- + elem_idx : numpy.ndarray, shape (num_genotype, B) + Flat positions of each genotype's parameters. + L_blocks : numpy.ndarray, shape (num_genotype, B, B) + Factors with ``L_g L_g^T`` = genotype g's conditional covariance. + """ + elem_idx, blocks, _, _, _ = self._genotype_hessian_parts( + unconstrained, dim_map, data, flat_map, unravel, + genotype_chunk_size=genotype_chunk_size, + leak_tolerance=leak_tolerance) + prec = self._laplace_prior_precision(unconstrained, model_kwargs, + flat_map.shape[0]) + return elem_idx, self._floored_block_factors(blocks, prec[elem_idx]) + + def arrowhead_laplace_factors(self, unconstrained, dim_map, data, flat_map, + unravel, model_kwargs, + genotype_chunk_size=None, + leak_tolerance=1e-5): + """ + Block Laplace that keeps the shared parameters' uncertainty. + + The Hessian is an arrowhead (``_genotype_hessian_parts``): genotype + blocks ``A_g``, couplings ``C_g`` to the shared parameters and the + shared block ``H_ss``. Its Gaussian factorizes exactly: the shared + parameters have precision ``H_ss - sum_g C_g^T A_g^-1 C_g`` (the + Schur complement), and given them genotype g is + ``N(x_g* - A_g^-1 C_g (s - s*), A_g^-1)``. So this is the full + Laplace, at one Hessian-vector product per shared parameter beyond + the block Laplace's. Each ``A_g`` and the Schur complement are + floored at the prior's curvature, as in the full Laplace, except + that a negative direction of the Schur complement is held at the + MAP (zero variance; named in the log). The MAP is a saddle there, + and every genotype follows a shared direction, so the prior's width + along it swamps every interval: on the relative-fit run 4 MAPs the + k/dk_geno slide (``dk_geno_hyper_shift`` with k, eigenvalue about + -1e7) floored at the prior gave k its prior SD (0.01) and X 95% + widths of 1-3 at every depth, and floored hyperscale directions + pulled high-depth X coverage to 0.53. + + A floored direction of ``A_g`` carries no coupling: ``C_g`` is + projected off it. The floor marks a direction where the MAP is not + at an optimum (a negative or prior-flat eigenvalue), so its coupling + is not a curvature either, and kept it is ruinous: with the floored + curvature near the prior's (about 1) and a coupling to the growth + slope m near 1e5, ``C^T A^-1 C`` subtracted 6e10 from m's + curvature of 1e10 on a short dev-data MAP (167 of 308 blocks + floored) and m's draws spread to its prior. Those genotypes then + neither inform the shared parameters nor follow them along the + floored directions, which widens the shared intervals a little. + + Parameters and the first two returns as ``block_laplace_factors``. + + Returns + ------- + elem_idx, L_blocks + As ``block_laplace_factors``. + shared_idx : numpy.ndarray, shape (S,) + Flat positions of the shared parameters. + L_shared : numpy.ndarray, shape (S, S) + ``L_shared L_shared^T`` = the shared parameters' covariance. + response : numpy.ndarray, shape (G, B, S), float32 + ``A_g^-1 C_g``: how far each genotype's conditional mean moves per + unit change in the shared parameters (subtracted). + """ + elem_idx, blocks, shared_idx, coupling, shared_block = \ + self._genotype_hessian_parts( + unconstrained, dim_map, data, flat_map, unravel, + genotype_chunk_size=genotype_chunk_size, + leak_tolerance=leak_tolerance, include_shared=True) + G, B, S = coupling.shape + prec = self._laplace_prior_precision(unconstrained, model_kwargs, + flat_map.shape[0]) + L_blocks, L_kept = self._floored_block_factors( + blocks, prec[elem_idx], return_kept=True) + + response = np.zeros((G, B, S), dtype=np.float32) + schur = shared_block.copy() + step = 4096 + for start in range(0, G, step): + sl = slice(start, min(start + step, G)) + L = L_kept[sl] + C = coupling[sl].astype(float) + M = np.einsum("gij,gkj,gks->gis", L, L, C) + response[sl] = M + schur -= np.einsum("gbs,gbt->st", C, M) + schur = 0.5 * (schur + schur.T) + + w, V = np.linalg.eigh(schur) + w_f, _ = laplace_eigenvalue_floor(w, V, prec[shared_idx]) + negative = w < 0 + w_f = np.where(negative, np.inf, w_f) + print(f" shared parameters: {int(np.sum(negative))} of {S} " + f"directions of the Schur complement negative, held at the MAP; " + f"{int(np.sum(~negative & (w_f > w)))} raised to the prior's " + f"curvature", flush=True) + # name the parameters in the negative directions (held: their + # uncertainty is left out) + names = np.array([f"{k}[{i}]" for k in sorted(unconstrained) + for i in range(int(np.size(unconstrained[k])))]) + if names.size == flat_map.shape[0]: + names = names[shared_idx] + for j in np.argsort(w)[:min(10, int(np.sum(w < 0)))]: + top = np.argsort(-np.abs(V[:, j]))[:3] + print(f" eigenvalue {w[j]:.2e}: " + ", ".join( + f"{names[t]} {V[t, j]:+.2f}" for t in top), flush=True) + L_shared = V / np.sqrt(w_f)[None, :] + return elem_idx, L_blocks, shared_idx, L_shared, response def get_laplace_posteriors(self, map_params, @@ -2379,7 +2554,8 @@ def get_laplace_posteriors(self, hessian_chunk_size=64, sites_to_save=None, block_genotypes=False, - genotype_chunk_size=None): + genotype_chunk_size=None, + block_shared=False): """ Generate posterior samples from a MAP solution using the Laplace approximation. @@ -2422,11 +2598,18 @@ def get_laplace_posteriors(self, genotype (``block_laplace_factors``). Memory and time scale with the library, not its square, so it runs on a full library where the full Hessian cannot. It leaves out the shared parameters' - uncertainty. + uncertainty unless ``block_shared``. genotype_chunk_size : int or None, optional Genotypes per Hessian-vector-product pass in block mode (default None, the whole library in one pass). Lower it if the pass runs out of device memory. + block_shared : bool, optional + With ``block_genotypes``, keep the shared parameters' uncertainty + (``arrowhead_laplace_factors``; default False): the shared + parameters are drawn from their Laplace marginal and each + genotype from its conditional given that draw, which is the full + Laplace. Costs one more Hessian-vector product per shared + parameter per genotype chunk. Notes ----- @@ -2463,7 +2646,32 @@ def get_laplace_posteriors(self, # Flatten to a single vector for Hessian computation flat_map, unravel = jax.flatten_util.ravel_pytree(unconstrained) D = flat_map.shape[0] - if block_genotypes: + if block_shared and not block_genotypes: + raise ValueError("block_shared needs block_genotypes") + if block_genotypes and block_shared: + elem_idx, L_blocks, shared_idx, L_shared, response = \ + self.arrowhead_laplace_factors( + unconstrained, dim_map, data_on_gpu, flat_map, unravel, + model_kwargs, genotype_chunk_size=genotype_chunk_size) + elem_flat = jnp.asarray(elem_idx.reshape(-1)) + shared_flat = jnp.asarray(shared_idx) + L_blocks = jnp.asarray(L_blocks, dtype=jnp.float32) + L_shared = jnp.asarray(L_shared, dtype=jnp.float32) + response = jnp.asarray(response) + + def draw(key, n): + # shared parameters from their marginal; each genotype from + # its conditional given them + k_s, k_g = jax.random.split(key) + d_shared = jax.random.normal( + k_s, shape=(n, L_shared.shape[1])) @ L_shared.T + z = jax.random.normal(k_g, shape=(n,) + L_blocks.shape[:2]) + delta = (jnp.einsum("gij,ngj->ngi", L_blocks, z) + - jnp.einsum("gbs,ns->ngb", response, d_shared)) + base = jnp.broadcast_to(flat_map, (n, D)) + base = base.at[:, shared_flat].add(d_shared) + return base.at[:, elem_flat].add(delta.reshape(n, -1)) + elif block_genotypes: elem_idx, L_blocks = self.block_laplace_factors( unconstrained, dim_map, data_on_gpu, flat_map, unravel, model_kwargs, genotype_chunk_size=genotype_chunk_size) diff --git a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py index e01f364f..9c520e8b 100644 --- a/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py +++ b/src/tfscreen/tfmodel/scripts/sample_posterior_cli.py @@ -29,6 +29,7 @@ def sample_posterior(config_file, map_point=False, skip_growth_observations=False, laplace_blocks=False, + laplace_shared=False, genotype_chunk_size=None): """ Draw posterior samples from an existing MAP, SVI, or NUTS checkpoint. @@ -91,12 +92,20 @@ def sample_posterior(config_file, stay at the MAP and each genotype's own parameters get their conditional Laplace (default False). It scales with the library, so it runs where the full Hessian cannot, but it leaves out the - shared parameters' uncertainty. Ignored for SVI and NUTS - checkpoints and with ``map_point``. + shared parameters' uncertainty unless ``laplace_shared``. Ignored + for SVI and NUTS checkpoints and with ``map_point``. + laplace_shared : bool, optional + With ``laplace_blocks``, keep the shared parameters' uncertainty + (default False): they are drawn from their Laplace marginal and + each genotype from its conditional given them, which is the full + Laplace. One more Hessian-vector product per shared parameter per + genotype chunk. genotype_chunk_size : int or None, optional Genotypes per Hessian-vector-product pass with ``laplace_blocks`` (default None, all at once). Lower it on device OOM. """ + if laplace_shared and not laplace_blocks: + raise ValueError("--laplace_shared needs --laplace_blocks") if not os.path.isfile(checkpoint_file): raise FileNotFoundError( f"Checkpoint file not found: '{checkpoint_file}'. " @@ -157,6 +166,7 @@ def sample_posterior(config_file, sites_to_save=sites_to_save, block_genotypes=laplace_blocks, genotype_chunk_size=genotype_chunk_size, + block_shared=laplace_shared, ) else: # SVI checkpoint: rebuild the guide object then restore the saved diff --git a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py index 9bcc264c..746898de 100644 --- a/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py +++ b/tests/tfscreen/tfmodel/generative/components/theta/test_hill_relative.py @@ -173,3 +173,30 @@ def test_log_hill_n_hyper_scale_fixed(fixed): X = _X(tp, data) assert X[0, 0, 1] == pytest.approx(1.0, abs=1e-5) assert X[0, -1, 1] == pytest.approx(0.0, abs=1e-5) + + +@pytest.mark.parametrize("h", ["X_low", "X_delta", "log_hill_K"]) +def test_other_hyper_scales_fixed(h): + """Every hyperscale can be held, one at a time, without touching the + others or the gauge.""" + data = _data() + field = f"theta_{h}_hyper_scale_fixed" + assert hr.get_hyperparameters()[field] == 0.0 + priors = hr.get_priors().replace(**{field: 0.7}) + mtr = handlers.trace(handlers.seed(hr.define_model, 0)).get_trace( + "theta", data, priors) + gtr = handlers.trace(handlers.seed(hr.guide, 0)).get_trace( + "theta", data, priors) + assert mtr[f"theta_{h}_hyper_scale"]["type"] == "deterministic" + assert np.allclose(mtr[f"theta_{h}_hyper_scale"]["value"], 0.7) + assert f"theta_{h}_hyper_scale_loc" not in gtr + others = {"X_low", "X_delta", "log_hill_K", "log_hill_n"} - {h} + for o in others: + assert mtr[f"theta_{o}_hyper_scale"]["type"] == "sample" + assert ({n for n, s in mtr.items() if s["type"] == "sample"} + == {n for n, s in gtr.items() if s["type"] == "sample"}) + with handlers.seed(rng_seed=3): + tp = hr.guide("theta", data, priors) + X = _X(tp, data) + assert X[0, 0, 1] == pytest.approx(1.0, abs=1e-5) + assert X[0, -1, 1] == pytest.approx(0.0, abs=1e-5) diff --git a/tests/tfscreen/tfmodel/inference/test_run_inference.py b/tests/tfscreen/tfmodel/inference/test_run_inference.py index bdb40a23..1a136a56 100644 --- a/tests/tfscreen/tfmodel/inference/test_run_inference.py +++ b/tests/tfscreen/tfmodel/inference/test_run_inference.py @@ -1503,6 +1503,77 @@ def test_get_laplace_posteriors_block_holds_shared_and_varies_genotypes(tmpdir): np.asarray(map_params["a_auto_loc"]), atol=0.1) +def _arrowhead_covariance(elem_idx, L_blocks, shared_idx, L_shared, response): + """Dense covariance implied by the arrowhead factors.""" + G, B = elem_idx.shape + D = G * B + shared_idx.size + cov = np.zeros((D, D)) + css = L_shared @ L_shared.T + cov[np.ix_(shared_idx, shared_idx)] = css + for g in range(G): + Mg = np.asarray(response[g], dtype=float) + cov[np.ix_(elem_idx[g], shared_idx)] = -Mg @ css + cov[np.ix_(shared_idx, elem_idx[g])] = -(Mg @ css).T + for h in range(G): + Mh = np.asarray(response[h], dtype=float) + block = Mg @ css @ Mh.T + if g == h: + block = block + L_blocks[g] @ L_blocks[g].T + cov[np.ix_(elem_idx[g], elem_idx[h])] = block + return cov + + +@pytest.mark.parametrize("chunk", [None, 3]) +def test_arrowhead_laplace_matches_full_laplace(chunk): + """Genotype blocks plus their coupling to the shared mu reproduce the + inverse of the full Hessian, chunked or not (the chunked sum counts the + priors once per chunk and must take the surplus back out).""" + from numpyro.infer.util import potential_energy + model = BlockModel(num_genotype=7) + ri, _, unc, flat, unravel, kw = _block_setup(model) + factors = ri.arrowhead_laplace_factors(unc, ri._get_genotype_dim_map(), + model.data, flat, unravel, kw, + genotype_chunk_size=chunk) + elem_idx, L_blocks, shared_idx, L_shared, response = factors + assert shared_idx.size == 1 and response.shape == (7, 2, 1) + pe = lambda f: potential_energy(model.jax_model, [], kw, unravel(f)) + H = ri._chunked_hessian(pe, flat, 64) + np.testing.assert_allclose(_arrowhead_covariance(*factors), + np.linalg.inv(H), rtol=1e-4, atol=1e-6) + + +def test_get_laplace_posteriors_block_shared_varies_shared(tmpdir): + model = BlockModel() + ri, map_params, unc, flat, unravel, kw = _block_setup(model) + from numpyro.infer.util import potential_energy + pe = lambda f: potential_energy(model.jax_model, [], kw, unravel(f)) + cov = np.linalg.inv(ri._chunked_hessian(pe, flat, 64)) + out = str(tmpdir.join("arrow")) + ri.get_laplace_posteriors(map_params, out_prefix=out, + num_posterior_samples=4000, + sampling_batch_size=500, + forward_batch_size=6, + block_genotypes=True, block_shared=True) + with h5py.File(f"{out}_posterior.h5", "r") as hf: + mu, a = hf["mu"][...], hf["a"][...] + # ravel_pytree orders sites a, b, mu + i_mu, i_a = 12, np.arange(6) + assert mu.std() == pytest.approx(np.sqrt(cov[i_mu, i_mu]), rel=0.1) + # a follows mu: its draws correlate with mu's as the full Laplace says + sd_a = np.sqrt(np.diag(cov)[i_a]) + want = cov[i_mu, i_a] / (np.sqrt(cov[i_mu, i_mu]) * sd_a) + got = [np.corrcoef(mu, a[:, g])[0, 1] for g in range(6)] + np.testing.assert_allclose(got, want, atol=0.08) + + +def test_block_shared_needs_block_genotypes(tmpdir): + model = BlockModel() + ri, map_params, *_ = _block_setup(model) + with pytest.raises(ValueError, match="block_genotypes"): + ri.get_laplace_posteriors(map_params, out_prefix=str(tmpdir.join("x")), + block_shared=True) + + def test_unscaled_batch_removes_minibatch_scale(): """A model configured with batch_size below the library weights each growth likelihood by num_genotype / batch_size even at full batch; diff --git a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py index bb60d0a9..f64a5f43 100644 --- a/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py +++ b/tests/tfscreen/tfmodel/scripts/test_sample_posterior_cli.py @@ -153,6 +153,7 @@ def test_map_checkpoint_calls_get_laplace_posteriors(self, tmp_path): kw = ri.get_laplace_posteriors.call_args.kwargs assert kw["block_genotypes"] is False assert kw["genotype_chunk_size"] is None + assert kw["block_shared"] is False def test_laplace_blocks_forwarded(self, tmp_path): """--laplace_blocks asks for the per-genotype Laplace, with its chunk @@ -176,12 +177,20 @@ def test_laplace_blocks_forwarded(self, tmp_path): from tfscreen.tfmodel.scripts.sample_posterior_cli import sample_posterior sample_posterior("cfg.yaml", ckpt_path, out_prefix=str(tmp_path / "out"), - laplace_blocks=True, genotype_chunk_size=500) + laplace_blocks=True, laplace_shared=True, + genotype_chunk_size=500) kw = ri.get_laplace_posteriors.call_args.kwargs assert kw["block_genotypes"] is True + assert kw["block_shared"] is True assert kw["genotype_chunk_size"] == 500 + def test_laplace_shared_needs_blocks(self, tmp_path): + from tfscreen.tfmodel.scripts.sample_posterior_cli import sample_posterior + with pytest.raises(ValueError, match="laplace_blocks"): + sample_posterior("cfg.yaml", str(tmp_path / "x.pkl"), + laplace_shared=True) + def test_map_output_file_renamed(self, tmp_path): ri = self._make_map_ri(tmp_path, auto_loc=True) h5_src = str(tmp_path / "out_tmp_posterior_posterior.h5") From 41eaddd5227f47e5dc34e147effc2d586b1d07a0 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 3 Oct 2026 14:19:16 -0700 Subject: [PATCH 080/208] Close pre-merge gaps: study commits, Laplace script, stale docs Record the code commit behind each study grid; the runs do not log one, so where the README had none it is inferred from the run.out file times against the commit times, and the READMEs say so. Add relative-fit/laplace_blocks.sh, which rebuilds the block and arrowhead Laplace tables from run 4's MAPs (the arrowhead rerun matched the README's 95% table exactly). Bring the roadmap's step 5 and 7 entries and the relative-fit decision up to date, and add planning/analysis-roadmap-summary.md: methods, bugs fixed, next steps and the reproducibility and merge plan. Eight slow smoke tests had not run since 2620a5b3 made the count likelihood the configure default; their mock data carry ln_cfu only, so they now ask for the ln_cfu likelihood. Tests: full suite with --runslow (5325 passed before the smoke fix; all 44 smoke tests pass after it). Co-Authored-By: Claude Opus 5.5 --- planning/analysis-roadmap-summary.md | 499 ++++++++++++++++++ planning/analysis-roadmap.md | 23 +- planning/studies/count-likelihood/README.md | 7 +- planning/studies/relative-fit/.gitignore | 2 + planning/studies/relative-fit/README.md | 42 +- .../studies/relative-fit/laplace_blocks.sh | 58 ++ planning/studies/svi-overconfidence/README.md | 21 +- tests/smoke-tests/test_configure_run_smoke.py | 4 + .../test_prefit_calibration_smoke.py | 2 + 9 files changed, 642 insertions(+), 16 deletions(-) create mode 100644 planning/analysis-roadmap-summary.md create mode 100644 planning/studies/relative-fit/laplace_blocks.sh diff --git a/planning/analysis-roadmap-summary.md b/planning/analysis-roadmap-summary.md new file mode 100644 index 00000000..deabdd71 --- /dev/null +++ b/planning/analysis-roadmap-summary.md @@ -0,0 +1,499 @@ +--- +title: What the analysis roadmap branch did and found +status: done +filed: 2026-10-02 +area: tfmodel +revisit_when: >- + A record. Revisit when picking up any item under "Where to go from here", + or before a methods section is written from it. +related: + - planning/analysis-roadmap.md + - planning/studies/count-likelihood/README.md + - planning/studies/relative-fit/README.md + - planning/studies/svi-overconfidence/README.md + - planning/studies/noise-anatomy/README.md + - planning/studies/od600-population/README.md + - planning/studies/growth-binding-map/README.md + - planning/dev-data/real_fit/README.md +--- + +Branch `claude/physics-improvements-roadmap-03a273`, 2026-09-26 to +2026-10-02. The plan is `planning/analysis-roadmap.md`; this file is the +outcome. Part 1 is written as a methods narrative, with the reasons and the +decisive numbers. Part 2 lists the bugs caught on the way. Part 3 is where +to go next, and part 4 is what it takes to reproduce the work and what goes +into the merge. + +Numbers about the real screen are summary statistics from +`planning/dev-data/` (gitignored). The data themselves never enter the +repository. + +# 1. Methods + +## Measurement model + +**Reads and totals.** Each tube is one timepoint: it is pulled, read for +OD600, spun down and frozen, and sequenced later. Reads measure +frequencies, and OD600 measures the tube's total. A tube that grew a little +faster than its neighbors scales every genotype and the total by the same +factor, so frequencies do not see it. We therefore modeled reads against +the tube total instead of attaching per-tube noise to every genotype. + +**Count noise.** We measured it before choosing a likelihood +(`planning/studies/noise-anatomy/`). Doubles are 97% of rows, with a median +of 3-5 reads per tube and 23-33% zeros. Per-tube variance was 5-18 times +Poisson at 100-3,000 reads, which points to a bottleneck upstream of the +reads (founder cells or PCR templates) rather than a constant-CV floor. +Today's `ln_cfu_var` understated the noise 5-10 fold. Low counts were +mostly low abundance, not crashes: 88% of double rows under 5 reads in +selective tubes were already under 5 reads without the drug. This study ran +on an older processing snapshot and has not been rerun on the new one. + +**Count likelihood.** We chose to observe reads directly, as +`reads ~ NegBin(mu, mu (1 + phi) + mu^2 inv_r)`, with no pseudocount +(`planning/studies/count-likelihood/`): +- The linear `phi` term matches the bottleneck signature. +- numpyro's own negative binomial lost several nats per observation to + float32 cancellation at 1e4-1e6 reads, so we implemented Loader's + algorithm and tested it against scipy at high depth. +- We paired it with one constant-prior level offset per tube, so that an + error in a tube's supplied total does not move every genotype in it. + +We tested it against the `ln_cfu` Student-t likelihood on 24 simulations: +2 noise models x 3 seeds x 4 fits. On the final run, theta 95% coverage +was 0.83 / 0.84 for counts (Poisson / realistic noise) against 0.72 / 0.83 +for `ln_cfu`. Theta RMSE was 0.035 / 0.072 against 0.100 / 0.109, and +dk_geno coverage was 0.71-0.86 against 0.53-0.55. At a true congression +lambda of 0, counts found 0.02-0.06, where `ln_cfu` found about 0.12, so +most of the spurious congression came from the read floor. Counts with +level offsets became the `tfs-configure-model` default. + +**OD600 calibration.** We ported the lab's OD600-to-CFU notebook into a +generic tool, `tfs-calibrate-od600`. It fits a weighted polynomial and +keeps the full coefficient covariance, because the curve error is shared +by every tube and must not be treated as per-tube noise. The lab's data and +constants stay out of the repository. The port reproduced the notebook's +coefficients to 2e-9 and found that the notebook never divided by the +plated volume, so its totals were 10x low. Growth rates and frequencies are +unaffected; absolute levels are. + +**Simulator realism.** We added the noise sources the data showed, each +switchable so its effect on a fit can be measured: founder sampling, +demographic growth, a shared transformation across replicates, a PCR +template bottleneck and OD600 through an inverse calibration. Matching the +real 5-18x over-Poisson noise needs templates on the order of reads per +tube / 10. + +## The growth-only relative fit + +**Why a relative variable.** A first, model-free look at five spiked +genotypes rejected a single linear map from in vitro binding theta to +growth (reduced chi-square 6.7 in kan; `planning/studies/growth-binding-map/`, +provisional). Growth alone fixes an occupancy-like variable only up to an +affine map, so we fit a wt-relative growth variable X instead of theta +(`theta: hill_relative`). It has Hill shapes with real-valued baselines, +and wt is gauged to X = 1 at 0 IPTG and X = 0 at 1 mM. One X per genotype +and IPTG concentration is shared by kan and 4CP, and each condition's k and +m map it to growth. Then k is wt's rate at 1 mM and m is wt's change +between 0 and 1 mM. The orchestrator refuses combinations the gauge cannot +support: binding data, learned activity, logit rescaling, non-linear growth +and partition-function congression rules. + +**ln_cfu0.** We fit one starting abundance per replicate x pre-condition x +genotype (`ln_cfu0: hierarchical`), because the kanR and pheS libraries are +transformed and grown separately. The factored model, which shares a +genotype's abundance across libraries, pushed the real between-library +difference (SD 0.17-0.29 in simulation) into a confident X error. At more +than 1000 reads, 95% coverage was 0.09 against 0.80, and RMSE was 0.101 +against 0.027. The orchestrator now refuses the factored model across +libraries. + +## Inference: what we tested and chose + +**The m·X ridge.** Growth constrains mostly `m (X_g - X_wt)`. The posterior +is therefore a curved ridge along m·X that only wt's absolute growth change +pins, through the tube totals. Every inference choice below follows from +that. + +**Guides on simulations.** We compared five inference arms on 30 +simulations, after fixing the start, scale and Laplace bugs in Part 2 +(`planning/studies/relative-fit/`, run 4). + +| Arm | X 95% coverage, Poisson / realistic | X RMSE, Poisson / realistic | +|---|---|---| +| Mean-field component guide | 0.06 / 0.38 | 0.30 / 0.29 | +| Low-rank guide (any rank from 20 to numpyro's default) | 0.81 / 0.76 | 0.07 / 0.12 | +| MAP + full Laplace | 0.98 / 0.94 | 0.11 / 0.29 | +| Two-stage fit (refit at Laplace draws of k and m) | 0.91 / 0.78 | 0.08 / 0.11 | + +- The component guide slides along the ridge. +- MAP + full Laplace covered best, with the noisiest point and the widest + intervals. +- Every guide collapsed k and m: k coverage was 0, and m coverage 0-0.25. +- A dense full-covariance guide ran its loss to -1e23 through float32 error + in its own log density. +- NUTS stayed at the maximum tree depth with R-hat 3.5 under every mass + matrix and in float64, so we used calibration over many seeds as the + reference instead. + +**Real data rejected the guides.** On the full library (217,945 +genotypes), both the component and the low-rank guide fit the counts +3.3-3.4e5 nats worse than the MAP, again by sliding along the ridge. +A full Laplace is out of reach there, with about 2.4M parameters. + +**Per-genotype Laplace.** Given the shared parameters (k, m, +hyperparameters, tube offsets), genotypes do not couple. On a simulation's +full Hessian every cross-genotype entry was exactly 0, wt included. So the +Hessian splits into one 9-11 parameter block per genotype, and we get all +the blocks from B Hessian-vector products per genotype chunk. The code +refuses a model whose blocks leak. With the shared parameters held at the +MAP, this block Laplace covered X 0.93 / 0.84 on simulations, with k/m +coverage 0. + +**Arrowhead Laplace.** We then added each genotype's coupling to the shared +parameters and the shared block, at one more Hessian-vector product per +shared parameter. We draw the shared parameters from their marginal, the +Schur complement, and each genotype from its conditional given them. That +is the full Laplace, and on a toy model it matched the dense inverse +Hessian exactly, chunked or not. + +A MAP stopped short of an optimum needed two rules: +- A floored direction of a genotype block carries no coupling. Kept, the + couplings of floored blocks subtracted 6e10 from m's curvature of 1e10. +- A negative direction of the Schur complement is held at the MAP. Floored + at the prior instead, it gave k its prior SD and X widths of 1-3. + +On the simulations it covered X 0.97 / 0.94 (0.95-0.98 above 1000 reads) +and k/m 0.92 / 1.0 (Poisson) and 0.50 / 0.42 (realistic). That is close to +the full Laplace's 0.92 / 0.92 and 0.58 / 0.50, so the realistic-noise +shortfall is not the approximation's. **MAP + arrowhead Laplace is the +full-library route.** On the real library it ran in 20 minutes. + +**Laplace floor.** Each Hessian eigenvalue is floored at the prior's +curvature along its eigenvector, so no direction is wider than the prior. +The old flat 1e-3 floor turned negative eigenvalues into variances of 1000. + +## Fitting the real screen + +**Data.** The screen had 118 tubes after dropping three failed ones, and +22.9M count rows over 217,945 genotypes. +- Tube totals came from OD600 through the calibration. Every screen + reading lay inside the calibrated range. +- Binding curves came from one joint fit of anisotropy to theta and Hill + curves, with per-day levels and robust residuals, interpolated to 10 µM + protein. +- The library has nine spikes. The processing config listed three, and its + M42I codon differed from the spikes'; we corrected both. +- The initial kan and phe samples were swapped, and we swapped them back. + +**Starting point.** A level-offset MAP from a cold start landed in a ±2.8 +offset mode with unphysical k and m. Adam moves every parameter about one +step size per step, so the fast parameters were carried by whole units in +the first window, and the step-size cuts froze them there. We started +instead from the no-offset MAP plus small per-tube offsets +(`tfs-fit-model --init_from`), which was 8.6e5 nats better. The offsets' +SD is held at 0.17, the per-tube OD600 scatter. Learned, it grew until each +tube's offset absorbed the population's growth. + +**Population SDs.** The learned log(hill_n) population SD ran to about 19, +giving n from 0.01 to 13. In 42% of genotypes the curve then changed more +between 0 and 0.1 µM IPTG than across the whole measured range, and the +counts show no such step. We hold that SD at 0.5. Holding X_low, X_delta +and log K as well, at 0.5 / 0.5 / 1.0 against learned 3.6 / 4.3 / 11, is a +sensitivity check (below). + +**Growth priors.** k ~ N(0.015, 0.01) and m ~ N(0, 0.01) per condition, +written by hand, since the pre-fit refuses growth-only models. The wt +monoculture rates as kan priors changed m in the fifth digit. + +**Final fit.** The final fit is `rel_off_n05`. It is growth-only, with the +count likelihood, level offsets at SD 0.17, the n population SD held at +0.5, loose priors and nine spikes, followed by the arrowhead Laplace. It fits +the counts 2.0e4 nats better than the best joint MAP, which used the same +offsets. Without offsets, the growth-only fit was likewise 2.2e4 nats ahead +of the joint one. Its +median X 95% width by genotype read depth is: + +| Reads | 95% width | +|---|---| +| ≤ 100 | 2.6 | +| 1e2-1e3 | 1.2 | +| 1e3-1e4 | 0.69 | +| 1e4-1e5 | 0.42 | +| > 1e5 | 0.33 | + +## Assumptions we checked + +- **Genotype blocks are uncoupled given the shared parameters,** checked on + a full Hessian and guarded by a leak check on every run. +- **The simulator matches the fit model:** growth k + dk + m·A·θ to 2e-16, + θ to the Hill truth to 1.4e-5. +- **Every per-genotype latent is mini-batch safe,** by shape and by order, + registry-wide. +- **The level offsets are not the unassigned-read share** (correlation + -0.21 / -0.41). Closure of the frequencies improved with them (SD 0.16 + to 0.11). +- **The kanR and pheS libraries differ in composition** (Spearman about + 0.1), which supports per-library ln_cfu0. +- **Unselected kan shows no IPTG effect** (wt 1 mM / 0 mM log-ratio about + 0). +- **The split density from the protocol agrees** with extrapolation of the + unselected tubes within 1.5-fold. +- **wt's within-series growth in the screen matches its monoculture** in + kan (IPTG effect 0.013 vs 0.014). In pheS+4CP it does not: library wt + keeps growing at high IPTG where the monoculture stops. + +## What the results are insensitive to + +- **The spike curve shapes, K and n, stay inside their arrowhead Laplace + intervals across:** + - holding all four Hill population SDs (`rel_off_hs`); + - adding the congression mixture (`rel_off_hs_mix`, `max` rule, lambda + prior matched to the measured 0.357 with likelihood-ratio 95% CI + 0.16-0.67); + - the k/m uncertainty. +- **The k and m priors** (loose against monoculture). +- **The SVI guide's rank** (20 against numpyro's default). + +**Sensitive, and under-constrained: m and the absolute X scale.** Holding +the population SDs made every |m| 38% larger and scaled X by 0.77, and the +mixture moved |m| another 21%. These shifts are far outside m's Laplace +interval of ±4-5%. Each step fit the counts about 2.2e4 nats better and +grew the tube offsets. The offsets follow IPTG, in opposite directions in +kan and 4CP. A per-tube offset moves every genotype's predicted frequency +in that tube, so a library-wide IPTG trend can sit in the offsets instead +of in m·X. The Laplace intervals on k and m are therefore conditional on +where the MAP sits on the ridge. We report curve shapes and baselines +relative to wt, not rates. + +## What the fit says about growth and binding + +- **Growth curves are broader than binding curves.** Spike growth n is + 0.6-1.2 (every 95% upper bound ≤ 1.17), against binding n 1.6-2.5. This + holds for clean spikes and bulk-sourced genotypes alike and survived the + congression mixture, so it is not congression. +- **M42I induces below wt in growth,** with K 6.4 µM (95% 4.2-9.6) against + wt 12 µM (8.8-16.7). In binding its K is about 10x wt's, at both 2 and + 20 µM protein. +- **Every mutant falls to a common floor near X -0.5 by 1 mM,** including + weak binders whose binding plateaus sit above it. Taking the floor as + zero occupancy, growth says wt is about 70% induced at 1 mM, where + binding says 93%. +- **No single apparent protein concentration and no shared monotone map + carries binding onto growth.** The best shared concentration left an RMS + of 0.285 in X, and isotonic maps 0.21-0.25 at every concentration. The + departures, 0.3-1.0 in X, are well outside the 0.15-0.35 interval + widths. + +# 2. Bugs caught and fixed + +## Inference and optimization + +- **SVI started far from the pre-MAP point.** The guide's initial scale was + 0.1 in each site's units, plus a 0.1 multiplicative jitter. SVI began + about 1000x above the pre-MAP loss and fell into wrong optima: mirror + modes, halved m. This invalidated the absolute coverage of every earlier + SVI grid. Fix: scale 1e-4, jitter 0 (c57d9ee5). +- **That fix froze the hyperparameter scales.** It put them on their + `greater_than(1e-4)` bound, which is -inf unconstrained, so they never + moved. This affected every component-guide fit from 2026-09-27 to + 2026-09-29, which we reran as relative-fit run 4 and the + svi-overconfidence fix grid. Fix: start above the bound (9db28286). +- **Step-size cuts came mid-descent.** The cut rule judged each window + alone. 20 of 23 first cuts on the count-likelihood v2 grid came during a + descent that pooled to t = 4-14, and one cut led into a wrong optimum. + Fix: pool the stalled windows before any cut or stop (740ebc19). +- **A runaway loss (-8e23) was reported as converged.** Fix: a `diverged` + stop (32a7ec12). +- **NUTS chains started at random,** because no site matched the start + values. Fix (8e244cf0). + +## Laplace and posteriors + +- **The pre-fit took its Hessian at exp(value) of every positive site.** + Constrained and unconstrained values were mixed. phi overflowed and 8 + count fits crashed, and on `ln_cfu` fits the written k scale was 4-9x too + loose. We reran the whole first count-likelihood grid. Fix (c65390aa). +- **The flat 1e-3 Laplace floor** turned negative eigenvalues into + variances of 1000. It caused 5 of 6 Laplace blowups in relative-fit runs + 2-3 and spread m 50x on the two-stage grid. Fix: the prior-curvature + floor (9db28286). +- **The Laplace kept the mini-batch likelihood scale at full batch,** 53x + on the real screen at batch 4096. No result was affected. Fix (cd208d15). + +## Model components and numerics + +- **The factored ln_cfu0 assumed one library.** It moved the kanR/pheS + difference into confident theta errors in every study grid. Fix: refuse + it across libraries and rerun the grids with `hierarchical` (722393cf). +- **The factored ln_cfu0's centered tube offset had an unbounded density,** + so no MAP existed. Fix: non-centered offsets (32a7ec12). +- **The negative binomial concentration underflowed** for near-extinct + genotypes, giving NaN gradients. Fix: a floor (c65390aa). +- **A horseshoe local scale squared to infinity** for low-read doubles. + Fix: overflow-safe helpers (740ebc19). + +## Simulator, processing and I/O + +- **Simulated binding observations were clipped to [0, 1]** against an + unclipped likelihood. That affected 10-17% of anchors. Fix (6e2903d5). +- **`tfs-extract-params` mislabeled ln_cfu0 rows** after any missing + genotype cell. Correlation with presplit was 0.09-0.25 instead of 0.999. + The fits themselves were fine. Fix (079680bd). +- **Prediction failed with per-tube offsets.** Prediction now zeroes them, + giving the typical tube (775f8b79). +- **Absent prior groups reloaded from the priors CSV as NaN.** Fix + (98fb6db0). +- **`read_configuration` silently dropped guesses for sites outside + `init_params`.** This is how the cold-start offset mode arose. Fix: + `--init_from` (faa5b116). + +## Data problems found + +- The OD600 notebook omitted the plated-volume division. +- The initial kan and phe samples were swapped. +- The processing config listed 3 of 9 spikes, with a wrong M42I codon. +- Sample-name forms differed between files. +- One tube was missing from `sample_df`. +- The old snapshot's `presplit.csv` had residue numbering one lower than + `growth.csv`. +- That snapshot's FASTQ processing sent all unknown reads to wt, which is + why the step 0 studies are provisional. + +## Fit pathologies that needed new options + +These were model behaviors, not code bugs: +- runaway Hill population SDs, now held with + `theta_*_hyper_scale_fixed`; +- a learned tube-offset SD that absorbed growth, now held with + `sigma_fixed`; +- a single m prior width for every condition; `m_scale_plus` and + `m_scale_minus` now accept per-condition arrays. + +# 3. Where to go from here + +In rough order of payoff for the science: + +1. **The binding/growth relationship, as its own study.** The facts to + explain are firm: broader growth curves, a common floor, wt only about + 70% induced in vivo, and M42I's K inverted. Candidates: + - cell-to-cell variation in IPTG uptake or repressor level, which + flattens a steep θ(IPTG), testable first on wt's binding titration; + - a full thermodynamic binding model with protein concentration. + + The direct bench test is monoculture growth of the spikes across the + titration (`planning/absolute-abundance-measurements.md`). +2. **The IPTG-patterned tube offsets.** Candidates: + - an OD600-to-CFU relation that shifts under selection (roadmap D11); + - a library-wide growth effect the linear growth model lacks. + + A bench check of OD against plate counts under selection would separate + them, and the population model (roadmap step 6) would carry it. +3. **Pinning the X scale and m, if rates are ever needed.** + - wt monoculture rates as an observer, not just a prior; + - a presplit measurement for this screen; + - a per-tube spike-in counting standard for future screens. +4. **A MAP that reaches its optimum.** Every hierarchical MAP stopped at + its epoch cap, and on real data it is a saddle along the m·X ridge. + - The Laplace needs floor and hold rules for that reason. + - Low-depth genotypes are noisy at the MAP: on simulations, X RMSE was + 1.4 at ≤ 100 reads against 0.22 for the low-rank point. + - Newton steps with the arrowhead Hessian are one route. + - Holding the population SDs shrinks the low-depth genotypes, but only + together with the ridge slide. +5. **Rerun the provisional step 0 studies** on the new processing: + 0a growth-binding map, 0b noise anatomy, 0c OD600 population. Finish + 0c's curve-form decision (roadmap D9). +6. **Remaining roadmap steps:** + - 2: counts and OD600 through processing; + - 6: the population model; + - 7b: growth transitions, test then purge, with 4CP the likely case; + - 8 and 9: the learned map and the joint fit; + - the kan-vs-4CP consistency check (D5), which a shared X cannot test + alone. +7. **Known calibration gaps on simulations:** + - k/m undercover under realistic noise even with the full Laplace; + - the joint fit's saturated high plateau undercovers (0.31); + - the pre-fit under the count likelihood wrote k priors far from truth. + +# 4. Reproducing this work, and what goes into the merge + +**What reproduces now.** Every package change is committed with tests, and +the CHANGELOG and CLAUDE.md describe it. These studies have tracked scripts +and grids with fixed seeds: +- `count-likelihood` +- `relative-fit` +- `svi-overconfidence` +- `noise-anatomy` +- `od600-population` +- `growth-binding-map` +- `step0-data` + +Their grid outputs are gitignored and live only on the cluster and local +disk. + +**Gaps in the tracked studies, closed 2026-10-03:** +- Each study README's "Commit" section now names the commit each grid ran + on. Where the README had not recorded it, the commit is inferred from the + file times of the downloaded `run.out` files, and the README says so. +- `relative-fit/laplace_blocks.sh block|arrowhead` reproduces the block and + arrowhead Laplace tables from a finished `relative_fit_v4/`. Rerun on + 2026-10-03, the arrowhead mode matched the README's 95% table exactly + (50% coverage within 0.01, from new draws). +- The roadmap's step 5 and 7 entries and the relative-fit decision text are + current, and the relative-fit README opens with the current answer. +- The one-off diagnoses in `svi-overconfidence` (NUTS variants, the plateau + tests, the truth-pinned fit) are marked in its README as records, not + reproducible results. Scripting each one is not worth it. + +**The real-data fit is the harder part.** Its scripts live in the +gitignored `planning/dev-data/`, mixed with 55 GB of data and run outputs: +- Processing: `prep_dev_data.py`, `binding_fit.py`. +- Run templates: `run.srun`, `run_relative.srun`, `run_blap.srun`. +- Start points: `make_init_npz.py`, `make_warm_start.py`, + `make_init_hs.py`, `check_warm.py`. +- Priors: `set_growth_priors.py`. +- Scoring: `score_counts.py`, `residual_compare.py`. +- Scans and figures: `scan_protein.py`, `scan_monotone.py`, + `plot_x_vs_binding.py`, `resid/small_offsets.py`, + `resid/profile_offsets.py`. + +The final fit's start depends on a chain of six earlier runs: `rel_loose_b` +and `map_off_n05`, and through it `map_nooffset_n05`, `map_warm`, +`map_sig017b` and `map_nooffset_b`. About twenty other run directories and +the smoke tests are dead ends. + +Proposal: +1. Keep the data where they are, out of the repository (C10). +2. Collect the scripts the final results need into one place, with a + README that gives the chain as commands: inputs, each run's script and + settings, and the helper that builds the next start. Drop the dead + scripts: `compare_arms.py`, `resume_posterior.srun`, `fetch.sh`, + `local_offsets/`. +3. Shorten the chain if possible. A recipe of no-offset relative MAP, then + offsets warm-started from it, then the final fit would need one rerun to + confirm it lands at the same point. Otherwise the chain is documented as + it ran. +4. Archive the final MAP parameters and starting npz files with the lab's + data, since they are derived from it. + +Two decisions here are Mike's: +- **Where the real-data scripts live.** They hold no raw data, but they do + encode the lab's protocol: library design, spike codons, tube volume, + presplit dilution and file names. One option is tracked, in a study + directory such as `planning/studies/dev-data-fit/`, reading data from the + gitignored `planning/dev-data/`. The other is the lab's own analysis + repository, pinned to a tfscreen commit. +- **Whether to rerun the shortened chain** to make the final fit one recipe + long. + +**The merge itself.** `main` has not moved since 2026-09-26, so the merge +is mechanical. The full suite, slow and smoke tests +included, ran on 2026-10-03: 5,325 passed and 8 smoke tests failed. The 8 +built mock data with `ln_cfu` only and had not been run since the count +likelihood became the configure default (2620a5b3). They now ask for the +`ln_cfu` likelihood their data imply, and all 44 smoke tests pass; the +count path keeps its smoke coverage through the fixture-based tests. The +stale entries are fixed (above). +Still open: set the roadmap to `done`, or keep it `active` for steps 2, 6, +7b, 8 and 9 (Mike's choice). diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index c2e83804..6b9c1139 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -22,6 +22,10 @@ related: - src/tfscreen/tfmodel/generative/components/sample_offset/normal.py --- +**Outcome (2026-10-02):** `planning/analysis-roadmap-summary.md` records +what this branch built, tested and found, the bugs fixed, where to go next +and how to reproduce it. Steps 2, 6, 7b, 8 and 9 are not done. + ## Why The congression plan (`planning/congression-physics-plan.md`) is close to @@ -447,7 +451,16 @@ step 7. joint fit without binding data when fit with `--guide_type auto_low_rank_multivariate_normal`. The mean-field component guide is biased along the m·X ridge. Intervals from every - SVI arm, joint included, are too narrow; that is a separate problem.) + SVI arm, joint included, are too narrow; that is a separate problem. + Updated 2026-10-02: run 4, after the start, scale and Laplace fixes, + confirmed the guide verdict (component X 95% coverage 0.06 / 0.38, + low-rank 0.81 / 0.76, Poisson / realistic). On the real library the + low-rank guide slid along the ridge (3.3e5 nats worse than the MAP), so + the full-library route is the MAP plus the arrowhead Laplace + (`tfs-sample-posterior --laplace_blocks --laplace_shared`): X 0.97 / + 0.94 and k/m close to the full Laplace on run 4. Real-data results: + `planning/dev-data/real_fit/README.md` (gitignored) and + `planning/analysis-roadmap-summary.md`.) - A relative Hill theta component: hill_geno's curve with real-valued baselines, population priors centered on wt, registry rules (C5). Gauge (D4): wt's curve is pinned to `X = 1` at `c_lo` and `X = 0` at `c_hi` @@ -518,8 +531,12 @@ step 7. - Validation: the calibration grid with step 4's noise on, against the step 2 interim total: theta coverage, `k_c`/`m_c` recovery (C4), in the joint and the relative fit. -7. [x] **Count likelihood** (N). (Validated 2026-09-27; whether it becomes - the default for real data is the user's call.) +7. [x] **Count likelihood** (N). (Validated 2026-09-27. The fourth run, + 2026-09-28, with `ln_cfu0: hierarchical`: theta 95% coverage 0.83 / 0.84 + against 0.72 / 0.83 for `lncfu`, RMSE 0.035 / 0.072 against 0.100 / + 0.109. `counts` with `sample_offset: level` is the + `tfs-configure-model` default since 2620a5b3, and the real-data fits use + it.) `growth_likelihood: counts` (C2): growth and presplit observers with `reads_{g,s} ~ NegBin(depth_s * exp(ln n_{g,s} - P_s + u_s), dispersion)`, `P` from step 6 (until then, the supplied `sample_ln_cfu`, D14), `u` diff --git a/planning/studies/count-likelihood/README.md b/planning/studies/count-likelihood/README.md index 899e7da0..0a6ce1e6 100644 --- a/planning/studies/count-likelihood/README.md +++ b/planning/studies/count-likelihood/README.md @@ -73,8 +73,11 @@ Repository paths only: `grid.yaml`, `run.srun`, ## Commit First run: commit 775f8b7 (2026-09-26/27), results in `count_likelihood/`. -Second run: commit c65390aa (2026-09-27), results in `count_likelihood_v2/` -(neither is committed). +Second run: commit c65390aa (2026-09-27), results in `count_likelihood_v2/`. +Third run: commit 740ebc19 (2026-09-27), results in `count_likelihood_v3/`. +Fourth run: 722393cf (2026-09-28, inferred from the file times of its +`run.out` files; the runs do not log a commit), results in +`count_likelihood_v4/`. None of the result directories are committed. ## Results diff --git a/planning/studies/relative-fit/.gitignore b/planning/studies/relative-fit/.gitignore index bdc565a6..71de47e5 100644 --- a/planning/studies/relative-fit/.gitignore +++ b/planning/studies/relative-fit/.gitignore @@ -3,3 +3,5 @@ relative_fit relative_fit_v2 relative_fit_v3 relative_fit_v4 +relative_fit_v4_block +relative_fit_v4_arrowhead diff --git a/planning/studies/relative-fit/README.md b/planning/studies/relative-fit/README.md index bdb6bbb2..4e501fb7 100644 --- a/planning/studies/relative-fit/README.md +++ b/planning/studies/relative-fit/README.md @@ -13,6 +13,15 @@ that hold under realistic count noise? - C4: whether `k_c`/`m_c` are recovered from growth alone, with totals supplied (step 6 later replaces the supplied totals). +**Current answer (2026-10-02).** The relative fit is sound. For intervals, +use the MAP plus the arrowhead Laplace (`--laplace_blocks +--laplace_shared`): on run 4 it covered X 0.97 / 0.94 (Poisson / +realistic) and k/m about as well as the full Laplace, and it runs on a full +library. The low-rank guide is the SVI choice (X 0.81 / 0.76), but on the +real library it slid along the m·X ridge. k and m are recovered here only +as well as the tube totals allow (C4). The sections below are in the order +they were run; later runs supersede earlier ones. + ## Design Base config: `../congression-calibration/simulate_config.yaml` (483 @@ -98,11 +107,21 @@ Repository paths only: `grid.yaml`, `run.srun`, ## Commit -Not yet run. A local smoke run of one `realistic`/`counts`/`relative` run -(SVI stopped after 3 epochs past the pre-MAP) completed every pipeline step -(2026-09-26): the theta test file carries `theta_scale = X` with truth on the -gauge, and `growth_k`/`growth_m` carry X-scale truth. It checks plumbing, -not results. +Grid runs do not log a commit. Where the README did not record one, the +commit below is inferred: the last commit before the grid's runs finished, +from the file times of the downloaded `run.out` files (2026-10-03). + +- Run 1 (`relative_fit`, 2026-09-27): before c57d9ee5 (the SVI start fix); + not recorded more closely. +- Run 2 (`relative_fit_v2`, 2026-09-28): after e29c7395 (the low-rank and + MAP arms), with factored ln_cfu0; not recorded more closely. +- Run 3 (`relative_fit_v3`, 2026-09-28): 722393cf (inferred). +- Run 4 (`relative_fit_v4`, 2026-10-01): 0e220e7b (inferred). +- Block Laplace tables (2026-10-02, local): cd208d15. Arrowhead Laplace + tables (2026-10-02, local): a874ac38. Both are reproduced by + `laplace_blocks.sh block|arrowhead` from a finished `relative_fit_v4/`. + +None of the result directories are committed (gitignored). ## Results @@ -374,11 +393,14 @@ is enough). Expect X 95% intervals to cover about 0.76-0.81, and treat k and m intervals from any guide as too narrow. A full-library Laplace is out of reach (about 2M parameters), so on real data the k/m uncertainty needs the two-stage fit with the Laplace taken on a subset. +*Superseded 2026-10-02:* the arrowhead Laplace below covers k/m on a full +library, and the low-rank guide failed on real data, so see "Current +answer" at the top. **Block Laplace on run 4's MAPs (2026-10-02, local).** The per-genotype Laplace (`tfs-sample-posterior --laplace_blocks`, new) on copies of the six -`map` runs (500 draws each, then predict, extract and summarize; not -committed). Given the shared parameters, run 0004's full Hessian (4,521 +`map` runs (500 draws each, then predict, extract and summarize; +`laplace_blocks.sh block`). Given the shared parameters, run 0004's full Hessian (4,521 parameters: 478 genotypes x 9, plus 219 shared) had every cross-genotype entry exactly 0, wt included. Each block's covariance matched the inverse of the full Hessian's diagonal block to 8e-6, except where the prior floor @@ -404,9 +426,9 @@ full Laplace's 0.94). **Arrowhead Laplace on run 4's MAPs (2026-10-02, local).** The block Laplace plus each genotype's coupling to the shared parameters and the shared block (`--laplace_blocks --laplace_shared`, new), on the same six -copies (500 draws each; not committed). The shared parameters come from -their Schur complement and each genotype from its conditional, which is -the full Laplace. Two rules were needed. Floored genotype directions carry +copies (500 draws each; `laplace_blocks.sh arrowhead`). The shared +parameters come from their Schur complement and each genotype from its +conditional, which is the full Laplace. Two rules were needed. Floored genotype directions carry no coupling. Negative Schur directions are held at the MAP: floored at the prior instead, the k/dk_geno slide (`dk_geno_hyper_shift` with k, eigenvalue about -1e7, runs 0009 and 0024) gave k its prior SD of 0.01 and diff --git a/planning/studies/relative-fit/laplace_blocks.sh b/planning/studies/relative-fit/laplace_blocks.sh new file mode 100644 index 00000000..59704fde --- /dev/null +++ b/planning/studies/relative-fit/laplace_blocks.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# Block and arrowhead Laplace on run 4's MAP runs (README, "Block Laplace on +# run 4's MAPs" and "Arrowhead Laplace on run 4's MAPs"). +# +# bash laplace_blocks.sh block # --laplace_blocks (shared params held) +# bash laplace_blocks.sh arrowhead # --laplace_blocks --laplace_shared +# +# Run from this directory after relative_fit_v4/ is complete. Each +# relative_fit_v4/run_*_map is copied (config, priors, guesses, library, +# checkpoint, simulated truth) into relative_fit_v4_/, so the map arm's +# own posterior is left alone. Then 500 draws, extract, predict, summarize, +# and tfs-summarize-calibration pools the six runs into +# relative_fit_v4_/calib__*. About 5 minutes per run on a laptop +# CPU; RUN_JOBS (default 3) runs that many at once. +# +# Tables in the README: block at cd208d15, arrowhead at a874ac38. + +set -euo pipefail + +mode="${1:?usage: laplace_blocks.sh block|arrowhead}" +case "${mode}" in + block) laplace_args=(--laplace_blocks) ;; + arrowhead) laplace_args=(--laplace_blocks --laplace_shared) ;; + *) echo "unknown mode '${mode}'" >&2; exit 1 ;; +esac + +src=relative_fit_v4 +out="relative_fit_v4_${mode}" +mkdir -p "${out}" +cp "${src}/grid_summary.json" "${out}/" + +one_run() { + local run="$1" dest + dest="${out}/$(basename "${run}")" + mkdir -p "${dest}" + cp "${run}"/combo.json "${run}"/tfs_configure_* "${run}"/tfs_sim_* \ + "${run}"/tfs_fit_model_checkpoint.pkl "${dest}/" + ( + cd "${dest}" + tfs-sample-posterior tfs_configure_config.yaml tfs_fit_model_checkpoint.pkl \ + "${laplace_args[@]}" --num_posterior_samples 500 \ + --sampling_batch_size 100 > sample.log 2>&1 + tfs-extract-params tfs_configure_config.yaml tfs_posterior.h5 > extract.log 2>&1 + tfs-predict-theta tfs_configure_config.yaml tfs_posterior.h5 > theta.log 2>&1 + tfs-predict-growth tfs_configure_config.yaml tfs_posterior.h5 \ + --num_marginal_samples=500 > growth.log 2>&1 + tfs-summarize-fit . > summary.log 2>&1 + ) + echo "done ${dest}" +} +export -f one_run +export out mode +export laplace_args_str="${laplace_args[*]}" + +ls -d "${src}"/run_*_map | xargs -P "${RUN_JOBS:-3}" -I{} bash -c \ + 'set -euo pipefail; laplace_args=(${laplace_args_str}); one_run "$1"' _ {} + +tfs-summarize-calibration "${out}" --out_prefix "${out}/calib_${mode}" diff --git a/planning/studies/svi-overconfidence/README.md b/planning/studies/svi-overconfidence/README.md index 931f9854..ada39b42 100644 --- a/planning/studies/svi-overconfidence/README.md +++ b/planning/studies/svi-overconfidence/README.md @@ -119,7 +119,26 @@ and the guide diagnostics. ## Commit -Not yet run on the cluster. +Grid runs do not log a commit. Where the README did not record one, the +commit below is inferred: the last commit before the grid's runs finished, +from the file times of the downloaded `run.out` files (2026-10-03). + +- Run 1 (local, `run_local.sh`, 2026-09-27/28): factored ln_cfu0, before + 722393cf. The current `run.srun` uses `hierarchical`, so rerunning it + needs `--ln_cfu0_model hierarchical_factored` and an older commit. +- Run 2 (`svi_overconfidence_v2`, 2026-09-28): 722393cf (inferred). +- Two-stage grid (`svi_overconfidence_two_stage`, 2026-09-28): beaab7bb + (inferred). +- Fix grid (`svi_overconfidence_fix`, 2026-09-29): 9db28286 (inferred). +- Unclipped-binding grid (`svi_overconfidence_noclip`, 2026-09-29): + 6e2903d5 (inferred). +- The NUTS pilots, the reference MAP and full-covariance pilots, the + continuation runs and the high-plateau diagnosis (Student-t population, + flat-in-theta prior, pinned noise, precise binding, truth-pinned fit) were + local one-offs with scratch scripts or temporary code edits that were not + committed. Their numbers here are a record, not a reproducible result. + +None of the result directories are committed (gitignored). ## Results diff --git a/tests/smoke-tests/test_configure_run_smoke.py b/tests/smoke-tests/test_configure_run_smoke.py index f4bfde08..9fe66abf 100644 --- a/tests/smoke-tests/test_configure_run_smoke.py +++ b/tests/smoke-tests/test_configure_run_smoke.py @@ -99,6 +99,7 @@ def test_configure_run_pipeline_smoke(tmpdir, library_smoke_yaml): # Run configuration configure_model(binding_path, + growth_likelihood="lncfu", sample_offset_model="zero", growth_df=growth_path, library_config=library_smoke_yaml, out_prefix=out_prefix) @@ -256,6 +257,7 @@ def test_configure_run_autoguide_smoke(tmpdir, guide_type, library_smoke_yaml): cfg_prefix = os.path.join(tmpdir, "test_tfs") configure_model(binding_path, growth_df=growth_path, + growth_likelihood="lncfu", sample_offset_model="zero", library_config=library_smoke_yaml, out_prefix=cfg_prefix) config_file = f"{cfg_prefix}_config.yaml" @@ -318,6 +320,7 @@ def test_configure_run_binding_weight_smoke(tmpdir, library_smoke_yaml): # ── 1. Explicit binding_weight is preserved in the YAML ────────────────── out_explicit = os.path.join(tmpdir, "tfs_explicit") configure_model(binding_path, + growth_likelihood="lncfu", sample_offset_model="zero", growth_df=growth_path, library_config=library_smoke_yaml, out_prefix=out_explicit, @@ -332,6 +335,7 @@ def test_configure_run_binding_weight_smoke(tmpdir, library_smoke_yaml): # ── 2. Auto-computed binding_weight is a concrete float, not None ───────── out_auto = os.path.join(tmpdir, "tfs_auto") configure_model(binding_path, + growth_likelihood="lncfu", sample_offset_model="zero", growth_df=growth_path, library_config=library_smoke_yaml, out_prefix=out_auto) diff --git a/tests/smoke-tests/test_prefit_calibration_smoke.py b/tests/smoke-tests/test_prefit_calibration_smoke.py index 5b52409a..652fc689 100644 --- a/tests/smoke-tests/test_prefit_calibration_smoke.py +++ b/tests/smoke-tests/test_prefit_calibration_smoke.py @@ -77,6 +77,7 @@ def test_prefit_writes_per_condition_baseline_prior(tmpdir, library_smoke_yaml, out_prefix = os.path.join(tmpdir, f"tfs_{cg_model}") configure_model(binding_path, + growth_likelihood="lncfu", sample_offset_model="zero", growth_df=growth_path, library_config=library_smoke_yaml, condition_growth_model=cg_model, @@ -126,6 +127,7 @@ def test_configure_prefit_fit_full_loop_with_per_condition_priors(tmpdir, out_prefix = os.path.join(tmpdir, "tfs_full") configure_model(binding_path, + growth_likelihood="lncfu", sample_offset_model="zero", growth_df=growth_path, library_config=library_smoke_yaml, condition_growth_model="linear", From 65029720522abec3e07403ce6f66d2f767f88c6a Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 3 Oct 2026 17:46:31 -0700 Subject: [PATCH 081/208] Add contributing guide, PR template and CI coverage check Document the fork-and-PR workflow into main, the branch protection rules on main, the unit test coverage expected of every change, numpydoc docstrings, code standards (pointing to CLAUDE.md), changelog updates and commit message style. The PR template asks what changed, why and how it was verified, and gives a checklist of those requirements. A new Coverage CI job runs the unit tests with --runslow under coverage. It fails if any line a pull request changes is uncovered (diff-cover, 100%) or if total coverage drops below 90% (currently 92% with branches). Coverage settings move into pyproject.toml so local and CI runs match, and diff-cover joins the test extras. --- .github/pull_request_template.md | 25 ++++ .github/workflows/tests.yml | 37 ++++++ CONTRIBUTING.md | 205 +++++++++++++++++++++++++++++++ pyproject.toml | 10 +- 4 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 .github/pull_request_template.md create mode 100644 CONTRIBUTING.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..fac305a0 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,25 @@ +## What and why + + + +## How it was verified + + + +## Checklist + +See [CONTRIBUTING.md](https://github.com/harmslab/tfscreen/blob/main/CONTRIBUTING.md) for details on each item. + +- [ ] Branch is up to date with `upstream/main` +- [ ] New and changed code has full unit test coverage, including branches and error paths +- [ ] Bug fixes include a test that fails without the fix +- [ ] Slow tests are marked `@pytest.mark.slow` +- [ ] `pytest tests/tfscreen --runslow` passes locally +- [ ] `diff-cover coverage.xml --compare-branch=upstream/main` reports 100% +- [ ] `flake8 . --count --select=E9,F63,F7,F82` reports no errors +- [ ] Public functions, classes and methods have numpydoc docstrings +- [ ] New components, CLIs and YAML keys follow the conventions in `CLAUDE.md` +- [ ] `CLAUDE.md` is updated if the change alters how the code works +- [ ] `CHANGELOG.md` has an entry under `[Unreleased]` for any user-visible change +- [ ] No data, checkpoints or other large files are committed diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 360c936f..e04cfab1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -42,3 +42,40 @@ jobs: run: > pytest tests/tfscreen ${{ (github.event_name == 'workflow_dispatch' && inputs.run_slow_tests) && '--runslow' || '' }} + + coverage: + name: Coverage + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + # diff-cover compares against main, so it needs the full history. + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install package and test dependencies + run: pip install -e ".[test]" + + # Slow tests are included so code tested only by them counts as covered. + - name: Run unit tests under coverage + env: + NUMBA_DISABLE_JIT: "1" + run: coverage run -m pytest tests/tfscreen --runslow + + - name: Report total coverage + run: | + coverage xml + coverage report --fail-under=90 + + # Every line and branch a pull request adds or changes must be covered. + - name: Check coverage of changed lines + if: github.event_name == 'pull_request' + run: > + diff-cover coverage.xml + --compare-branch=origin/${{ github.base_ref }} + --fail-under=100 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..94dbffd8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,205 @@ +# Contributing to tfscreen + +Thanks for helping. This file covers how to propose a change and what a pull +request needs before it can merge. + +## Before you start + +For anything larger than a bug fix, open an issue first and describe what you +want to change and why. The model is a coupled system, and a change that looks +local often touches the priors, the guides, the simulator and the CLIs at once. +A short discussion up front saves rework. + +Ideas, active plans and the studies behind them live in `planning/`. Check +there before starting work on the model; your idea may already have a plan or +a recorded reason it was set aside. See `planning/README.md`. + +## Workflow + +We develop on forks and merge into `main` through pull requests. Nobody pushes +directly to `main`. + +1. Fork `harmslab/tfscreen` on GitHub and clone your fork. +2. Add the main repository as `upstream`: + + ```bash + git remote add upstream git@github.com:harmslab/tfscreen.git + ``` + +3. Create a branch for each change, named for what it does + (`fix-presplit-offset`, `add-baranyi-guide`). Keep one logical change per + branch. +4. Before opening the pull request, bring your branch up to date with + `upstream/main` and rerun the tests. +5. Open a pull request into `harmslab/tfscreen:main`. The pull request + template asks what changed, why, and how you verified it, and gives a + checklist of everything below. Work through it before asking for review. + +`main` is a protected branch. GitHub enforces the following: + +- Every change goes through a pull request. Direct pushes and force pushes to + `main` are blocked. +- A pull request needs one approving review. +- All CI checks must pass: the test matrix and the coverage job. +- The branch must be up to date with `main` before it can merge. If `main` + moves while your pull request is open, merge or rebase onto it and let CI + run again. +- Pushing new commits dismisses earlier approvals, so a reviewer has to + approve the final version. Finish your changes before asking for a last + review. + +## Development setup + +tfscreen needs Python 3.11 or later. Install it in editable mode with the test +dependencies: + +```bash +pip install -e ".[test]" +``` + +## Tests + +Every pull request needs full unit test coverage of the code it adds or +changes. In practice that means: + +- Every new function, branch and error path has a test that exercises it. + We measure branch coverage, not just line coverage. +- A bug fix comes with a test that fails before the fix and passes after it. +- Tests mirror the source layout: `src/tfscreen/foo/bar.py` is tested in + `tests/tfscreen/foo/test_bar.py`. +- Tests that take more than a few seconds get `@pytest.mark.slow`. They are + skipped by default and run with `--runslow`. +- End-to-end pipeline checks belong in `tests/smoke-tests/`. + +`tests/conftest.py` sets `NUMBA_DISABLE_JIT=1`, so no prefix is needed. Run the +unit tests: + +```bash +pytest tests/tfscreen +``` + +Check coverage, including slow tests. Coverage settings (branch coverage, +source) live in `pyproject.toml`, so the same commands work locally and in CI: + +```bash +coverage run -m pytest tests/tfscreen --runslow +``` + +```bash +coverage report +``` + +To see what CI will say about the lines your branch changes: + +```bash +coverage xml +``` + +```bash +diff-cover coverage.xml --compare-branch=upstream/main +``` + +Some tests check rules across the whole component registry, for example that +every per-genotype latent is mini-batch safe and that guides follow the +`{site}_loc` / `{site}_scale` naming convention. If one of these fails for a +new component, fix the component rather than the test. + +CI runs the unit tests on Linux and macOS for Python 3.11, 3.12 and 3.13, plus +a lint check for fatal errors. A separate coverage job runs the tests with +`--runslow` and fails if either check misses: + +- Every line a pull request adds or changes must be covered by a test + (`diff-cover --fail-under=100`). diff-cover counts lines, not branches, so + check the branch columns of `coverage report` for your files yourself. +- Total coverage of the package must not drop below the floor set in + `.github/workflows/tests.yml`. Raise the floor when coverage improves. + +Run the same lint locally: + +```bash +flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics +``` + +## Code conventions + +`CLAUDE.md` is the detailed reference for the codebase. It is written for AI +coding tools but serves human contributors equally well. The parts you are +most likely to need: + +- **New model components:** the checklist under "Adding a new model + component", including registration and mini-batch safety. +- **CLI scripts:** the "CLI standards" section. Every `tfs-*` script uses + `generalized_main`, lives in `_cli.py`, writes with `--out_prefix` + and is registered in `pyproject.toml`. +- **YAML files:** the "YAML standards" section. +- **Quantile outputs:** bare `q` column names, no feature prefix. + +### Docstrings + +Docstrings follow the +[numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) convention. +Every public function, class and method gets a full docstring: a one-line +summary, an extended description where needed, then `Parameters`, `Returns` +and `Raises` sections as they apply. Give each parameter's type and shape, +for example `numpy.ndarray of shape (num_genotype,)`, and say what units it +is in when that is not obvious. + +```python +def detect_match_keys(dfs, value_columns=(), match_by=None): + """ + Determine the columns that make a row "the same row" across runs. + + Parameters + ---------- + dfs : list of pandas.DataFrame + All tables that must share the key. + value_columns : iterable of str, optional + Columns holding estimates, excluded from the key. + match_by : list of str, optional + Explicit key columns. Overrides auto-detection. + + Returns + ------- + list of str + The match key columns. + + Raises + ------ + ValueError + If the key is not unique within a run. + """ +``` + +Private helpers (leading underscore) may use a one-line docstring when the +behavior is simple. + +### Validation + +Configuration errors should fail fast with a clear message. Do not silently +drop or coerce a value the user supplied. + +### Keeping `CLAUDE.md` current + +If your change alters how the code works, update `CLAUDE.md` in the same pull +request so it stays accurate. + +## Changelog + +Record every user-visible change in `CHANGELOG.md` under `[Unreleased]`, in +the same pull request as the change. The file follows +[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Cite files and +functions rather than commit hashes. + +## Commits + +Write commit messages with an imperative subject line of 72 characters or +fewer ("Add soft-min congression dk rule", not "Added..."). Use the body to say +why the change was made and what it affects. Use American spelling. + +Do not commit data, checkpoints, notebooks of exploratory work or other large +files. `dev/` is untracked scratch space. + +## License + +By contributing, you agree that your contributions are licensed under the +project's license (see `LICENSE`). diff --git a/pyproject.toml b/pyproject.toml index 4e39ed65..63c5b550 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,13 +60,21 @@ classifiers = [ Repository = "https://github.com/harmslab/tfscreen.git" "Bug Tracker" = "https://github.com/harmslab/tfscreen/issues" +[tool.coverage.run] +branch = true +source = ["tfscreen"] + +[tool.coverage.report] +show_missing = true +skip_covered = true + [tool.pytest.ini_options] markers = [ "slow: mark test as slow to run", ] [project.optional-dependencies] -test = ["coverage", "flake8", "pytest", "genbadge", "pytest-mock"] +test = ["coverage", "diff-cover", "flake8", "pytest", "genbadge", "pytest-mock"] docs = ["pydata-sphinx-theme"] [project.scripts] From c5de9f24f7a66e41099d7a1afd93e04a40370c56 Mon Sep 17 00:00:00 2001 From: Michael Harms Date: Sat, 3 Oct 2026 18:08:47 -0700 Subject: [PATCH 082/208] Track the real-data fit scripts; plan the experiment pipeline Move the dev-data processing, fit and analysis scripts into planning/studies/real-data-fit/ (processing/, fit/, analysis/); the lab's data, run outputs and notebook stay in the gitignored planning/dev-data/, where the scripts are now symlinks to the tracked copies. The study README gives the final fit's six-run start chain as commands, with the commit behind each run (each run.out starts just after the commit it needed), and records the full-size reviewer simulations as next. Add planning/experiment-pipeline.md, the plan for the next branch: one experiment YAML from raw data to posterior. It fixes the three hand seams first (OD600 into tfs-process-counts, configure flags and a growth-prior step in place of edited priors, the staged MAP inside tfs-fit-model), then adds a thin orchestrator. Done when the real fit and a full-size simulation run from one file; that rerun becomes the shortened recipe. The analysis roadmap stays active (steps 2, 6, 7b, 8, 9); the summary and CLAUDE.md record the decisions. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 7 +- planning/analysis-roadmap-summary.md | 70 ++-- planning/analysis-roadmap.md | 2 + planning/experiment-pipeline.md | 167 +++++++++ planning/studies/real-data-fit/README.md | 164 +++++++++ .../analysis/plot_x_vs_binding.py | 54 +++ .../real-data-fit/analysis/profile_offsets.py | 24 ++ .../analysis/residual_compare.py | 208 +++++++++++ .../real-data-fit/analysis/scan_monotone.py | 36 ++ .../real-data-fit/analysis/scan_protein.py | 148 ++++++++ .../real-data-fit/analysis/score_counts.py | 84 +++++ .../real-data-fit/analysis/small_offsets.py | 31 ++ .../studies/real-data-fit/fit/check_warm.py | 69 ++++ .../studies/real-data-fit/fit/make_init_hs.py | 37 ++ .../real-data-fit/fit/make_init_npz.py | 34 ++ .../real-data-fit/fit/make_warm_start.py | 58 +++ planning/studies/real-data-fit/fit/run.srun | 170 +++++++++ .../studies/real-data-fit/fit/run_blap.srun | 68 ++++ .../real-data-fit/fit/run_relative.srun | 178 ++++++++++ .../real-data-fit/fit/set_growth_priors.py | 88 +++++ .../real-data-fit/processing/binding_fit.py | 323 +++++++++++++++++ .../real-data-fit/processing/binding_plot.py | 52 +++ .../real-data-fit/processing/prep_dev_data.py | 332 ++++++++++++++++++ .../processing/process_fastq.srun | 19 + 24 files changed, 2375 insertions(+), 48 deletions(-) create mode 100644 planning/experiment-pipeline.md create mode 100644 planning/studies/real-data-fit/README.md create mode 100644 planning/studies/real-data-fit/analysis/plot_x_vs_binding.py create mode 100644 planning/studies/real-data-fit/analysis/profile_offsets.py create mode 100644 planning/studies/real-data-fit/analysis/residual_compare.py create mode 100644 planning/studies/real-data-fit/analysis/scan_monotone.py create mode 100644 planning/studies/real-data-fit/analysis/scan_protein.py create mode 100644 planning/studies/real-data-fit/analysis/score_counts.py create mode 100644 planning/studies/real-data-fit/analysis/small_offsets.py create mode 100644 planning/studies/real-data-fit/fit/check_warm.py create mode 100644 planning/studies/real-data-fit/fit/make_init_hs.py create mode 100644 planning/studies/real-data-fit/fit/make_init_npz.py create mode 100644 planning/studies/real-data-fit/fit/make_warm_start.py create mode 100644 planning/studies/real-data-fit/fit/run.srun create mode 100644 planning/studies/real-data-fit/fit/run_blap.srun create mode 100644 planning/studies/real-data-fit/fit/run_relative.srun create mode 100644 planning/studies/real-data-fit/fit/set_growth_priors.py create mode 100644 planning/studies/real-data-fit/processing/binding_fit.py create mode 100644 planning/studies/real-data-fit/processing/binding_plot.py create mode 100644 planning/studies/real-data-fit/processing/prep_dev_data.py create mode 100644 planning/studies/real-data-fit/processing/process_fastq.srun diff --git a/CLAUDE.md b/CLAUDE.md index ca28bece..a3f633e7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -461,8 +461,11 @@ Markdown file each with a YAML header whose `status` (`idea`/`active`/ list current. Studies live in `planning/studies//` (a `README.md` with question, decision fed, how to run, inputs, commit and results, plus the script); once a plan cites a study it is frozen. `dev/` is untracked scratch; -anything a plan cites moves into `planning/studies/`. The active plan is -`planning/congression-physics-plan.md`. +anything a plan cites moves into `planning/studies/`. The active plans are +`planning/congression-physics-plan.md`, `planning/analysis-roadmap.md` +(steps 2, 6, 7b, 8 and 9 left; outcome so far in +`planning/analysis-roadmap-summary.md`) and `planning/experiment-pipeline.md` +(one experiment file from raw data to posterior; the next branch). ## YAML Standards diff --git a/planning/analysis-roadmap-summary.md b/planning/analysis-roadmap-summary.md index deabdd71..d138632d 100644 --- a/planning/analysis-roadmap-summary.md +++ b/planning/analysis-roadmap-summary.md @@ -14,7 +14,8 @@ related: - planning/studies/noise-anatomy/README.md - planning/studies/od600-population/README.md - planning/studies/growth-binding-map/README.md - - planning/dev-data/real_fit/README.md + - planning/studies/real-data-fit/README.md + - planning/experiment-pipeline.md --- Branch `claude/physics-improvements-roadmap-03a273`, 2026-09-26 to @@ -401,17 +402,20 @@ In rough order of payoff for the science: - Newton steps with the arrowhead Hessian are one route. - Holding the population SDs shrinks the low-depth genotypes, but only together with the ridge slide. -5. **Rerun the provisional step 0 studies** on the new processing: +5. **Run the pipeline, then simulate the real design at full size** + (`planning/experiment-pipeline.md`; the reviewer simulations in + `planning/studies/real-data-fit/README.md`). +6. **Rerun the provisional step 0 studies** on the new processing: 0a growth-binding map, 0b noise anatomy, 0c OD600 population. Finish 0c's curve-form decision (roadmap D9). -6. **Remaining roadmap steps:** +7. **Remaining roadmap steps:** - 2: counts and OD600 through processing; - 6: the population model; - 7b: growth transitions, test then purge, with 4CP the likely case; - 8 and 9: the learned map and the joint fit; - the kan-vs-4CP consistency check (D5), which a shared X cannot test alone. -7. **Known calibration gaps on simulations:** +8. **Known calibration gaps on simulations:** - k/m undercover under realistic noise even with the full Laplace; - the joint fit's saturated high plateau undercovers (0.31); - the pre-fit under the count likelihood wrote k priors far from truth. @@ -446,46 +450,20 @@ disk. tests, the truth-pinned fit) are marked in its README as records, not reproducible results. Scripting each one is not worth it. -**The real-data fit is the harder part.** Its scripts live in the -gitignored `planning/dev-data/`, mixed with 55 GB of data and run outputs: -- Processing: `prep_dev_data.py`, `binding_fit.py`. -- Run templates: `run.srun`, `run_relative.srun`, `run_blap.srun`. -- Start points: `make_init_npz.py`, `make_warm_start.py`, - `make_init_hs.py`, `check_warm.py`. -- Priors: `set_growth_priors.py`. -- Scoring: `score_counts.py`, `residual_compare.py`. -- Scans and figures: `scan_protein.py`, `scan_monotone.py`, - `plot_x_vs_binding.py`, `resid/small_offsets.py`, - `resid/profile_offsets.py`. - -The final fit's start depends on a chain of six earlier runs: `rel_loose_b` -and `map_off_n05`, and through it `map_nooffset_n05`, `map_warm`, -`map_sig017b` and `map_nooffset_b`. About twenty other run directories and -the smoke tests are dead ends. - -Proposal: -1. Keep the data where they are, out of the repository (C10). -2. Collect the scripts the final results need into one place, with a - README that gives the chain as commands: inputs, each run's script and - settings, and the helper that builds the next start. Drop the dead - scripts: `compare_arms.py`, `resume_posterior.srun`, `fetch.sh`, - `local_offsets/`. -3. Shorten the chain if possible. A recipe of no-offset relative MAP, then - offsets warm-started from it, then the final fit would need one rerun to - confirm it lands at the same point. Otherwise the chain is documented as - it ran. -4. Archive the final MAP parameters and starting npz files with the lab's - data, since they are derived from it. - -Two decisions here are Mike's: -- **Where the real-data scripts live.** They hold no raw data, but they do - encode the lab's protocol: library design, spike codons, tube volume, - presplit dilution and file names. One option is tracked, in a study - directory such as `planning/studies/dev-data-fit/`, reading data from the - gitignored `planning/dev-data/`. The other is the lab's own analysis - repository, pinned to a tfscreen commit. -- **Whether to rerun the shortened chain** to make the final fit one recipe - long. +**The real-data fit.** Its scripts are now tracked in +`planning/studies/real-data-fit/`, in `processing/`, `fit/` and `analysis/` +(Mike, 2026-10-03). The data, the run outputs and the full lab notebook stay +in the gitignored `planning/dev-data/`, where the scripts are symlinks to +the tracked copies. The study README gives the final fit's start chain as +commands, with the commit behind each run, and lists the dead ends. + +The final fit's start depends on a chain of six earlier runs. We will not +shorten it by rerunning it here. The pipeline plan +(`planning/experiment-pipeline.md`) builds the staged start into +`tfs-fit-model`, and its done criterion is this fit rerun from one +experiment file. That rerun becomes the official, shortened recipe. The +same plan makes the simulator write the raw formats, so full-size +simulations of this design can answer reviewers. **The merge itself.** `main` has not moved since 2026-09-26, so the merge is mechanical. The full suite, slow and smoke tests @@ -495,5 +473,5 @@ likelihood became the configure default (2620a5b3). They now ask for the `ln_cfu` likelihood their data imply, and all 44 smoke tests pass; the count path keeps its smoke coverage through the fixture-based tests. The stale entries are fixed (above). -Still open: set the roadmap to `done`, or keep it `active` for steps 2, 6, -7b, 8 and 9 (Mike's choice). +The roadmap stays `active`: steps 2, 6, 7b, 8 and 9 are not done (Mike, +2026-10-03). diff --git a/planning/analysis-roadmap.md b/planning/analysis-roadmap.md index 6b9c1139..5da16549 100644 --- a/planning/analysis-roadmap.md +++ b/planning/analysis-roadmap.md @@ -9,6 +9,8 @@ revisit_when: >- main. related: - planning/congression-physics-plan.md + - planning/analysis-roadmap-summary.md + - planning/experiment-pipeline.md - planning/growth-only-relative-fit.md - planning/count-likelihood.md - planning/per-sample-level-offset.md diff --git a/planning/experiment-pipeline.md b/planning/experiment-pipeline.md new file mode 100644 index 00000000..2b9ac260 --- /dev/null +++ b/planning/experiment-pipeline.md @@ -0,0 +1,167 @@ +--- +title: One experiment file from raw data to posterior +status: active +filed: 2026-10-03 +area: tfmodel +revisit_when: >- + Agreed 2026-10-03 for the next branch, after + claude/physics-improvements-roadmap-03a273 merges. Keep the step list + current while it is worked. +related: + - planning/analysis-roadmap.md + - planning/analysis-roadmap-summary.md + - planning/studies/real-data-fit/README.md + - src/tfscreen/process_raw/scripts/process_counts_cli.py + - src/tfscreen/tfmodel/scripts/configure_model_cli.py + - src/tfscreen/tfmodel/scripts/prefit_calibration_cli.py + - src/tfscreen/tfmodel/scripts/fit_model_cli.py + - src/tfscreen/simulate/empirical/ +--- + +## Why + +The CLI chain was built for the old flow: `tfs-process-fastq`, then +`tfs-process-counts`, then `tfs-configure-model`, then +`tfs-prefit-calibration`, then `tfs-fit-model`. The analysis-roadmap +branch changed what goes in and how a fit has to be run. It added the +count likelihood, OD600 tube totals, the growth-only relative fit, held +population SDs, staged MAP starts and the arrowhead Laplace. Each gap +between the old chain and the new needs was patched by hand. The real fit +(`planning/studies/real-data-fit/`) took three hand steps: + +1. **Processing.** `prep_dev_data.py` turned OD600 into tube totals through + the calibration, fixed the library config and cleaned up lab problems. + `tfs-process-counts` then ran once per library, and the outputs were + joined by hand. +2. **Priors.** `set_growth_priors.py` wrote k/m priors, because + `tfs-prefit-calibration` refuses growth-only models, and `sed` set the + held population SDs and the tube-offset SD in the generated priors CSV. +3. **The staged MAP.** A no-offset MAP, then `make_init_npz.py` and + `check_warm.py`, then `tfs-fit-model --init_from`, over a chain of six + runs. + +Nobody else can run that, and it cannot be rerun on a full-size simulation +without redoing it by hand. + +## Approach + +Fix the three seams first, each as a small, tested change to an existing +CLI. Then add a thin orchestrator that only calls the CLIs in order. An +orchestrator built first would wrap the hacks and freeze them. +`tfs-build-empirical` is the precedent for a CLI that runs others. + +## Done when + +- The real fit (`rel_off_n05` plus its arrowhead Laplace) reruns from one + experiment YAML with one command, with no hand-edited intermediate file. + Every spike's K and n must land inside the `rel_off_n05_alap` intervals, + and the count log-likelihood within a few thousand nats. This rerun + becomes the official, shortened recipe for the real fit. +- A full-size simulation of the same design runs through the same YAML, + with only the data paths changed. That is the start of the reviewer + simulations in `planning/studies/real-data-fit/README.md`, "Next". + +## Constraints + +- **P1. Lab data and calibrations stay out of the repository** (roadmap + C10). The experiment YAML names files; the repository holds formats, + methods and synthetic examples. +- **P2. Breaking changes are fine** (roadmap D12). Old processed files and + configs need not load. +- **P3. Leave room for the population model** (roadmap step 6). Processing + supplies per-tube totals from OD600 today. Step 6 will instead fit a + population curve to every OD600 reading inside the model. Keep the OD600 + table a first-class input, so that change replaces the totals step + without changing the experiment file's shape. +- **P4. Lab-specific cleanup stays the lab's.** Swapped samples, pooled + resequencing and failed tubes are the lab's business. The pipeline takes + a clean tube table and documents its format. It may offer a hook for a + per-experiment cleanup script, but it encodes none of that cleanup. +- **P5. Every run records its provenance.** Each CLI writes the tfscreen + version and git commit into its outputs, and the orchestrator also + records input checksums. The study READMEs had to infer commits from + file times (2026-10-03). + +## Steps + +0. [ ] **Provenance in every CLI** (P5). `generalized_main` prints, and + each writer records, the version, the commit (with a dirty flag) and the + command line. Do this first and small; it pays off at once. +1. [ ] **Processing takes OD600 directly** (seam 1). + - `tfs-process-counts` takes the per-tube OD600 table and a + `tfs-calibrate-od600` file. It computes `sample_cfu` and its SD + itself, keeping the shared curve error apart from the per-reading + noise (C11). Supplied `sample_cfu` stays available. + - It processes several libraries in one call, from one tube table with + a `library` column. That replaces the per-library runs and the join. + - Document the tube-table and OD600 formats with a synthetic example in + `examples/`. + - The spike list and the M42I codon problem came from a processing + config that disagreed with the real spikes. Check at configure time + that every spike named in the library YAML is present in the counts. +2. [ ] **Configure exposes everything that was hand-edited** (seam 2). + - Flags for `sigma_fixed` on level offsets and for every + `theta_*_hyper_scale_fixed`. + - A growth-prior step for growth-only models, replacing + `set_growth_priors.py`. Per-condition k/m loc and scale come from + defaults, a table, or wt monoculture rates (the `monokan` rule: + k = rate at the high gauge concentration, m = the difference). The + pre-fit stays for joint models. + - Decide whether the growth-only defaults change: n held at 0.5, X_low, + X_delta and log K held, offsets at 0.17. The real fit and the + sensitivity runs say how much each matters + (`planning/analysis-roadmap-summary.md`). +3. [ ] **The staged MAP inside `tfs-fit-model`** (seam 3). + - With level offsets on, the fit stages itself. First a MAP with the + offsets held at 0. Then each tube's offset alone, with everything else + held (what `small_offsets.py` did, cheap). Then the joint MAP from + there at a small step size. + - Each stage writes its own checkpoint and convergence record, so a + stage can be inspected or resumed. + - This retires `make_init_npz.py`, `make_warm_start.py` and + `check_warm.py`. Keep `--init_from` for experiments. + - Test on a simulation: does a cold level-offset MAP reproduce the ±2.8 + offset trap, and does the staged one avoid it? Then on the real data. +4. [ ] **Posterior defaults for large libraries.** Choose the Laplace + automatically from the library size: the full Laplace below a + parameter threshold, the arrowhead (`--laplace_blocks --laplace_shared`) + above it. Report the held Schur directions in a file as well as the + log, since they say which k/m directions have no interval. +5. [ ] **The orchestrator.** `tfs-run-experiment experiment.yaml`. + - The YAML names the inputs (counts directory, tube table, OD600 table, + calibration, library YAML, optional binding and monoculture rates) + and the choices (model, priors, staging, posterior, predictions). + - It runs processing, configure, priors, fit, posterior, extract and + predict in order, calling the existing CLI functions. + - Each stage writes into its own subdirectory and is skipped if its + outputs are already there, so a run is resumable and a stage can be + rerun by deleting it. + - It writes a manifest: commit, input checksums, the resolved YAML. + - It can emit a SLURM script for the fit and posterior stages. + Cluster-specific settings (account, partition, memory) come from the + YAML, never from code. + - Scoring (`score_counts.py`) becomes a CLI if the orchestrator reports + a fit's count likelihood; otherwise it stays a study script. +6. [ ] **The simulator writes the same raw formats.** `tfs-simulate` + writes per-tube count files, the tube table and the OD600 table in the + formats of step 1, so a simulated experiment runs through the same + experiment YAML. Then the full-size simulation of the real design. +7. [ ] **Validate and document.** Rerun the real data from one YAML (the + done criterion), run the full-size simulation, and replace the + `real-data-fit` study's start chain with the YAML. Update `docs/` and + CLAUDE.md, and retire the hand scripts. + +## Out of scope + +- The population model and the OD600 likelihood (roadmap step 6), and the + growth-transition decision (7b). This plan only keeps room for them (P3). +- The growth-binding relationship study (summary, Part 3, item 1). +- Workflow engines (Snakemake, Nextflow). A Python orchestrator over the + CLI functions is enough at this size, and adds no dependency. + +## Open + +- Whether the orchestrator replaces `tfs-build-empirical`'s internal + configure and pre-fit, or calls it. +- How binding data enter a growth-only experiment file. Today they are only + compared after the fit; roadmap step 9 brings them back into the model. diff --git a/planning/studies/real-data-fit/README.md b/planning/studies/real-data-fit/README.md new file mode 100644 index 00000000..03b5a6b3 --- /dev/null +++ b/planning/studies/real-data-fit/README.md @@ -0,0 +1,164 @@ +# Real-data fit of the dev-data screen + +**Question.** Does the growth-only relative fit (`theta: hill_relative`), +with the count likelihood and tube offsets, run on a full screen? What do +its curves say about the relationship between in vitro binding and in vivo +growth? + +**Decisions it fed.** +- Roadmap step 5: the full-library inference route. The answer is the MAP + plus the arrowhead Laplace; the SVI guides slid along the m·X ridge. +- Roadmap step 8: whether a simple growth-binding map exists. It does not. +- The new options added along the way: `--init_from`, `sigma_fixed`, the + held Hill population SDs, per-condition m prior scales, and the block + and arrowhead Laplace. + +The results and their reasoning are in `planning/analysis-roadmap-summary.md`. +The full lab notebook, with every run including the dead ends, is +`planning/dev-data/README.md` and `planning/dev-data/real_fit/README.md`. +Those are gitignored, because they sit with the data. + +## Layout: tracked scripts, untracked data + +The lab's data never enter the repository (roadmap C10). They live in +`planning/dev-data/` (gitignored), and these scripts expect that layout: + +``` +planning/dev-data/ + counts/ tfs-process-fastq output, one dir per tube + counts/run_config.yaml processing library config (3 spikes; see below) + sample_df.csv, all_reps_screen_od600.xlsx, 2025-10-02_control-experiments.xlsx + binding/ anisotropy tables + od600-to-cfu/ calibration spreadsheets + processed/ written by processing/prep_dev_data.py + real_fit/inputs/ growth.csv.gz, library_config.yaml, + wt_control_rate_summary.csv, init_*.npz + real_fit// one directory per fit +``` + +In `planning/dev-data/` the scripts are symlinks to the copies here, so they +run in place: `prep_dev_data.py` from `dev-data/`, the `fit/` and +`analysis/` scripts from `real_fit/`, as `../